码迷,mamicode.com
首页 > 其他好文 > 详细

iptables 端口转发

时间:2019-07-14 11:02:57      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:企业   iptable   variable   严格   sys   永久   需要   lan   cep   

首先要开启端口转发器必须先修改内核运行参数ip_forward,打开转发:

# echo 1 > /proc/sys/net/ipv4/ip_forward   //此方法临时生效
或
# vi /ect/sysctl.conf                      //此方法永久生效
# sysctl -p 

本机端口转发

# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

根据 iptables防火墙原理详解 可知,实际上在数据包进入INPUT链之前,修改了目标地址(端口),于是不难理解在开放端口时需要设置的是放行8080端口,无需考虑80:

# iptables -A INPUT -s 172.29.88.0/24 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

此时外部访问http的80端口便可自动转到8080(浏览器地址栏不会变),而且又具有很高的性能,但如果你通过服务器本地主机的curl或firfox浏览器访问http://localhost:80http://doman.com:80都是不行(假如你有这样的奇葩需求),这是因为本地数据包产生的目标地址不对,你需要额外添加这条 OUTPUT 规则:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080

下面的规则可以达到同样的效果:

iptables -t nat -A PREROUTING -p tcp -i eth0 -d $YOUR_HOST_IP --dport 80 -j DNAT --to $YOUR_HOST_IP:8080
iptables -t nat -A OUTPUT -p tcp -d $YOUR_HOST_IP --dport 80 -j DNAT --to 127.0.0.1:8080
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1      --dport 80 -j DNAT --to 127.0.0.1:8080

异机端口转发
有些情况下企业内部网络隔离比较严格,但有一个跨网段访问的情况,此时只要转发用的中转服务器能够与另外的两个IP(服务器或PC)通讯就可以使用iptables实现转发。(端口转发的还有其他方法,请参考 linux服务器下各种端口转发技巧 )

要实现的是所有访问 192.168.10.100:8000 的请求,转发到 172.29.88.56:80 上,在 192.168.10.100 是哪个添加规则:

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.10.100 --dport 8000 -j DNAT --to-destination 172.29.88.56:80
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.10.100
或者
iptables -t nat -A PREROUTING -d 192.168.10.100 -p tcp --dport 8000 -j DNAT --to 172.29.88.56:80
iptables -t nat -A POSTROUTING -d 172.29.88.56 -p tcp --dport 80 -j SNAT --to-source 192.168.10.100

需要注意的是,如果你的FORWARD链默认为DROP,上面所有端口转发都必须建立在FORWARD链允许通行的情况下:

 
iptables -A FORWARD -d 172.29.88.56 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 172.29.88.56 -p tcp -j ACCEPT

iptables 端口转发

标签:企业   iptable   variable   严格   sys   永久   需要   lan   cep   

原文地址:https://www.cnblogs.com/fanweisheng/p/11183354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!