所以我有一个带有两个无线接口的Linux机器,一个是站,另一个是AP。
wlan0(站点)- 已连接到互联网
wlan1(AP)—其他客户端连接到它。
我希望连接到 wlan1 的客户端能够访问 wlan0 上的互联网。我想使用 iptables 来实现这一点,因为我的内核不支持桥接...
到目前为止,我已经尝试过使用 iptables 进行以下操作,但是没有效果:
iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
我将非常感激您的帮助。
答案1
首先,为了使连接到您的私有接口的主机能够访问互联网,您不需要桥接接口,而是需要将从一个接口进入的数据包路由到另一个接口,然后将它们传输到外面。
为此,您只需:
- 在你的 Linux 机器上启用转发:
- 允许特定(或所有)数据包穿越路由器
- 正如有人所说,由于 netfilter 是无状态防火墙,因此允许已建立连接的流量
更改发往互联网的数据包的源地址
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT iptables -A FORWARD -i wlan0 -o wlan1 -m state --state ESTABLISHED,RELATED \ -j ACCEPT iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
那就可以了。