本文员平常玩的台服英雄联盟,花钱买的加速器,速度不理想,稳定性也不好。突发奇想,能不能自己建一个加速器,获得更快的速度和稳定性。没有想到,在ChatGPT的指导下,一会儿就成功啦。
选型Hysteria
在使用加速器的过程中,我留意到又Vless和Hysteria等多种协议。经过一番了解,游戏加速器,选择Hysteria更合适,因为游戏基本是通过UDP,Hysteria默认就是UDP方式,而其它协议更多的默认方式是用于一般网页和APP的TCP。
虽然我并不知道UDP是什么,也不知道TCP是什么,但是我知道ChatGPT比绝大多数有技术偏好的技术人员更靠谱。我选择无脑相信ChatGPT,不花时间去研究其它平台,直接选用Hysteria。
实现方案
在此,请允许我代表众多又菜又爱捣鼓的技术爱好者小白,称赞一下,Docker真的是一个伟大的发明。在Docker的帮助下,我们不再需要在一系列下载、路径、权限等琐事上面去试错,只需要集中精力管理好配置即可。
在ChatGPT的指导下,我了解到,整个实现方案中,需要我配置的主要有四个部分:
- 将域名解析到云服务器
- 打开云服务器防火墙的443端口UDP协议
- 配置Docker中的Hysteria容器实例
- 配置Hysteria服务器端参数
- 配置Hysteria客户端参数
设置域名解析
可以使用已有的域名,创建一个专门的二级域名,来负责游戏加速器。比如,我创建了m.icore.space这个二级域名,并将其解析云服务器。
开放防火墙UDP
在第一次尝试的过程中,不知道云服务器防火墙的443端口UDP协议还要手动开启。我再三检查,所有配置都正确,但是就是无法成功连接。反复思考后,我突然想起来,云服务器默认的防火墙,只开通了SSH、FTP、Web等几个常用的端口,而且好像都默认的是TCP,印象中从来没有具体配置过UDP的防火墙。
进入管理后台一看,果然如此。小手一点,打开所有防火墙的所有UDP端口,一下子就成功连接了。所以,需要首先打开防火墙的UDP端口。
一般网页的HTTPS也是使用443端口,但不是UDP,而是TCP。因此,不会跟Caddy和Nginx等造成端口占用情况。
Hysteria容器
容器镜像我用的官方推荐的tobyxdd的最新版。在宿主机的容器工程文件夹中创建了hysteria的文件夹,专门来挂载acme自动签发证书和配置参数,并在command中制定配置文件的路径。端口配置中,通过/udp明确指定了仅监听UDP协议,避免跟Caddy监听的TCP协议,抢占443端口。
官方说明文档中,还有一个network_mode的配置项。不清楚具体作用,实际测试下来,发现目前没有什么影响,就没加这一项。
hysteria:
image: tobyxdd/hysteria:v2.6.5
container_name: hysteria
restart: unless-stopped
ports:
- 443:443/udp
environment:
- TZ=Asia/Shanghai
volumes:
- ./configs/hysteria/acme:/acme
- ./configs/hysteria/hysteria.yaml:/etc/hysteria/hysteria.yaml
command: ["server", "-c", "/etc/hysteria/hysteria.yaml"]
容器参数配置好之后,还需要完成服务器端参考的配置。
服务器端参数
服务器端的参数,全部根据官网文档依葫芦画瓢,需要全部写入hystrial.yaml文件中。域名、邮箱、userpass中的用户名和密码文本,这几项需要根据实际情况修改。
listen: :443
acme:
domains:
- "m.icore.space"
email: "admin@icore.space"
ca: letsencrypt
auth:
type: userpass
userpass:
- me: yourpasswordtext
udp: true
speedTest: true
保存好服务器端参数后,启动容器。如果没有错误的话,容器实例中会自动完成域名证书的申请,并使用所设定的服务器端参数,启动Hysteria服务。
接下来,就可以在电脑或手机上,使用任意支持Hysteria的客户端,进行连接了。
客户端参数
大部分客户端,都有专门的参数配置窗口,无需手动创建额外的配置文件。创建一个新的方案,并在参数配置窗口中,填写客户端参数即可。
客户端参数中的name、server、password、sni等项,要根据实际情况进行修改。
mixed-port: 7890
allow-lan: true
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
proxies:
- name: "m.icore.space"
type: hysteria2
server: m.icore.space
port: 443
password: "me:yourpasswordtext"
sni: m.icore.space
alpn: ["h3"]
up: "20 Mbps"
down: "30 Mbps"
skip-cert-verify: false
fast-open: true
udp: true
proxy-groups:
- name: "Proxy"
type: select
proxies:
- "m.icore.space"
- "DIRECT"
rules:
- GEOIP,CN,DIRECT
- MATCH,Proxy
发表回复