赞
踩
有的时候机器有一台网关机器,需要做端口转发的工作,那么可以使用iptables或者使用firwalld进行配置,firewalld底层也是调用的跟iptables一样的内核模块的,只是命令的不同
机器A
机器B
机器C
配置访问192.168.0.85端口44561映射到192.168.1.102的4456端口
配置访问192.168.0.85端口44562映射到192.168.1.101的4456端口
开启内核转发功能
[root@lab103 ~]# cat /etc/sysctl.conf |grep forwa
net.ipv4.ip_forward = 1
[root@lab103 ~]# sysctl -p
#!/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 #DNAT 做端口转发 lab102 $IPT -t nat -A PREROUTING -d 192.168.0.85 -p tcp --dport 44561 -j DNAT --to-destination 192.168.1.102:4456 #SNAT 做端口转发 $IPT -t nat -A POSTROUTING -p tcp -d 192.168.1.102 --dport 4456 -j SNAT --to-source 192.168.1.103 #DNAT 做端口转发 lab1021 $IPT -t nat -A PREROUTING -d 192.168.0.85 -p tcp --dport 44562 -j DNAT --to-destination 192.168.1.101:4456 #SNAT 做端口转发 $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的地址,如果错了就有问题
#!/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
上面的配置好转发以后都不要在转发的机器本机进行测试,本机上直接测试会不通,这个需要在外部进行访问转发机器进行验证
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。