我想创建 iptables 规则,以允许从具有公共 IP 地址(例如 1.2.3.4)的路由器在端口 2222 上将 SSH 端口转发到具有本地 IP(192.168.xx)的设备在同一端口上。一个问题是我不确定规则实际上是什么样的,另一个问题是试图连接的外部人员拥有动态 IP。我如何才能安全地授予他访问权限(仅限他),而不必在每次 IP 地址更改时更改规则?可以使用 MASQUERADE 吗?我已经阅读了几个小时的文档和其他问题,但仍然对解决方案没有 100% 的信心。
LE:我目前拥有的是(请注意,我还没有添加它们):
iptables -t nat -A PREROUTING -p tcp -d 2.2.2.2 --dport 2222 -j DNAT --to-destination 192.168.x.x:2222
iptables -t nat -A POSTROUTING -p tcp -d 3.3.3.3 --dport 2222 -j MASQUERADE
我不确定是否应该使用 FORWARD 而不是 POSTROUTING。另外,我不确定是否应该使用 MASQUERADE,我在考虑 ACCEPT?
我也没有使用 -i 参数。应该明确使用吗?