!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>云主机用iptables做本机端口转发

云主机用iptables做本机端口转发

 

以前发过一篇利用iptables本机端口转发的文章,利用简单的地址转换的原理,可以将两台互相可访问的机器利用iptables转发,这样很容易实现类似透明代理的功能,当然,这个代理不会有缓存的。:)

假如我希望把对 1.2.4.5:8080的访问都转向 1.2.6.9:80:

IP包来到之后,修改目的地址,使之转向目标机器的目标端口,在.5这个机器上:

iptables -t nat -A PREROUTING -d 1.2.4.5 -p tcp –dport 8080 -j DNAT –to 1.2.6.9:80

IP包返回的时候,修改源地址(源端口),使之符合IP协议,正确返回,还是在.5这个机器上:

iptables -t nat -A POSTROUTING -d 1.2.6.9 -p tcp –dport 80 -j SNAT –to 1.2.4.5:8080

然后我们需要在.5操作系统上打开IP转发:

echo ‘1′ > /proc/sys/net/ipv4/ip_forward

最后再设置.5的连接状态

  iptables -A FORWARD -o eth0 -d 1.2.4.5 -p tcp --dport 8080 -j ACCEPT

  iptables -A FORWARD -i eth0 -s 1.2.6.9 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

 

附全部脚本(不关.9的事,全是在.5上)

iptables -t nat -A POSTROUTING -d 1.2.4.5 -p tcp --dport 8080 -j DNAT --to 1.2.6.9:80

iptables -t nat -A PREROUTING -d 1.2.4.5 -p tcp --dport 8080 -j DNAT --to 1.2.6.9:80

iptables -t nat -A POSTROUTING -d 1.2.6.9 -p tcp --dport 80 -j SNAT --to 1.2.4.5:8080

iptables -A FORWARD -i eth0 -s 1.2.6.9 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

iptables -A FORWARD -o eth0 -d 1.2.4.5 -p tcp --dport 8080 -j ACCEPT
代码如下:  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080估计适当增加其它的参数也可以做不同IP的端口转发。如果需要本机也可以访问,则需要配置OUTPUT链:  iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080原因:外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT,或者POSTROUTING。POSTROUTING不行,需要看看。

感谢:云服务器

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

Windows 下一键安装 Cacti 监控

2021-4-17 21:56:11

服务器教程

云服器Linux操作系统定时任务系统

2021-4-17 21:56:14

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase