Ubuntu 上的互联网连接是通过以太网电缆进行的。
我想连接两个设备,从 Ubuntu 共享互联网三星Galaxy注释边缘[SM-N915FY; android: 6.0.1] 和三星 Galaxy注 9[SM-N960F;Android 10] 由USB电缆。我已经阅读了所有关于共享互联网的先前主题,都厌倦了,但我还是无法共享数据。
在连接 - 系统设置模块-> 标签IPv4已更改方法到共享至其他计算机,但仍然不起作用。
当然,我已经接受了通过手机上的 PC 访问的权限。
三星 Note 和 Note 都没有反向网络共享选项。启用它也很累USB 调试。
答案1
这是一个老问题,但有一个简单的方法,感谢一个神奇的工具
- 获得格尼雷特
- 安装
adb
并允许 USB 调试 - 跑步
./gnirehtet run
看https://www.ubuntubuzz.com/2019/09/android-reverse-tethering-with-ubuntu-1804.html
答案2
我有办法,但有点棘手。你需要:
- 带有“USB-PC 互联网共享”选项的 Android(不是传统的 USB 网络共享)
- iptables 或 nftables (用于伪装/SNAT)
- tcpdump
- iproute2
- Linux 上的 DNS 服务器(dnsmasq 可快速设置)
1/ 在您的 Android 设备上:转到设置 >> 网络连接 >> 网络共享和便携式热点 >> USB-PC 互联网共享。选择确定或选择任何建议的操作系统(通常是不同的 Windows 版本),只要启用了该功能,这都无关紧要。=> 现在您的智能手机将立即尝试连接到互联网,但您的 Linux 系统尚未准备好。您将需要检索以下信息:您的智能手机将使用的子网和默认网关。这可以通过以下方式完成tcpdump
2/ 在 Linux 上:使用tcpdump捕获来自 USB 网络接口的流量(当从 Android 激活 USB PC 互联网共享时启用)。您将看到很多 whohas XXXX。此 IP 地址是您的 Android 尝试访问的默认网关。将此 IP 地址和正确的子网掩码添加到网络共享接口(sudo ip address add XXXXX dev XXXX)或使用网络管理器
3/ 使用 iptables 启用伪装:
sudo iptables -A POSTROUTING -o usb_thethering_interface -j MASQUERADE
4/ 确保您的 DNS 服务器在 Linux 上运行。
应该可以正常工作