通过 linux 连接两个接口

通过 linux 连接两个接口

我有两个接口 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 路由器,您必须:

  1. 启用 IP 转发,就像您已经完成的那样(这只是将来的提醒)。编辑以下行/etc/sysctl.conf

    net.ipv4.ip_forward=1
    
  2. 使用 iptables 启用 NAT。请执行以下命令,其中wlan0是您的外部接口。

    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 
    

请记住,iptables 规则在重启时会重置。然后您必须自动重新配置 iptables。

相关内容