逗比云还是逃不过被墙的命运,既然如此那以后逗比云也就一直用被墙的旧域名 [softs.wtf] 算了。
投稿文章 | 广告合作 | Telegram 群组 / 公告频道 / 使用教程
广告

Shadowsocks利用 HaProxy 实现中继(中转/端口转发)加速

Shadowsocks Toyo 34评论
广告
本文最后更新于 2018年7月19日 12:48 可能会因为没有更新而失效。如已失效或需要修正,请留言!

中继加速(也叫中转,因为国内VPS效果最好所以一般都叫国内中转),是一种技术难度低,但是颇费钱的一种方法。而且要选好的服务器,加速效果才明显。

HaProxy是其中的方法之一,使用方便,但是只支持TCP转发,

其他的优化方案:https://doub.io/ss-jc26/#三、优化Shadowsocks

其他的端口转发教程https://doub.io/ss-jc26/#服务器中继(国内中转)

HaProxy便捷管理脚本:『原创』Shadowsocks HaProxy中继(中转) 便捷管理脚本

Socat:

优点:支持 TCP/UDP 转发。缺点:不支持端口段(多个端口需要开启多个转发)

HaProxy:

优点:支持 TCP 转发,支持 端口段 转发。缺点:不支持 UDP 转发。

iptables:

优点:支持 TCP/UDP 转发,支持 端口段 转发。缺点:配置麻烦,容易莫名其妙出错。

安装步骤

说他难度低也不是没有理由,看完下面的教程就知道多简单了!

以下教程,我是用的日本和美国服务器,我的Shadowsocks服务端安装在美国VPS上。

链接原理:SSR客户端 <=> 国内VPS <=> 美国VPS

安装HaProxy

  1. # Debian/Ubuntu系统:
  2. apt-get -y install haproxy
  3. # Centos系统:
  4. yum -y install haproxy

安装完之后就是配置HaProxy的配置文件了。

配置文件

打开 /etc/haproxy/haproxy.cfg 文件。

  1. vi /etc/haproxy/haproxy.cfg
  2.  
  3. # 如果提示没有vi这个命令,请安装:
  4. # Debian/Ubuntu系统:apt-get -y install vim
  5. # Centos系统:yum -y install vim

打开后把里面的内容全部删除,换成下面的内容。

  1. global
  2.  
  3. defaults
  4. log global
  5. mode tcp
  6. option dontlognull
  7. timeout connect 5000
  8. timeout client 50000
  9. timeout server 50000
  10.  
  11. frontend ss-in
  12. bind *:6666
  13. default_backend ss-out
  14.  
  15. backend ss-out
  16. server server1 233.233.233.233 maxconn 20480

其中 12 行的,把 6666 改成你被中转的VPS上面Shadowsocks服务端的端口,这个端口是你要转发的端口。

然后修改一下 16 行(最后一行),把 233.233.233.233 改成你要中转(被中转/远程服务器)的 VPS IP ,(不是很懂这里的先对照下面的客户端配置,在考虑如何修改),其他的都不要动!

还有,你的中转端口被中转端口是一致的,你的中转端口和被中转端口都是 6666

多端口配置

如果你需要中转多个端口,那你修改 bind 配置项为 *:端口段 格式。

也就是把连接中转VPS的 10000-30000 端口TCP数据转发到 233.233.233.233 10000-30000 端口上面。

  1. frontend ss-in
  2. bind *:10000-30000
  3. default_backend ss-out
  4.  
  5. backend ss-out
  6. server server1 233.233.233.233 maxconn 20480
HaProxy 1.5版本后也支持了ipv6,把这里的 233.233.233.233 换成 ipv6地址 就行了。

然后按 Exc键 退出vi编辑模式,输入 :wq 保存并退出,并执行下面代码运行HaProxy。

  1. # 启动haproxy
  2. /etc/init.d/haproxy start
  3. # 停止haproxy
  4. /etc/init.d/haproxy stop
  5.  
  6. # 如果你是 CentOS 7 系统,那么用这些命令:
  7. # 启动haproxy
  8. systemctl start haproxy.service
  9. # 启动haproxy
  10. systemctl stop haproxy.service

执行之后不会出现任何提示,就不需要管了,可以关闭ssh软件了。

客户端配置

假设我的国内中转VPS IP是 110.110.110.110 ,我的国外被中转的VPS IP是 233.233.233.233 ,我的国外VPS上的Shadowsocks服务端 端口是 6666 ,我设置的中继账号端口是 6666 ,那么我在Shadowsocks客户端就是如上图所填。其中密码和加密方式都是和你国外VPS上的Shadowsocks账号配置一样,你只需要改一下 服务器 IP 服务器端口 就好了!

