假设:
- 我的工作站 LAN IP 是 192.168.0.101
- 我的 WAN IP 是 12.34.56.78。
- 我的消费级路由器正在将 WAN:80 端口转发到 192.168.0.101:8080
- NAT 反射/发夹结构正在工作
因此,如果我在工作站上收听 8080...
nc -l -p 8080
我从本身,通过它的外部 IP,它可以工作......
echo 'Hello World' | nc 12.34.56.78 80
如果杀死并重复nc -l -p 8080
并从外部网络、通过互联网与其对话,它也会起作用......
echo 'Hello World' | nc 12.34.56.78 80
但 ...
我想要模拟发夹弯故障
- 我的工作站人为地 不能通过 WAN IP 与自身对话
- 互联网上的一些东西能仍然谈论它
我如何使用iptables
来创建一个规则来模拟 NAT 发夹故障,但继续允许真的外部流量?
答案1
添加一个普通的“DROP”规则,阻止从路由器 IP 地址到此端口的“INPUT”数据包。
由于发夹式连接“解决”了底层问题的方式,所有发夹式连接看起来都好像来自网关(并且无法区分您自己的连接和 LAN 中其他人的连接),但不应该非发夹式连接将会发生这种情况——它们将保留其原始的互联网源 IP 地址。