linux 端口转发

一、转发说明

使用A机器(192.168.100.1:21114)请求B机器(192.168.100.100:21444),A机器作为转发机器,其他机器访问A的21114会连接到B的21114端口。

二、修改转发配置项

注意:如下所有配置均只要在A(192.168.100.1)配置
# 重点:启用网卡转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward

三、增加iptables规则

# 清除所有规则
iptables -t nat -F
# 查看所有规则
iptables -t nat -nL
 
# 配置转发规则
iptables -t nat -A PREROUTING -p tcp --dport 21114 -j DNAT --to-destination 192.168.100.100:21114
iptables -t nat -A POSTROUTING -d 192.168.100.100 -p tcp --dport 21114 -j SNAT --to-source 192.168.100.1
 
 
# POSTROUTING可以简化如下:
iptables -t nat -A POSTROUTING -j MASQUERADE
 
# 简化后 最终命令为:
iptables -t nat -A PREROUTING -p tcp --dport 21114 -j DNAT --to-destination 192.168.100.100:21114
iptables -t nat -A POSTROUTING -j MASQUERADE
 
#注意: A机器直接访问21114是不会进行转发,不会走上这个逻辑,需结合使用OUTPUT链做处理

四、配置后的规则

[root@localhost logs]# cat /proc/sys/net/ipv4/ip_forward
1

# 原始配置
[root@localhost logs]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:15052 to:192.168.232.136:1502
 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
 
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       tcp  --  0.0.0.0/0            192.168.232.136         tcp dpt:15052 to:192.168.232.135

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在Linux分类目录。将固定链接加入收藏夹。