轻松搞定Linux端口转发

╰+哭是因爲堅強的太久メ 2022-07-26 00:22 317阅读 0赞

一 从一台机到另一台机端口转发

启用网卡转发功能
#echo 1 > /proc/sys/net/ipv4/ip_forward

举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口
a.同一端口转发(192.168.0.132上开通1521端口访问 iptables -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 1521 -j ACCEPT)
iptables -t nat -I PREROUTING -p tcp —dport 1521 -j DNAT —to 192.168.0.211
iptables -t nat -I POSTROUTING -p tcp —dport 1521 -j MASQUERADE

b.不同端口转发(192.168.0.132上开通21521端口访问 iptables -A RH-Firewall-1-INPUT -m state —state NEW -m tcp -p tcp —dport 21521 -j ACCEPT)
iptables -t nat -A PREROUTING -p tcp -m tcp —dport 21521 -j DNAT —to-destination 192.168.0.211:1521
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp —dport 1521 -j SNAT —to-source 192.168.0.132

以上两条等价配置(更简单[指定网卡]):
iptables -t nat -A PREROUTING -p tcp -i eth0 —dport 31521 -j DNAT —to 192.168.0.211:1521
iptables -t nat -A POSTROUTING -j MASQUERADE

保存iptables
#service iptables save

#service iptables restart

二 用iptables做本机端口转发

代码如下:
iptables -t nat -A PREROUTING -p tcp —dport 80 -j REDIRECT —to-ports 8080

估计适当增加其它的参数也可以做不同IP的端口转发。

如果需要本机也可以访问,则需要配置OUTPUT链(********特别注意:本机访问外网的端口会转发到本地,导致访不到外网,如访问yown.com,实际上是访问到本地,建议不做80端口的转发或者指定目的 -d localhost):
iptables -t nat -A OUTPUT -d localhost -p tcp —dport 80 -j REDIRECT —to-ports 8080

原因:
外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT。

发表评论

表情:
评论列表 (有 0 条评论,317人围观)

还没有评论,来说两句吧...

相关阅读

    相关 轻松EasyUI

            最近在学习easyUI,顾名思义easyUI很简单,总结一下我在学习EasyUI的时候是怎么学习的,学习的时候主要从四个方面入手:         ①什么是

    相关 Makefile 如何轻松

    最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。             于是google到