Ubuntu 和 Android:通过以太网与另一台笔记本电脑共享手机和笔记本电脑的网络共享互联网连接

Ubuntu 和 Android:通过以太网与另一台笔记本电脑共享手机和笔记本电脑的网络共享互联网连接

首先让我解释一下我要解决的问题:

我有一部 Android 2.2 手机,它通过 USB 将其互联网连接绑定到运行 Ubuntu 10.10 的笔记本电脑。我想要做的是通过以太网电缆与另一台运行 Ubuntu 10.10 的笔记本电脑共享此互联网连接。

我一直在互联网上搜索,但我没有看到任何人尝试这样做的案例。如果有人知道任何资源,请告诉我。

我认为我已经让设备通过 ping 以单向通信,但无法以另一种方式通信。我认为互联网连接被阻塞了。

我的操作方法是通过使用 NAT 的 Firestarter,安装在手机插入的机器上,并使用以下指南:http://www.fs-security.com/docs/connection-sharing

基本上,提供连接的接口是 usb0,我试图通过 eth0 共享连接。我基本上只是遵循了上述指南,用 usb0 替换 eth0 实例,用 etho0 替换 etho1 实例。它说要做的唯一一件事是我做不到的是在 Android 手机上启用 DHCP,因为坦率地说我不知道​​怎么做。

我手动配置了网络,而不是使用 Firestarter 的 DHCP 选项,因为我希望最终不必使用 firestarter 来执行此操作。

更具体地说,这是我所做的:通过 GUI 网络连接:

在第一台笔记本电脑上(与手机连接的那台)

IP 地址:192.168.0.1 网络掩码:255.255.255.0 默认网关 (IP):

在第二台笔记本电脑上,再次通过网络连接:IP 地址:192.168.0.2 网络掩码:255.255.255.0 默认网关:192.168.0.1 *我的 /etc/resolv.conf 文件实际上没有显示任何内容,所以这可能是一个问题。

*此外,我刚刚尝试通过 Firestarter 通过以太网共享我的无线连接,但也没有成功。我可以在两台笔记本电脑之间 ping 通,但无法上网。

底部说明了如何测试设置。我可以像指南中说的那样 ping 192.168.0.2 并得到响应。但是,我无法在应该获得共享连接的笔记本电脑上访问 google.com。此外,在第二台笔记本电脑上,我可以 ping 到手机。但是,我无法从手机 ping 到第二台笔记本电脑。这就是我认为我无法上网的原因。

我不知道要怎么做才能使此连接正常工作。我是否需要在手机所连接的笔记本电脑上桥接 usb0 和 eth0 之间的连接?或者 Firestarter 已经在这样做了?

** 附注:如果我在运行 Firestarter 的机器上关闭它,我就无法从第二台笔记本电脑 ping 通手机。

如果有人知道如何实现这个功能,我将非常感激。

答案1

这些步骤有点低级,可以使用例如当前 GNOME 3 发行版上的 NetworkManager 来自动执行。但是,以下是适用于各种 Linux 发行版和版本的较低级别说明:

步骤1:使usb0通过 USB 直接连接到手机的盒子上的互联网连接正常工作。

第2步:插入计算机之间的以太网电缆。

步骤3:使用以下命令主持人计算机,以 root 身份,或包装在sudo:
ifconfig eth0 192.168.0.1中(或在指定 LAN IP 段
ifconfig eth0 netmask 255.255.255.0

步骤4:使用以下命令客户计算机(当前没有互联网连接的计算机),以 root 身份登录,或者换行sudo:(
ifconfig eth0 192.168.0.2前三个数字应该相同;最后一个数字应该不同,与主机的私有 IP 不同)

ifconfig eth0 netmask 255.255.255.0

步骤5: 改编自这里,以 root 身份执行这些步骤,或者sudo主持人电脑:
echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

/sbin/iptables -A FORWARD -i usb0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

/sbin/iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT

如果你有现有的设置(例如 Firestarter 所做的设置),你可能必须刷新主机上的 iptables,执行步骤5:

iptables -F

您可以使用以下方式检查现有设置

iptables -L

最后:您可能已经拥有了 LAN 上的私有 IP 地址usb0不得在 NAT上使用与 NAT 相同的 IP 子网eth0。因此,如果您的 usb0 有 192.168.0.10,则您无法在两台计算机上的 eth0 上使用 192.168.0.x 中的任何内容。

答案2

您必须通过 USB 进行网络共享吗?如果至少有一台电脑有 Wifi,那么您应该能够在 Android 中创建一个 Wifi AP,在其中一台笔记本电脑上连接 Wifi,然后通过以太网将两台笔记本电脑连接在一起。配置“中间”笔记本电脑以通过其 Wifi 连接路由流量。例如,在 Windows 中,您可以配置适配器以共享互联网连接。

我上面提到的任何功能都不适用于 USB 网络共享,所以您最好切换到 WiFi。

相关内容