关于服务器端口转发的两种常见方法
很多时候,访问国外服务器时,网络质量是很影响体验的,当我们有一台普通线路的国外服务器,日常使用没有太大要求其实也能满足自身需要,但是如果想要让体验更佳,那就可以尝试使用服务器端口转发。
端口转发的原理是用一台国内的服务器来做跳转,利用国内服务器优质的线路,使得访问国外服务器速度更快更稳定。常见的转发有rinetd、Haproxy、iptables、socat,前面2种只能转发TCP,后面TCP/UDP都可以转发,这里介绍iptables、socat,下面来看看两种转发方式。
一、socat转发
一键脚本
脚本说明:脚本默认开启UDP、TCP转发,带开机自启功能,且一次只能转发单个端口,如果想转发多个端口请重复运行本脚本
使用root运行以下命令:
- 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一键脚本
- 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 防火墙开机启动加载等配置。
使用方法
- ./iptables-pf.sh
运行脚本后,会显示菜单:
- iptables 端口转发一键管理脚本 [vx.x.x]
- -- Toyo | doub.io/wlzy-20 --
- 0. 升级脚本
- ————————————
- 1. 安装 iptables
- 2. 清空 iptables 端口转发
- ————————————
- 3. 查看 iptables 端口转发
- 4. 添加 iptables 端口转发
- 5. 删除 iptables 端口转发
- ————————————
- 注意:初次使用前请请务必执行 1. 安装 iptables(不仅仅是安装)
- 请输入数字 [0-5]:
选择 4. 添加 iptables 端口转发 后,会提示你依次输入 欲转发IP、欲转发端口、本地监听端口、本地IP、转发类型:
- 请输入 iptables 欲转发至的 远程端口 [1-65535] (支持端口段 如 2333-6666, 被转发服务器):10000-11000
- 欲转发端口 : 10000-11000
- 请输入 iptables 欲转发至的 远程IP(被转发服务器):2.2.2.2
- 欲转发服务器IP : 2.2.2.2
- 请输入 iptables 本地监听端口 [1-65535] (支持端口段 如 2333-6666)
- (默认端口: 10000-11000):
- 本地监听端口 : 10000-11000
- 请输入 本服务器的 公网IP网卡IP(注意是网卡绑定的IP,而不仅仅是公网IP,回车自动检测):
- 本服务器IP : 1.1.1.1
- 请输入数字 来选择 iptables 转发类型:
- 1. TCP
- 2. UDP
- 3. TCP+UDP
- (默认: TCP+UDP):
- ——————————————————————————————
- 请检查 iptables 端口转发规则配置是否有误 !
- 本地监听端口 : 10000-11000
- 服务器 IP : 2.2.2.2
- 欲转发的端口 : 10000-11000
- 欲转发 IP : 1.1.1.1
- 转发类型 : TCP+UDP
- ——————————————————————————————
最后会提示你确认配置是否有误,如果没有问题就按任意键继续,启动成功后就会提示:
- ——————————————————————————————
- iptables 端口转发规则配置完成 !
- 本地监听端口 : 10000:11000
- 服务器 IP : 1.1.1.1
- 欲转发的端口 : 10000:11000
- 欲转发 IP : 2.2.2.2
- 转发类型 : TCP+UDP
- ——————————————————————————————
选择 3. 查看 iptables 端口转发 后,会显示如下:
- 当前有 2 个 iptables 端口转发规则。
- 1. 类型: tcp 监听端口: 10000:20000 转发IP和端口: 2.2.2.2:10000-20000
- 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转发流量之前请执行如下命令:
然后我们清除下所有默认的iptables表:
- iptables -F
- iptables -t nat -F
- service iptables save
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]
不同端口:
- 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]
注意:执行完毕后,必须进行保存 请使用 service iptables save 进行保存。
以下是一个实例(这里我们的应用端口为50020~50029,我们使用520022测试转发另外一个IP的6053端口,我们的主IP为:192.168.5.2,转发服务器IP为:1.1.1.1):
- iptables -t nat -A PREROUTING -p tcp --dport 50022 -j DNAT --to-destination 1.1.1.1:6053
- iptables -t nat -A PREROUTING -p udp --dport 50022 -j DNAT --to-destination 1.1.1.1:6053
- iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.5.2
- iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 6053 -j SNAT --to-source 192.168.5.2
- service iptables save
三、iptables和socat的优劣
实际体验中iptables会好一点,socat当转发数多了就会炸,推荐使用iptables转发。
教程来源于网络,仅作技术分享,请勿用于非法行为。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论