Hello! 欢迎来到盒子萌!

使用iptables实现端口转发(中转加速)


avatar
嘉木 2020-04-12 33

说明:玩vps的经常要用到端口转发用以实现更快的速度,比如手上有个xx商家的vps,本地访问速度很慢,这时候就可以用一个香港或者日本的线路做桥梁,达到更快的速度,这里使用iptables来进行中转的教程包含一键管理脚本和手动配置两种办法。

通过一键脚本安装

通过脚本的方法来安装也是最好上手的。步骤如下:

1、开启系统的转发功能

请在需要被转发的机器上运行:

vi /etc/sysctl.conf

net.ipv4.ip_forward=0修改成net.ipv4.ip_forward=1
编辑后使用命令让配置马上生效

sysctl -p

2、执行脚本安装命令

请在中转的机器上运行:

wget -N --no-check-certificate https://raw.githubusercontent.com/hugoyue/doubi/master/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh

将会在终端中显示管理菜单

iptables-scripts.png

初次使用前请请务必执行1. 安装 iptables(不仅仅是安装)。然后再选择4. 添加 iptables 端口转发后,会提示你依次输入:欲转发IP、欲转发端口、本地监听端口、本地IP、转发类型。

通过手动配置使用

1、开启系统的转发功能

vi /etc/sysctl.conf

net.ipv4.ip_forward=0修改成net.ipv4.ip_forward=1
编辑后使用命令让配置马上生效

sysctl -p

2、iptables的命令

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]

3、重启iptables使配置生效

service iptables save
service iptables restart

扩展需求

1、多端口转发修改方案:(将本地服务器的50000~65535转发至目标IP为1.1.1.1的50000~65535端口)

-A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
-A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
-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]

2、非同端口号修改方案:(使用本地服务器的60000端口来转发目标IP为1.1.1.1的50000端口)

-A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
-A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1: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]

暂无评论

发表评论