将一个端口映射到同一台机器上的另一个端口

将一个端口映射到同一台机器上的另一个端口

我的所有流量都来自端口 22。我选择了一个随机端口 221,我希望在该端口上路由所有流量。

这是我使用的规则

iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 221
or  iptables -t nat -A OUTPUT -p tcp --dport 22 -j REDIRECT --to-ports 221

iptable --list
target     prot opt source               destination         
           tcp  --  anywhere             anywhere             tcp dpt:ssh
           tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:221
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt

我正在使用命令检查流量

tcpdump -i any port 221

没有任何内容路由到端口 221。我做错了什么?

答案1

入口接口先于 IP 堆栈看到数据包。即,对源自系统外部的数据包看不到 NAT 影响。他们的目标端口已更改,您只是看不到它tcpdump。不过,您可以通过连锁店中的 Packjet 计数器看到它filter/INPUT

这与本地生成的数据包不同。它们在到达接口之前先到达 IP 堆栈。因此,您可以看到环回接口上具有 DNAT 效果的数据包。

相关内容