无法通过 eth 将互联网转发到 wlan | iptables 恢复命令不起作用

无法通过 eth 将互联网转发到 wlan | iptables 恢复命令不起作用

我有一台装有 Ubuntu 操作系统的 NanoPi M1 Plus 设备,我将其用作路由器。该设备通过以太网电缆(eth0 接口)接入互联网,并通过接口 wlan0 提供 WiFi AP。

我已经编写了 iptables 规则,但似乎不起作用。并且已启用 IP_FORWARDING。

此外,在执行iptables-restore > /etc/iptables.ipv4.nat命令时它会冻结并且终端上不会打印任何输出。

iptables.ipv4.nat

*filter
:INPUT ACCEPT [186:14306]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [131:13477]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT [142:11472]
:INPUT ACCEPT [27:2092]
:OUTPUT ACCEPT [28:2049]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

这里的问题是什么?

答案1

此外,在执行iptables-restore > /etc/iptables.ipv4.nat命令时它会冻结并且终端上不会打印任何输出。

它正在等待输入iptables-restore 的目的是从文件中读取规则集,但你使用了错误的重定向运算符并告诉 shell写给该文件。此命令的正确运算符是<

请注意,使用>会立即清空文件的先前内容,因此请确保在重试之前用规则重新填充。

除此之外,规则集没有任何明显的问题。您可能在其他地方遇到问题,尤其是 uRPF 过滤功能,它会拒绝接受来自“错误”接口的数据包。确保通过 sysctl 禁用它,方法是将其设置net.ipv4.conf.all.rp_filter为 0 表示“关闭”(或 2 表示“松散”)。

相关内容