使用Hysteria+GOST加速回源

·
日常 协议 服务器 安装 代理 命令 文件 curl tcp 服务 socks5 网页 IP 127.0.0.1 hysteria xtom buyvm January 11, 2023

前因

最近我买了一台BuyVM的卢森堡VPS,挂载了块存储作为一个小网盘使用,但是实测速度较差,移动到了晚上单线程只有20k左右。随即我又买了一台xTOM日本东京作为反代,同时也为图床分流使用。反代之后单线程速度达到了96Mbps,但是这肯定不是这两个机器的最快速度。如果使用DD生成一个空文件放在xTOM上,单线程速度可以到350Mbps左右。想到Hysteria是一个功能丰富的,基于修改版的QUIC协议的,专为恶劣网络环境进行优化的双边加速的工具,我想试试能不能用这个工具改善BuyVM到xTOM之间的速度。

正文

首先假设BuyVM的IP为107.114.5.14,在BuyVM上设置web服务器,使用http模式,端口假设是14253,监听域名设置为origin.example.com。然后安装Hysteria,安装完成后配置Config.json,配置方法因为政策原因请自行到Hysteria Docs查看。在BuyVM上设置好Hysteria的服务端之后,转到xTOM上,根据服务端配置来设置Hysteria的客户端,启用Socks5,将监听IP设置为127.0.0.1,端口这里假设为11451,转换成配置文件的片段就是:

"socks5": {
    "listen": "127.0.0.1:11451"
  },

然后新建一个screen,在其中启动Hysteria并退出那个screen。之后再使用命令:

curl -x socks5://127.0.0.1:11451 ip.sb

如果返回的结果不是报错或者xTOM的IP而是BuyVM的IP就代表Hysteria配置完成了。但是仅仅有一个Socks5是不够的,Nginx和Caddy似乎都不支持(或者是我不知道)使用Socks5回源,因此这里使用GOST的代理链和端口转发功能。在xTOM上也安装一个GOST,同样因为政策原因这里不展示安装过程。安装完GOST之后,假设我们希望让xTOM的Web服务器使用端口19198进行回源,则新建一个screen,在其中执行命令:

gost -L=tcp://127.0.0.1:19198/107.114.5.14:14253 -F socks5://127.0.0.1:11451

执行后退出screen,再使用下面的命令来检查是否生效:

curl 127.0.0.1:19198

如果输出的是网页的内容,而不是报错之类的就代表生效了。之后再在xTOM的Web服务器上配置一下反向代理即可。比如Caddy2可以这样设置:

https://example.com:443 {
        reverse_proxy * 127.0.0.1:19198 {
                header_up Host origin.example.com
                header_down Access-Control-Allow-Origin https://web.example.com
                header_down Access-Control-Allow-Methods GET
                header_down Access-Control-Allow-Headers *
        }
}

最后,如果希望速度再快一点可以调整一下系统UDP的接收和发送buffer大小

sysctl -w net.core.rmem_max=33554432
sysctl -w net.core.wmem_max=33554432

优点

  • 大幅提升速度,大约可以跑到300Mbps左右了
  • 回源是强加密,且无需在源站Web服务器上设置

缺点

  • 首字节速度有点慢,只适合下载站和视频站
  • 对双方机器的CPU性能有一定的要求
  • 可能会被某些IDC认为是DDoS
  • Hysteria的本职工作不是干这个的
  • 修改VMware虚拟机硬盘类型
  • Coming soon
取消回复

说点什么?
Title
前因
正文
优点
缺点

© 2023 Type boom
友链&RSS