Linux下使用iptables,socat进行端口转发教程

技术教程 风为裳 7浏览 0评论 繁體

简介

由于距离或线路的因素导致本地连接到服务端的网络不是很好,使用iptables,socat可以进行中继两种方法都支持tcp和udp,客户端-中继服务器-服务端,这样的方式可以改善网络的连接速度,也十分方便后续作业。

使用iptables进行端口转发

开启系统的转发功能

vi /etc/sysctl.conf

将 net.ipv4.ip_forward=0
修改成 net.ipv4.ip_forward=1

修改完后执行sysctl -p立即生效

使用

添加转发规则

iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

保存配置并重启iptables

service iptables save
service iptables restart

多端口转发配置

-A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination [目标IP]
-A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination [目标IP]
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

不同端口转发配置(使用本地服务器的 60000 端口来转发目标 IP 的 50000 端口)

-A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination [目标IP]:50000
-A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination [目标IP]:50000
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]

使用socat进行端口转发

安装

yum install -y socat    //centos

apt-get install -y socat    //debian,ubuntu

添加转发规则

nohup socat TCP4-LISTEN:30000,reuseaddr,fork TCP4:1.1.1.1:30000 >> socat.log 2>&1 &
nohup socat -T 600 UDP4-LISTEN:10000,reuseaddr,fork UDP4:1.1.1.1:10000 >> socat.log 2>&1 &

TCP4-LISTEN:10000 监听 ipv4 的 10000TCP 端口。10000 改成你自己需要转发的端口
fork TCP4:1.1.1.1:10000 转发到 1.1.1.1 的 10000 端口,根据需求修改自行修改 ip 和端口
nohup 后台运行。可以把这个命令写到/etc/rc.local里面开机启动启动。

相关资料

https://www.91yun.co/archives/3008
https://www.91yun.co/archives/3042
https://www.hi-linux.com/posts/61543.html

转载请注明:风为裳 » Linux下使用iptables,socat进行端口转发教程

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址