免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3040 | 回复: 6
打印 上一主题 下一主题

[系统管理] iptables能否实现修改出站包的目的端口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-05-26 10:54 |只看该作者 |倒序浏览
欢迎大家莅临指导!
我有个需求, 要实现把本机发出去的包的目的端口改成一个我想要的端口, 请问这个能用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端口的包都发不出去了.

请各位指导一下这个功能应该怎么来做.

论坛徽章:
0
2 [报告]
发表于 2017-05-26 11:14 |只看该作者
你试试iptables的转发功能,他的接收是能转发的,发包没试过,你可以看看。

论坛徽章:
0
3 [报告]
发表于 2017-05-26 13:33 |只看该作者
回复 2# jiang900501

多谢回复!根据iptables的手册描述, 从本地进程发出去的包是不会经过FORWARD链的处理的, 只有经本机转发或者路由的包才会经FORWARD链.

论坛徽章:
0
4 [报告]
发表于 2017-05-26 13:59 |只看该作者
回复 1# goodguyzl

换个关键词重新搜索了一下, 解决方案可以是这个样子的:
https://serverfault.com/question ... nd-incoming-packets

我用http测试了一下, 可用!!

测试方法:
在A机(92.168.1.80)的8888端口启动http server, 在B机用http://192.168.1.80访问, 不通, 在B机添加如下规则后可以正常访问:

iptables -t nat -A OUTPUT -p tcp -d 192.168.1.80 --dport 80 -j DNAT --to-destination 192.168.1.80:8888

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
5 [报告]
发表于 2017-05-26 14:08 来自手机 |只看该作者
该场景应该用iptable

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
6 [报告]
发表于 2017-05-26 14:10 来自手机 |只看该作者
楼主的意思,我访问2.3.5.6:2000然后自动转成访问2.3.5.6:3000对的吧

论坛徽章:
0
7 [报告]
发表于 2017-05-26 16:28 |只看该作者
回复 6# shang2010

对, 是这个意思.我刚刚换了一下搜索的关键词, 找到了解决方案, 经测试,这种方法可以解决我的问题.

https://serverfault.com/question ... nd-incoming-packets
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP