一。开启IP转发功能,默认是关闭的
(1) 临时修改
# echo 1 >/proc/sys/net/ipv4/ip_forward
修改后马上生效,但系统重启后则又恢复为默认值0。
(2) 永久修改
# vi /etc/sysctl.conf
将 net.ipv4.ip_forward 的值修改成 1 ,默认值0是禁止ip转发,修改为1即开启ip转发功能。
net.ipv4.ip_forward = 1
执行
# /usr/sbin/sysctl -p
使其立即生效。
二。 配置端口转发
1. 用户访问192.168.43.130: 7080 时我想让它转发到192.168.43.129:80
转发TCP 192.168.43.130的7080端口到192.168.43.129的80端口
# iptables -t nat -A PREROUTING --dst 192.168.43.130 -p tcp --dport 7080 -j DNAT --to-destination 192.168.43.129:80
使转发数据包实现“双向通路”,给数据包设置一个正确的返回通道
# iptables -t nat -A POSTROUTING --dst 192.168.43.129 -p tcp --dport 80 -j SNAT --to-source 192.168.43.130
2. 你也可以直接修改/etc/sysconfig/iptables文件
# vi /etc/sysconfig/iptables
-A PREROUTING -d 192.168.43.130/32 -p tcp -m tcp --dport 7080 -j DNAT --to-destination 192.168.43.129:80
-A POSTROUTING -d 192.168.43.129/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.43.130
3.开放7080端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7080 -jACCEPT
4.将当前规则保存到 /etc/sysconfig/iptables
# service iptables save
5. 重启防火墙
# service iptables restart
三。 本机端口转发
比如 访问 http://ip:7080 我想返回 http://ip:80 的内容,配置如下
新增7080转发到80
#iptables -t nat -A PREROUTING -p tcp --dport 7080 -j REDIRECT --to-port 80
取消7080转发到80
#iptables -t nat -D PREROUTING -p tcp --dport 7080 -j REDIRECT --to-port 80
保存和重启防火墙