关于服务器端口转发的两种常见方法

蜗牛vps教程2022-08-051130

很多时候,访问国外服务器时,网络质量是很影响体验的,当我们有一台普通线路的国外服务器,日常使用没有太大要求其实也能满足自身需要,但是如果想要让体验更佳,那就可以尝试使用服务器端口转发。

端口转发的原理是用一台国内的服务器来做跳转,利用国内服务器优质的线路,使得访问国外服务器速度更快更稳定。常见的转发有rinetd、Haproxy、iptables、socat,前面2种只能转发TCP,后面TCP/UDP都可以转发,这里介绍iptables、socat,下面来看看两种转发方式。

一、socat转发

一键脚本

脚本说明:脚本默认开启UDP、TCP转发,带开机自启功能,且一次只能转发单个端口,如果想转发多个端口请重复运行本脚本

使用root运行以下命令:

  1. wget https://www.moerats.com/usr/shell/socat.sh && bash socat.sh

按要求输入以下信息:

如果你要用本地服务器的3333端口转发IP为1.1.1.1服务器的6666端口,那就依次填入指定参数。

请输入本地端口:3333

请输入远程端口:6666

请输入远程IP:1.1.1.1

输入后直到配置完成

二、iptables转发

2.1一键脚本

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

下载并运行脚本后,先选择 1. 安装 iptables ,会检测是否安装 iptables 同时也会进行 iptables 防火墙开机启动加载等配置。

使用方法

  1. ./iptables-pf.sh

运行脚本后,会显示菜单:

  1.  iptables 端口转发一键管理脚本 [vx.x.x]
  2.  -- Toyo | doub.io/wlzy-20 --
  3.  
  4.  0. 升级脚本
  5. ————————————
  6.  1. 安装 iptables
  7.  2. 清空 iptables 端口转发
  8. ————————————
  9.  3. 查看 iptables 端口转发
  10.  4. 添加 iptables 端口转发
  11.  5. 删除 iptables 端口转发
  12. ————————————
  13. 注意:初次使用前请请务必执行 1. 安装 iptables(不仅仅是安装)
  14.  
  15.  请输入数字 [0-5]:

选择 4. 添加 iptables 端口转发 后,会提示你依次输入 欲转发IP、欲转发端口、本地监听端口、本地IP、转发类型:

 

  1. 请输入 iptables 欲转发至的 远程端口 [1-65535] (支持端口段 如 2333-6666, 被转发服务器):10000-11000
  2.  
  3.  欲转发端口 : 10000-11000
  4.  
  5. 请输入 iptables 欲转发至的 远程IP(被转发服务器):2.2.2.2
  6.  
  7.  欲转发服务器IP : 2.2.2.2
  8.  
  9. 请输入 iptables 本地监听端口 [1-65535] (支持端口段 如 2333-6666)
  10. (默认端口: 10000-11000):
  11.  
  12.  本地监听端口 : 10000-11000
  13.  
  14. 请输入 本服务器的 公网IP网卡IP(注意是网卡绑定的IP,而不仅仅是公网IP,回车自动检测):
  15.  
  16.  本服务器IP : 1.1.1.1
  17.  
  18. 请输入数字 来选择 iptables 转发类型:
  19.  1. TCP
  20.  2. UDP
  21.  3. TCP+UDP
  22.  
  23. (默认: TCP+UDP):
  24.  
  25. ——————————————————————————————
  26.  请检查 iptables 端口转发规则配置是否有误 !
  27.  
  28.  本地监听端口 : 10000-11000
  29.  服务器 IP : 2.2.2.2
  30.  
  31.  欲转发的端口 : 10000-11000
  32.  欲转发 IP : 1.1.1.1
  33.  转发类型 : TCP+UDP
  34. ——————————————————————————————

最后会提示你确认配置是否有误,如果没有问题就按任意键继续,启动成功后就会提示:

  1.  
  2. ——————————————————————————————
  3.  iptables 端口转发规则配置完成 !
  4.  
  5.  本地监听端口 : 10000:11000
  6.  服务器 IP : 1.1.1.1
  7.  
  8.  欲转发的端口 : 10000:11000
  9.  欲转发 IP : 2.2.2.2
  10.  转发类型 : TCP+UDP
  11. ——————————————————————————————

选择 3. 查看 iptables 端口转发 后,会显示如下:

 

  1. 当前有 2 个 iptables 端口转发规则。
  2. 1. 类型: tcp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000
  3. 2. 类型: udp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000

选择 5. 删除 iptables 端口转发 后,也会显示列表,然后让你选择 要删除的端口转发规则序号。

 

Shadowsocks客户端说明

假设你的海外服务器(被中转)中搭建的Shadowsocks服务端的IP是 2.2.2.2 ,SS端口是 10000 。

 

假设中转服务器的IP是 1.1.1.1 ,本地监听端口和SS端口不一致,本地监听端口是 20000 。

 

那么,你的Shadowsocks客户端,添加Shadowsocks服务器,IP填写 1.1.1.1 ,端口填写 20000 ,其他的 密码/加密方式/协议/混淆等等 全部和原Shadowsocks账号一样!

 

其他说明

CentOS 7 默认的防火墙是 firewall,要使用本脚本,请先卸载或关闭 firewall 服务器,并安装 iptables 全套软件。

 

关于国内腾讯云等服务器转发失败解释

国内的很多服务器,例如腾讯云,在VPS网卡上面绑定的都是内网IP,这样的话,如果你用脚本自动检测外网IP,会转发失败,需要在添加转发规则的时候,本服务器IP手动写你的服务器 网卡上面绑定的IP。

 

2.2手动添加

在使用iptables转发流量之前请执行如下命令:

 关于服务器端口转发的两种常见方法  第1张

然后我们清除下所有默认的iptables表:

 

  1. iptables -F
  2. iptables -t nat -F
  3. service iptables save

iptables相同端口转发命令:

 

  1. iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
  2. iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
  3. iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [中转服务器IP]
  4. iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [中转服务器IP]

不同端口:

 

  1. iptables -t nat -A PREROUTING -p tcp --dport [源端口号] -j DNAT --to-destination [目标IP:目标端口号]
  2. iptables -t nat -A PREROUTING -p udp --dport [源端口号] -j DNAT --to-destination [目标IP:目标端口号]
  3. iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [目标端口号] -j SNAT --to-source [中转服务器IP]
  4. iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [目标端口号] -j SNAT --to-source [中转服务器IP]

注意:执行完毕后,必须进行保存 请使用 service iptables save 进行保存。

 

以下是一个实例(这里我们的应用端口为50020~50029,我们使用520022测试转发另外一个IP的6053端口,我们的主IP为:192.168.5.2,转发服务器IP为:1.1.1.1):

 

  1. iptables -t nat -A PREROUTING -p tcp --dport 50022 -j DNAT --to-destination 1.1.1.1:6053
  2. iptables -t nat -A PREROUTING -p udp --dport 50022 -j DNAT --to-destination 1.1.1.1:6053
  3. iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.5.2
  4. iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.5.2
  5. service iptables save

三、iptables和socat的优劣

实际体验中iptables会好一点,socat当转发数多了就会炸,推荐使用iptables转发。

教程来源于网络,仅作技术分享,请勿用于非法行为。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram