我有一台运行 strongswan 的服务器。我有两个客户端通过 IPSec 连接到此服务器。我的加密域是 10.1.1.3/32,这是服务器的真实地址。但是,客户端 A 希望我的加密域是公共 IP,因此我为他们提供了一个公共 IP 1.2.3.4/32。使用 iptables,我将 1.2.3.4/32 NAT 到 10.1.1.3/32。我的应用程序在端口 1117 上运行。一切正常。现在我有了该应用程序的新版本,并在端口 1118 上运行它。我想测试这个应用程序,为此,我添加了一个端口转发规则,如下所示
sudo iptables -t nat -A PREROUTING -p tcp -s 10.10.10.0/24 --dport 117 -j REDIRECT --to-port 118
这是针对客户端 B 的,它连接的 IP 地址在 10.10.10.0/24 范围内。这很完美。但是,当我向客户端 A 添加类似的规则时,它不起作用;数据包仍然会转到端口 117。以下是客户端 A 的规则。
sudo iptables -t nat -A PREROUTING -p tcp -s 165.121.113.217/32 --dport 117 -j REDIRECT --to-port 118
当我执行时,我看到了规则
sudo iptables -t nat --line-numbers -L PREROUTING
两个客户端之间的区别在于客户端 A 已设置 NAT 规则。我在这里做错了什么?
谢谢。