如果无法连接,先确认你的原Shadowsocks账号能否正常使用,然后查看防火墙规则(iptables -L -n)是否有问题。
还有需要注意的是HaProxy中继只支持TCP,也就是不支持需要UDP转发的游戏!

卸载方法

  1. # Debian/Ubuntu 系统:
  2. apt-get -y remove haproxy
  3.  
  4. # CentOS 系统:
  5. yum -y remove haproxy

然后删掉haproxy的配置文件目录

  1. rm -rf /etc/haproxy

使用命令

  1. 启动:/etc/init.d/haproxy start
  2. 停止:/etc/init.d/haproxy stop
  3. 重启:/etc/init.d/haproxy restart
  4. 重载:/etc/init.d/haproxy reload
  5. 状态:/etc/init.d/haproxy status
  6.  
  7. # 如果你是 CentOS 7 系统,那么用这些命令:
  8. 启动:systemctl start haproxy.service
  9. 停止:systemctl stop haproxy.service
  10. 重启:systemctl restart haproxy.service
  11. 状态:systemctl status haproxy.service

效果测试

上图是直接用美国VPS上的Shadowsocks账号的速度,下图是用国内中转服务器加速后的Shadowsocks账号速度,可以看出提升明显!

对了,如果你再用了其他优化方法,速度提升就更明显了!传送门

其他的端口转发教程https://doub.io/ss-jc26/#服务器中继(国内中转)

HaProxy便捷管理脚本:『原创』Shadowsocks HaProxy中继(中转) 便捷管理脚本

其他的优化方案:https://doub.io/ss-jc26/#三、优化Shadowsocks

转载请超链接注明:逗比根据地 » Shadowsocks利用 HaProxy 实现中继(中转/端口转发)加速
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

