转发时更改端口号

问题描述 投票:0回答:1

在较大的防火墙中,以下两行允许我从互联网连接到在 LAN 主机 172.27.255.4 上运行并侦听端口 1046 22 的 SSH 服务器:

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d aaa.bbb.ccc.ddd --dport 1046 -j DNAT --to-destination 172.27.255.4:1046
iptables -t filter -A FORWARD -p tcp -i ppp0 -d 172.27.255.4 --dport 1046 -j ACCEPT

地址aaa.bbb.ccc.ddd为防火墙的IPV4公网地址。使用端口 1046 连接到 SSH 服务器可以正常工作。
我现在想做的是停止 SSH 服务器侦听端口 1046,但从互联网连接时仍然使用端口 1046。只需将上面代码的第一行更改为

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d aaa.bbb.ccc.ddd --dport 1046 -j DNAT --to-destination 172.27.255.4:1046

iptables -t nat -A PREROUTING -i ppp0 -p tcp -d aaa.bbb.ccc.ddd --dport 1046 -j DNAT --to-destination 172.27.255.4:22

剂量不起作用。

我在这里缺少什么?

redirect port iptables portforwarding
1个回答
0
投票

这完成了工作:

iptables -t nat -A PREROUTING -d aaa.bbb.ccc.ddd -p tcp --dport 1046 -j DNAT --to-destination 172.27.255.4:22
iptables -t filter -A FORWARD -p tcp -d 172.27.255.4 --dport 22 -j ACCEPT

第一条规则在数据包被路由之前更改其目的地。第二条规则路由(在本例中为转发)具有新的所需目的地的数据包。

© www.soinside.com 2019 - 2024. All rights reserved.