在 eth0 和 wlan0 之间桥接流量

在 eth0 和 wlan0 之间桥接流量

我尝试过这个但无法让它工作,eth0 和 wlan0 已经启动并运行,所以我的设置要容易得多。wlan0 已启用 DHCP 并正确将 IP 分配给客户端,eth0 设置为静态,客户端正在使用静态 IP 连接。这些是 ifconfig 中的设置:

eth0 Link encap:Ethernet HWaddr 00:14:3E:9D:BA:57
inet addr:192.168.13.31 Bcast:192.168.13.255 Mask:255.255.255.0
inet6 addr: fe80::214:3eff:fe9d:ba57/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1600 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:74056 (72.3 KiB) TX bytes:3936 (3.8 KiB)

wlan0 Link encap:Ethernet HWaddr 64:69:4E:77:D5:2E
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::6669:4eff:fe77:d52e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:618 errors:0 dropped:0 overruns:0 frame:0
TX packets:656 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:72055 (70.3 KiB) TX bytes:87715 (85.6 KiB)

通过 wlan0 连接的客户端的 IP 为 192.168.1.11 (dhcp),而通过 eth0 连接的客户端的 IP 为 192.168.13.10 (静态)。我希望两者能够相互通信,以下是 iptables 的设置:

sysctl -w net.ipv4.ip_forward=1

iptables --flush
iptables -I INPUT -j ACCEPT
iptables --table nat --flush
iptables --table nat --delete-chain
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -m state --state NEW -j ACCEPT
iptables -A INPUT -m udp -p udp --sport 67:68 --dport 67:68 -j ACCEPT

此后,从设备的 shell 中,我仍然可以 ping 两个客户端,但是 eth0 上的客户端无法 ping wlan0 上的客户端,反之亦然。

相关内容