免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2597 | 回复: 9

[网络管理] 请教一个 iptables 的问题 [复制链接]

论坛徽章:
0
发表于 2011-01-27 09:51 |显示全部楼层
大家好,小弟刚开始学习 iptables,有一个问题请教大家:
我在iptables设置一下一条规则:

sudo iptables -t nat -A PREROUTING -p tcp --dport 3500 -j REDIRECT --to-ports 24100

内网上其他及其可以正常转发端口,但是本地机器却不能正常转发端口,请问这是为什么呀?

论坛徽章:
0
发表于 2011-01-27 11:24 |显示全部楼层
本机数据不走 nat 的 PREROUTING 链

论坛徽章:
0
发表于 2011-01-27 11:36 |显示全部楼层
本机数据不走 nat 的 PREROUTING 链
platinum 发表于 2011-01-27 11:24

那请问,有什么办法可以实现本地机器的端口转发?

论坛徽章:
0
发表于 2011-01-27 11:41 |显示全部楼层
没什么好办法,即使转换了,数据回来的时候也无法做到反转换

论坛徽章:
0
发表于 2011-01-27 12:01 |显示全部楼层
回复 4# platinum
突然想到一个办法,本地机器去访问别的IP,然后在 nat 表中的 output 作 DNAT,改回本机的IP,再改正端口。

iptables -t nat -A OUTPUT -p tcp -d 10.19.14.129 --dport 3500 -j DNAT -to 10.19.14.128:24100

这样就OK了。
不过这样做的缺点就是访问不了 10.19.14.129 的 3500 端口

论坛徽章:
0
发表于 2011-01-27 12:09 |显示全部楼层
但好像有问题
修改数据前
10.19.14.128xxx -> 10.19.14.129:3500
修改后
10.19.14.128:yyyy -> 10.19.14.128:24100

回来的时候
10.19.14.128:24100 -> 10.19.14.128:yyyy
本机就直接处理了,没有回到 xxxx 上

论坛徽章:
0
发表于 2011-01-27 12:38 |显示全部楼层
xxxx 为什么会变成 yyyy呢?
那个包的source端口并没有修改,做了一下实验,也是没有问题。
或者是有哪些问题我没有注意到?

论坛徽章:
0
发表于 2011-01-27 12:54 |显示全部楼层
恩……我觉得最好抓包看一下,因为我记得我没有实验成功,很早以前做的了

论坛徽章:
0
发表于 2011-01-27 13:46 |显示全部楼层
本帖最后由 zavakid 于 2011-01-27 13:53 编辑

tcpdump 抓包 sudo tcpdump tcp -i 9 port 24100 or 3500 -n
结果如下:

13:43:33.156126 IP 10.19.14.128.60218 > 10.19.14.128.24100: Flags [S], seq 761883484, win 5840, options [mss 1460], length 0
13:43:33.156145 IP 10.19.14.129.3500 > 10.19.14.128.60218: Flags [S.], seq 749759732, ack 761883485, win 32792, options [mss 16396], length 0
13:43:33.156161 IP 10.19.14.128.60218 > 10.19.14.128.24100: Flags [.], ack 749759733, win 5840, length 0
13:43:33.156208 IP 10.19.14.128.60218 > 10.19.14.128.24100: Flags [P.], seq 0:548, ack 1, win 5840, length 548
13:43:33.156218 IP 10.19.14.129.3500 > 10.19.14.128.60218: Flags [.], ack 549, win 33428, length 0
13:43:33.165351 IP 10.19.14.129.3500 > 10.19.14.128.60218: Flags [P.], seq 1:759, ack 549, win 33428, length 758
13:43:33.165366 IP 10.19.14.128.60218 > 10.19.14.128.24100: Flags [.], ack 759, win 6822, length 0
13:43:33.165438 IP 10.19.14.129.3500 > 10.19.14.128.60218: Flags [P.], seq 759:887, ack 549, win 33428, length 128
13:43:33.165447 IP 10.19.14.128.60218 > 10.19.14.128.24100: Flags [.], ack 887, win 8338, length 0
13:43:33.165506 IP 10.19.14.129.3500 > 10.19.14.128.60218: Flags [F.], seq 887, ack 549, win 33428, length 0
13:43:33.165936 IP 10.19.14.128.60218 > 10.19.14.128.24100: Flags [F.], seq 548, ack 888, win 8338, length 0
13:43:33.165954 IP 10.19.14.129.3500 > 10.19.14.128.60218: Flags [.], ack 550, win 33428, length 0

看起来抓到的是iptables修改过的包。
对于TCP协议我不是很懂,但看起来,好像就是 10.19.14.128.24100 和 10.19.14.129.3500 就相当于同一个地址了?

论坛徽章:
0
发表于 2011-01-27 14:11 |显示全部楼层
我测试了一下,确实可行,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP