我的 Xbox 在 WiFi 连接的情况下,网关和 DNS 指向了旁路由,但在旁路由的 Adguard Home 里看 DNS 请求,全部都是来自于主路由,就很疑惑……
最后又是问 o1-preview 大师解决了问题(AI 真好
首先确定一下前提,是不是在主路由上被 MASQUERADE 了
iptables -t nat -L -v --line-numbers | grep MASQUERADE
在我这里得到了这种类似的结果:
2 5677K 452M MASQUERADE all -- any any anywhere anywhere /* !fw3 */
问题在于第二个 any
,原本是用于指定设备的,现在是 any,导致 LAN 口进去的(Xbox 的 192.168.31.13)被错误的伪装成了 192.168.31.1 然后再发给旁路由 192.168.31.2,导致旁路由上看到的就是主路由的 IP……
这里先删掉这条规则,但首先你得找到他所在的 Chain:
iptables -t nat -L -v --line-numbers
在其中找,看看这条结果在哪,我这边是:
Chain zone_wan_postrouting (1 references)
num pkts bytes target prot opt in out source destination
1 5689K 454M postrouting_wan_rule all -- any any anywhere anywhere /* !fw3: Custom wan postrouting rule chain */
2 5689K 454M MASQUERADE all -- any any anywhere anywhere /* !fw3 */
删掉他:
iptables -t nat -D zone_wan_postrouting 2
这里的 2 是行号,具体根据上一个指令中,MASQUERADE 最前面的那个序号来改
然后重新添加新的规则:
iptables -t nat -A zone_wan_postrouting -o eth1 -j MASQUERADE
这里 eth1
是我的 WAN 接口,如果有疑惑可以用以下方式查看:
cat /etc/config/network
找到 config interface 'wan'
,看看 option ifname
对应的值
共有 0 条评论