Linux采用iptables端口转发的配置

来源:互联网 发布:郑和 知乎 编辑:程序博客网 时间:2024/05/16 13:46

一。开启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

保存和重启防火墙





原创粉丝点击