IPTable数据包转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPTable数据包转发相关的知识,希望对你有一定的参考价值。

我只是在玩iptables,将数据包转发到其他服务器/端口。我想将端口8990的数据包转发到其他IP地址10.209.4.203:27017。但它的行为不符合预期]

/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/iptables -t nat -N test_dnat
/sbin/iptables -t nat -A OUTPUT -j test_dnat
/sbin/iptables -t nat -A PREROUTING -j test_dnat
iptables -t nat -A test_dnat -p tcp  --dport 8989 -j LOG  --log-prefix '**  XX TO 10.209.4.203 **'
iptables -t nat -A test_dnat -p tcp  --dport 8989 -j DNAT --to-destination 10.209.4.203:27017
iptables -t nat -A test_dnat -p tcp  --dport 8990 -j LOG  --log-prefix '**  XX TO 10.209.4.202  **'
iptables -t nat -A test_dnat -p tcp  --dport 8990 -j DNAT --to-destination 10.209.4.202:27017

这是我从日志中得到的

Nov 25 11:30:20 mongo2 kernel: **  XX TO 10.209.4.202  **IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12470 DF PROTO=TCP SPT=59980 DPT=8990 WINDOW=43690 RES=0x00 SYN URGP=0 
Nov 25 11:30:21 mongo2 kernel: **  XX TO 10.209.4.202  **IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12471 DF PROTO=TCP SPT=59980 DPT=8990 WINDOW=43690 RES=0x00 SYN URGP=0 
Nov 25 11:30:23 mongo2 kernel: **  XX TO 10.209.4.202  **IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12472 DF PROTO=TCP SPT=59980 DPT=8990 WINDOW=43690 RES=0x00 SYN URGP=0 

请纠正我,如果做错了什么

答案

通常,当数据包进入时,目的地路由是在预路由链中完成的。

iptables -t nat -A **PREROUTING** -p tcp --dport 8990 -j DNAT --to-destination 10.209.4.203:27017

以上是关于IPTable数据包转发的主要内容,如果未能解决你的问题,请参考以下文章

iptable防火墙

iptable 详解

iptable之4表五链

16基于状态的iptable+高级路由(重点)

iptable防火墙,怎样使用参数

iptable防火墙,怎样使用参数