OpenWRT 障碍突破 - 路由器不路由

OpenWRT 障碍突破 - 路由器不路由

我已将 TP-Link 1043 路由器升级到 OpenWrt 14.07。一切都很完美,Wifi 和 LAN 已桥接,LAN 机器可以通过名称相互访问,我可以通过 SSH 进入路由器,路由器可以在界面上访问互联网pppoe-wan

不过,还有一个小问题。路由器不路由。无法从 LAN 访问互联网。但有一个有趣的例外:DNS 查找可以工作。

/etc/config/firewall文件包含以下部分:

config forwarding
    option src 'lan'
    option dest 'wan'
    option mtu_fix '0'

但是当我列出 POSTROUTING 链时iptables,什么也没有

# iptables -L POSTROUTING
iptables: No chain/target/match by that name.

# iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target     prot opt source        destination

更新

因此我尝试手动添加伪装,这似乎有效:

# iptables -t nat -A POSTROUTING -o pppoe-wan -j MASQUERADE
# iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target     prot opt source        destination
MASQUERADE all  --  anywhere      anywhere

瞧,互联网突然从 LAN 上工作了。但是为什么没有根据 UCI 配置添加 iptables 规则/et/config/firewall

更新2

我在 Web 界面上将修复后的 iptables 规则添加到自定义规则中。然后我检查了一下,它确实被插入到/etc/firewall.user中包含的 中/etc/config/firewall。但重启后,iptables 未列出该规则。而且 LAN 中没有互联网。似乎是 UCI 配置解析问题……

更新 3

事实证明我根本没有防火墙。我的防火墙/etc/config/firewall完全被忽略了。只是缺乏过滤规则很难被注意到。

答案1

仅当为 OpenWrt 配置了输出时,它才会设置伪装zone

例如:

config zone
        option name 'wan'
        option masq '1'
        #...everything else

或者在网页界面:

OpenWRT GUI 中的 WAN 伪装

答案2

UCI 配置解析似乎有问题。通过在以下位置添加一行可暂时修复此问题/etc/rc.local

iptables -t nat -A POSTROUTING -o pppoe-wan -j MASQUERADE

相关内容