除其他外,我在 IP 地址为 192.168.1.71 和 abcd 的机器上有以下 iptables NAT 规则,其中 abcd 代表公共 IP 地址:
iptables -t nat -A PREROUTING -p udp --dport 20001 -j DNAT --to-destination 192.168.1.72:20000
iptables -t nat -A POSTROUTING -p udp -s 192.168.1.72 --sport 20000 -j SNAT --to-source a.b.c.d:20001
当通过 STUN,我尝试在本地机器 192.168.1.72 上找到分配给具有本地端口 20000 的套接字的公共 IP 地址时,我没有得到 20001,我一直得到 32018。但是,我确实得到了正确的 IP 地址 abcd我需要在我的 iptables 规则中进行哪些更改?
更新:问题在于我从 STUN 响应中计算端口号。相关问题:规则:
iptables -A INPUT -p udp -j LOG --log-prefix "iptables: "
不记录匹配数据包的数据包,但会记录其他数据包。将此规则置于上述两条规则之上或之下并没有什么不同。