iCore.Space

在人间打工的下凡文员

自建Hysteria游戏加速器

本文员平常玩的台服英雄联盟,花钱买的加速器,速度不理想,稳定性也不好。突发奇想,能不能自己建一个加速器,获得更快的速度和稳定性。没有想到,在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

Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注