赞 (18)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(34)个小伙伴在吐槽
    1. Jul 19 08:39:49 localhost.localdomain systemd[1]: Started HAProxy Load Balancer.
    2. Jul 19 08:39:49 localhost.localdomain systemd[1]: Starting HAProxy Load Balancer...
    3. Jul 19 08:39:49 localhost.localdomain haproxy-systemd-wrapper[33803]: haproxy-systemd-wrapper: executing /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
    4. Jul 19 08:39:49 localhost.localdomain haproxy-systemd-wrapper[33803]: [ALERT] 199/083949 (33804) : Starting frontend ss-in: cannot bind socket [0.0.0.0:18762]
    5. Jul 19 08:39:49 localhost.localdomain haproxy-systemd-wrapper[33803]: haproxy-systemd-wrapper: exit, haproxy RC=1
    6. Jul 19 08:39:49 localhost.localdomain systemd[1]: haproxy.service: main process exited, code=exited, status=1/FAILURE
    7. Jul 19 08:39:49 localhost.localdomain systemd[1]: Unit haproxy.service entered failed state.
    8. Jul 19 08:39:49 localhost.localdomain systemd[1]: haproxy.service failed.
    这个是为什么呢?haproxy的配置照搬上面的
    arwind2018-07-19 08:41 回复
      1. Jul 19 08:39:49 localhost.localdomain haproxy-systemd-wrapper[33803]: [ALERT] 199/083949 (33804) : Starting frontend ss-in: cannot bind socket [0.0.0.0:18762]
      2. # 似乎是无法绑定到 18762 端口,是不是端口被占用了?
      3. netstat -lntp
      4. # 查看端口监听情况
      5. # 或者尝试更换端口看看
      Toyo2018-07-19 11:13 回复
  1. AB均为酸酸主机,服务端口都为12345,A为B加速的端口为23456,B为A加速的端口为23456,用12345的时候都可以用,但是用23456的都不行。是不是因为主机上有酸酸,要把加速端口做什么设置。
    Thapana2018-06-01 22:35 回复
    • 你的意思是 A 和 B 服务器上面的代理服务端端口都是 12345 ,而 A 和 B 服务器上面同时都搭建了端口转发程序,中转端口都是 23456?
      1. 访问 A 23456 = 访问 B 12345
      2. 访问 B 23456 = 访问 A 12345
      试过其他端口转发程序吗?
      Toyo2018-06-02 06:20 回复
      • 对的,你的理解是对的,改其他端口是一样的,在访问haproxy转发的端口时数据是通的,但是上不了网,我不确定是不是要在主机上把转发端口设置iptable或者防火墙之类的。安装的一键酸酸R,应该是把所有12345端口的数据处理了吧
        Thapana2018-06-02 09:57 回复
        • 端口不一样,两个程序就不会存在冲突,尝试其他端口转发程序试试。
          Toyo2018-06-03 10:59 回复
      • 但是用一台没有装酸酸R的机器 来用haproxy转发端口,一切正常的。
        Thapana2018-06-02 09:59 回复
  2. 您好,如果想要访问国内服务器是A端口,然后转发到国外服务器是B端口,且国外服务器是ipv6地址,请问配置该怎么写? 我个人写的,一直无法使用,求解。 frontend ss-vultr-in bind *:100 default_backend ss-vultr-out backend ss-vultr-out server server1 [ipv6地址]:443 maxconn 20480
    姜辰2018-01-28 00:10 回复
    • IPv6 与 IPv4 之间转发可能不行,不管我也没测试过,没有环境。
      Toyo2018-01-28 16:10 回复
  3. Hello!Toyo,我有个问题,以上的教程是安装在境内的vps,还是境外的vps上?境内境外的我都装上了,发现连不通(直连可以),希望能指点迷津,谢谢啦!
    拱猪的小白菜2222017-11-14 12:30 回复
    • ShadowsocksR服务端安装在海外服务器上面(因为要翻墙),HaProxy中转程序安装在国内服务器上面(国内服务器是国内中转,也可以是海外服务器中转(当然肯定不能是SSR服务端所在的海外服务器,否则还中转什么))。
      Toyo2017-11-14 12:52 回复
  4. 国内大牌云服务商不是都说“不能使用“流量穿透”吗”,会不会被查水表 :eek:
    一颗比赛的艇2017-08-24 23:20 回复
    • 你以为谁都有资格被查水表?动不动就怕查水表,想太多。怕就不要用,没人逼你。
      Toyo2017-08-25 11:00 回复
  5. 国外的vps用了锐速,然后再中转之后还没直接用国外的快。是我的问题吗?
    sea2017-05-14 19:32 回复
    • 中转不一定就比直连快,这还取决于,VPS与中转服务器之间的网络质量和你与中转服务器之间的网络质量。
      Toyo2017-05-14 23:50 回复
      • 谢谢回答~
        sea2017-06-03 23:05 回复
  6. 启动失败,是centos系统 “-bash: etc/init.d/haproxy: No such file or directory”
    teny2017-03-13 16:11 回复
    • 少了一个 “/”
      1. etc/init.d/haproxy
      2. /etc/init.d/haproxy
      3. # 或者用这个
      4. service haproxy start
      Toyo2017-03-13 17:30 回复
  7. 启动haproxy出错: [ALERT] 364/001048 (14919) : parsing [/etc/haproxy/haproxy.cfg:2]: unknown keyword 'bal' out of section. [ALERT] 364/001048 (14919) : parsing [/etc/haproxy/haproxy.cfg:3]: unknown keyword 'ulimit-n' out of section. [ALERT] 364/001048 (14919) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg [ALERT] 364/001048 (14919) : Fatal errors found in configuration. Errors in configuration file, check with haproxy check. 求助!!!
    Yun2016-12-30 00:11 回复
    • 把你的配置文件内容发出来看看。
      Toyo2016-12-30 01:30 回复
      • 我把CentOS系统换成Debian就成功了 :mrgreen: ,但是速度没有感觉到提升。之后我把haproxy换成了Socat,启动后效果也是没感觉有提升,看youtube 1080P还是卡。我国内服务器用的是阿里云的最低配服务器(朋友开的,我用来试试效果)
        Yun2016-12-30 11:18 回复
  8. 没有人和我一样的想法?
    小伙伴2016-07-07 13:32 回复
  9. 直接用日本的VPS做SS服务端不就行了吗?为什么非要用美国的做?这样你日本的光跑流量了。其他啥也不干,不是浪费吗
    小伙伴2016-07-07 13:32 回复
    • 没看文章吗?我没有国内的服务器,所以拿日本的做教程。
      Toyo2016-07-07 23:29 回复
  10. 启动后要关闭吗
    kk2016-06-22 23:35 回复
    • 启动后就不需要管了
      Toyo2016-06-23 10:48 回复
  11. 执行启动haproxy 后没有反应是怎么回事?
    老豆丁2016-06-20 19:52 回复
    • 正常情况就是没有反应,不需要管,已经正常启动了
      Toyo2016-06-20 22:47 回复
      • 谢谢,已经成功,速度提升一倍 :evil:
        老豆丁2016-06-22 13:07 回复
  12. 这个怎么配置多用户版的ss-panel对应很多端口转发,求博主指教。
    小马2016-05-11 16:23 回复
    • 已经更新了多端口转发的方法
      Toyo2016-07-23 08:26 回复
  13. 可以使用一个国内服务器中转多个国外服务器吗?如果可以的话,怎么配置?
    没时间解释了快上车2016-04-27 13:29 回复
    • 已经更新了多端口转发的方法
      Toyo2016-05-03 08:18 回复
  14. 顶一个 :shock:
    醉花阴柳2016-04-24 19:56 回复