端口转发配置
zphj1987端口转发配置
需求
有的时候机器有一台网关机器,需要做端口转发的工作,那么可以使用iptables或者使用firwalld进行配置,firewalld底层也是调用的跟iptables一样的内核模块的,只是命令的不同
配置
环境说明
机器A
- 外网IP:192.168.0.85
- 内网IP:192.168.1.103
机器B
机器C
配置访问192.168.0.85端口44561映射到192.168.1.102的4456端口
配置访问192.168.0.85端口44562映射到192.168.1.101的4456端口
通用配置
开启内核转发功能
1 2 3
| [root@lab103 ~] net.ipv4.ip_forward = 1 [root@lab103 ~]
|
使用iptable配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp $IPT -F $IPT -t nat -F $IPT -X $IPT -t nat -X $IPT -Z $IPT -t nat -Z iptables -t filter -P FORWARD ACCEPT
$IPT -t nat -A PREROUTING -d 192.168.0.85 -p tcp --dport 44561 -j DNAT --to-destination 192.168.1.102:4456
$IPT -t nat -A POSTROUTING -p tcp -d 192.168.1.102 --dport 4456 -j SNAT --to-source 192.168.1.103
$IPT -t nat -A PREROUTING -d 192.168.0.85 -p tcp --dport 44562 -j DNAT --to-destination 192.168.1.101:4456
$IPT -t nat -A POSTROUTING -p tcp -d 192.168.1.101 --dport 4456 -j SNAT --to-source 192.168.1.103
|
上面的注意下那个to-source后面应该接上转发机器的内网的IP的地址,如果错了就有问题
使用firewalld配置
1 2 3 4 5 6 7 8
| #!/bin/sh firewall-cmd --add-masquerade --permanent firewall-cmd --add-port=44561/tcp --permanent firewall-cmd --add-port=44562/tcp --permanent firewall-cmd --add-forward-port=port=44561:proto=tcp:toport=4456:toaddr=192.168.1.102 --permanent firewall-cmd --add-forward-port=port=44562:proto=tcp:toport=4456:toaddr=192.168.1.101 --permanent firewall-cmd --reload firewall-cmd --list-all
|
注意点
上面的配置好转发以后都不要在转发的机器本机进行测试,本机上直接测试会不通,这个需要在外部进行访问转发机器进行验证