Hysteria 2 经过了全新的设计,无论是性能还是安全性都有了显著的提升。经过小编的试用,效果非常明显,如丝滑般的体验,推荐进行升级。不过需要注意,Hysteria 2 与 Hysteria 1 完全不兼容。
下面小编就来说说 Hysteria 2 服务端在 Linux 上的具体安装方法,本机未安装过 Hysteria 1 的朋友可直接从步骤二开始。
1. 删除原 Hysteria 目录相关文件
对于已经安装有 Hysteria 1 的朋友。 首先,请使用以下命令停止运行 Hysteria:
sudo systemctl stop hysteria-server
然后删除原配置文件 config.json
以及 ACL
文件,如果有必要可以备份一下,待会在 Hysteria 2 配置文件中,有些配置项可以照抄(比如证书路径等)。
在 Linux 各发行版中,这个目录通常在 /etc/hysteria
。
2. 安装 Hysteria
使用以下命令进行安装,可从常见的 Linux 发行版上自动下载最新版本的 Hysteria 并同步配置 systemd 服务:
bash <(curl -fsSL https://get.hy2.sh/)
3. 配置说明及完整配置文件
安装完成后,就可以在 /etc/hysteria
目录中找到服务端默认配置文件 config.yaml
。注意,默认配置监听端口为 443,如果本机 443 端口已存在其它服务。请更换端口,比如 8443:
listen: :8443
默认配置文件直接使用的 ACME 作为证书配置,如果您已有 TLS 证书,可以直接把 ACME 配置修改如下(注意缩进):
tls:
cert: /path/to/your/fullchain.pem
key: /path/to/your/privkey.pem
注意,上面的路径需要替换为你的 TLS 证书路径,如果您在 Hysteria 1 中也使用了 TLS 证书,可以从备份文件中直接找到该路径直接替换。ACME 与 TLS 只能选择其一,不可并存。
QUIC配置:
quic:
initStreamReceiveWindow: 8388608
maxStreamReceiveWindow: 8388608
initConnReceiveWindow: 20971520
maxConnReceiveWindow: 20971520
maxIdleTimeout: 30s
maxIncomingStreams: 1024
disablePathMTUDiscovery: false
以上为默认配置的流和连接接收窗口大小分别为 8MB 和 20MB。除非你完全明白自己在做什么,否则不建议修改这些值。
如果一定要改,建议保持流接收窗口与连接接收窗口的比例为 2:5。
更多配置详情,请参考这里 。
下面给出通用的完整配置文件:
listen: :8443
tls:
cert: /path/to/your/fullchain.pem
key: /path/to/your/privkey.pem
quic:
initStreamReceiveWindow: 8388608
maxStreamReceiveWindow: 8388608
initConnReceiveWindow: 20971520
maxConnReceiveWindow: 20971520
maxIdleTimeout: 30s
maxIncomingStreams: 1024
disablePathMTUDiscovery: false
bandwidth:
up: 50 mbps
down: 20 mbps
ignoreClientBandwidth: false
disableUDP: false
udpIdleTimeout: 60s
auth:
type: password
password: yourpassword
acl:
file: /etc/hysteria/server.acl
resolver:
type: tls
udp:
addr: 8.8.4.4:53
timeout: 4s
tls:
addr: 1.1.1.1:853
timeout: 10s
sni: cloudflare-dns.com
insecure: false
outbounds:
- name: v4_only
type: direct
direct:
mode: 4
- name: v6_only
type: direct
direct:
mode: 6
- name: my_proxy
type: socks5
socks5:
addr: myproxy.com:1080
ACL 规格例子:
下面的 ACL 规则配置了针对 CN
的出站拒绝,针对 ai.com
的出站拒绝,针对 google.com
走 IPV6(本机需支持 IPV6 网络) 出站以及针对 openai.com
的出口走 my_proxy
代理(代理地址及端口请根据实际情况填写)
reject(geoip:cn)
reject(*.ai.com)
v6_only(*.google.com)
v6_only(*.instagram.com)
my_proxy(*.openai.com)
direct(all)
可根据您的具体使用场景进行配置,更多配置项请参考这里 。
另外,如果客户端支持,可配置端口跳跃 。服务端请执行以下命令进行端口转发:
iptables -t nat -A PREROUTING -i enp0s3 -p udp --dport 20000:50000 -j DNAT --to-destination :8443
支持 IPV6 的机器可再执行:
ip6tables -t nat -A PREROUTING -i enp0s3 -p udp --dport 20000:50000 -j DNAT --to-destination :8443
同时,请确保 20000 - 50000 范围端口(UDP协议)没有被本机防火墙阻拦。这样,客户端所有发往 20000 - 50000 端口(需在客户端配置端口跳跃范围,或者指定范围内的端口)的请求将被转发到 8443 端口,可以规避针ISP对固定端口的限速。注意, -i
后的网络设备需根据您机器实际名称进行填写。
可通过执行以下命令查看:
ifconfig
4. 运行 Hysteria 2
sudo systemctl start hysteria-server