我的笔记本电脑(使用 Ubuntu 13.10)使用有线连接连接到互联网,eth0
IP 为192.168.42.13
,它还充当ip 为 的wifi hotspot
。现在我有一个需要连接到该 wifi 的 android 设备。我看到我的 android 能够连接到并从我设置的服务器接收以下网络设置。(我使用了一个工具调用wlan0
192.168.1.1
hotspot
dhcp
网络信息II从 PlayStore 查看我的 Android 上的以下详细信息)。
# My android network settings (connected to the wlan0 of my laptop):
ip address: 192.168.1.10
subnetmask: 255.255.255.0
gateway : 192.168.1.254
ap-mac : xx:xx:xx:xx:xx:xx
# My pc's eth0 configuration
ip address: 192.168.42.13
submetmask: 255.255.255.0
gateway : 192.168.42.129
iface mac : yy:yy:yy:yy:yy:yy
# My pc's wlan0 (hotspot interface) configuration
ip address: 192.168.1.1
subnetmask: 255.255.255.0
gateway : 192.168.1.1
iface mac : zz:zz:zz:zz:zz:zz
此主题这里谈到了类似的问题。我发现我需要在网络之间转发数据包,eth0
以便wlan0
将我的无线 AP 设备连接到互联网。现在我如何转发收到的数据包wlan0 to eth0
并eth0 to wlan0
让我的设备连接到互联网?
答案1
首先需要在系统上启用 IP 转发。只需执行一次,使用
sysctl -w net.ipv4.ip_forward=1
或者
echo 1 > /proc/sys/net/ipv4/ip_forward
以 root 身份进行。如果你想永久保留它,请编辑
/etc/sysctl.conf
并添加一行包含
net.ipv4.ip_forward = 1
这将在重新启动或运行时应用
sysctl -p /etc/sysctl.conf
完成此操作后,您可能需要 NAT 连接,因为您的路由器不太可能知道 192.168.1.0/24 网络可通过 192.168.42.13 访问。如果 192.168.42.13 是静态的,您可以使用
iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j SNAT --to-source 192.168.42.13
否则使用
iptables -t nat -A POSTROUTING -i wlan0 -s 192.168.1.0/24 -j MASQUERADE
检查Ubuntu Iptables 操作方法关于如何在重启时保存这些规则。