我有两个接口 eth0 和 wlan0。我使用 wlan0 连接到可以访问 WAN 的 AP,并通过来自 AP 的 DHCP 获得 IP 地址。
第二个接口是 eth0。我使用 dhcp 服务器对其进行了配置,为通过 eth0 连接到该子网的所有客户端提供不同的子网 ip 地址。
我的客户端设备(智能手机)正在从我的 eth0 dhcp 服务器正确获取 ip 地址。
但是我现在很难将 eth0 与 wlan0 连接。
eth0 网络是 192.168.42.0/24。我的电脑有两个网卡,使用 192.168.42.1。我的 wlan0 的 IP 地址是 172.22.3.193
我已经启用了 ipv4 转发,但没有成功。我的手机显示没有互联网连接,但可以连接到 eth0。看来我必须设置某些 iptables 规则才能使转发正常工作,但我尝试了在网上找到的不同方法,但都不起作用。
对于下一步该做什么有什么想法吗?
编辑:我的路线命令给了我这个:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default www.go.wlantick 0.0.0.0 UG 600 0 0 wlan0
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
172.22.0.0 0.0.0.0 255.255.0.0 U 600 0 0 wlan0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
答案1
要将 Linux 服务器配置为 NAT 路由器,您必须:
启用 IP 转发,就像您已经完成的那样(这只是将来的提醒)。编辑以下行
/etc/sysctl.conf
net.ipv4.ip_forward=1
使用 iptables 启用 NAT。请执行以下命令,其中
wlan0
是您的外部接口。iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
请记住,iptables 规则在重启时会重置。然后您必须自动重新配置 iptables。