首先开启IP转发功能,默认是关闭的。
临时修改:
# echo 1 >/proc/sys/net/ipv4/ip_forward
修改过后就马上生效,但如果系统重启后则又恢复为默认值0。
永久修改:
vi /etc/sysctl.conf
# 找到下面的值并将0改成1
net.ipv4.ip_forward = 1
# sysctl –p(使之立即生效)
默认值0是禁止ip转发,修改为1即开启ip转发功能。
配置端口转发
假设用户访问192.168.1.10:70时我想让它转发到192.168.1.20:80:
# iptables -t nat -A PREROUTING -p tcp -d 113.108.110.61 --dport 70 -j DNAT --to-destination 192.168.1.20:80
# iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.20 --sport 80 -j SNAT --to-source 192.168.1.10
# service iptables save(将当前规则保存到 /etc/sysconfig/iptables)
或者,你也可以直接修改/etc/sysconfig/iptables文件:
-A PREROUTING -d 192.168.1.10/32 -p tcp -m tcp --dport 70 -j DNAT --to-destination 192.168.1.20:80
-A POSTROUTING -s 192.168.1.20/32 -p tcp -m tcp --sport 80 -j SNAT --to-source 192.168.1.10
最后不要忘了开放70端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 70 -j ACCEPT
配置完成后,记得重启防火墙:
# service iptables restart
本机端口转发
如果只需要在本机间不同的端口转发就比较容易了,比如 访问 http://ip:70 我想返回 http://ip:80 的内容,配置如下:
[root@localhost sbin]# iptables -t nat -A PREROUTING -p tcp --dport 70 -j REDIRECT --to-ports 80
[root@localhost sbin]# service iptables save
[root@localhost sbin]# service iptables restart