- 论坛徽章:
- 0
|
欢迎大家莅临指导!
我有个需求, 要实现把本机发出去的包的目的端口改成一个我想要的端口, 请问这个能用iptables来实现吗?
背景是这样的, A程序和B程序原本运行在本地同一个子网内两台机器上, 两个程序之间用2000号端口来通信, 现在我需要把B程序放到云服务上去运行(AWS), 由于A依然运行在本地, 并且访问internet是经过了网络地址转换(NAT)了, 所以现在A发给B的数据包源端口经过NAT网关转换以后已经不是2000了, 假设这个源端口被改成了3000, 而AWS里的B程序仍然在用写死的2000号端口给A回消息, 导致A收不到B的回复.
本地的NAT网关我无法控制, 所以在这里改NAT源端口是不可能的. 改B程序的代码也不现实.
我想问的是能不能在B端通过iptables把所有出站的端口为2000的包改成3000? 我尝试写了一个规则:
iptables -t nat -A OUTPUT -p udp -o eth0 --dport 2000 -j REDIRECT --to-ports 3000
但是使用这个规则以后, 原本能发给2000端口的包都发不出去了.
请各位指导一下这个功能应该怎么来做.
|
|