我遇到一个问题,所有外部请求都被记录或解释为来自路由器,因为日志显示的是路由器 IP,而不是原始客户端 IP。我正在尝试找出外部请求在哪里/为什么/如何被伪装成路由器的内部 IP 地址?!?!
我使用的是 DD-WRT v24-sp2 (06/08/12) std 版本的 dlink 路由器。我的配置文件中也有一些防火墙规则,因为我使用路由器的 wifi 连接,并且有 2 个独立的 WLAN。
iptables -t nat -I POSTROUTING -o `get_wanface` -j SNAT --to `nvram 获取 wan_ipaddr` iptables -I FORWARD -i br1 -m state --state NEW -j ACCEPT iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu iptables -I FORWARD -i br0 -o br1 -m state --state NEW -j DROP iptables -I FORWARD -i br1 -d `nvram 获取 lan_ipaddr`/`nvram 获取 lan_netmask` -m state --state NEW -j DROP iptables -t nat -I POSTROUTING -o br0 -j SNAT --到`nvram 获取 lan_ipaddr` iptables -I 输入 -i br1 -m 状态 --状态新 -j DROP iptables -I 输入 -i br1 -p udp --dport 67 -j 接受 iptables -I 输入 -i br1 -p udp --dport 53 -j 接受 iptables -I 输入 -i br1 -p tcp --dport 53 -j 接受
我怀疑它们是不是我问题的根源。如果有人遇到过类似的问题,请分享经验。提前谢谢。
答案1
你的问题在于规则
iptables -t nat -I POSTROUTING -o br0 -j SNAT --到`nvram 获取 lan_ipaddr`
此规则正在重写离开 br0(即您的一个 WIFI 接口)的数据包,大概是使用路由器的地址。
我不完全确定这条规则想要实现什么?我想你可以把它注释掉,然后一切就会按预期进行。