Hysteria科学上网简要

几乎每隔几年,墙都会进步一点,道高一尺魔高一丈。我的自建 xray 服务最近不是很稳定,测试显示丢包严重,从 mtr 结果看 101.95.209.65 这一跳丢包率高达 93%,也就是说服务器的外网 ip 基本快废了。

中东有以色列围困巴基斯坦,人道加沙是当今世界最大的露天监狱。岂知中国大陆算得上是互联网监狱,毫无疑问世界最大。巴基斯坦人打地道获取物资,中国大陆网民翻墙获取资讯。差不多,半斤八两。

改变不了外部环境,只能改变自己。

iOS 上的 Shadowrock 支持 Hysteria2 协议,翻了下官网,里面有 2 条特性吸引人。

    1. ⚡ 快如闪电

通过魔改的 QUIC 协议驱动,Hysteria 即使在最不稳定和容易丢包的网络环境中也能提供无与伦比的性能。

这不就是及时雨雪中炭吗?😊 宋公明替天行道...

    1. ✊ 抗封锁能力

协议旨在伪装成标准的 HTTP/3 流量,无论中间人还是主动探测,都很难分辨和封锁。

个人觉得防探测异常重要,对待敌人,日常反侦察,可最大限度减少损失!

本文使用最简单的部署方式,主打省心舒心。

服务端

安装或升级到最新版本:

1bash <(curl -fsSL https://get.hy2.sh/)

个人建议先看看,https://get.hy2.sh/ 脚本里面是什么,万一被种了木马(社会环境恶劣,看谁都像间谍 😅),小心驶得万年船。在下安装的时候看了,没发现问题。

  • 配置文件

直接看我的示例:

 1root@tokyo:~# cat /etc/hysteria/config.yaml
 2listen: :443
 3
 4tls:
 5  cert: /data/tls/certificates/acme-v02.api.letsencrypt.org-directory/stock.mephisto.cc/stock.mephisto.cc.crt
 6  key: /data/tls/certificates/acme-v02.api.letsencrypt.org-directory/stock.mephisto.cc/stock.mephisto.cc.key
 7
 8auth:
 9  type: password
10  password: set_your_passwd_at_here
11
12masquerade:
13  type: proxy
14  proxy:
15    url: https://mephisto.cc
16    rewriteHost: true

证书,我直接用我网站 https://stock.mephisto.cc 的,caddy 自动申请的。

密码,大家都懂,无需多言。

伪装,我选伪装到本站 https://mephisto.cc

如果不懂配置,建议先看看官方文档。

上面 Linux 环境自动安装脚本,会帮你设定 systemd。如果你遇到证书读取错误,大概率是权限不对。

看下面的 User 和 Group 是 root,是因为我证书也是 root。读者看自己情况更改用户,能读到证书即可。

 1root@tokyo:~# cat /etc/systemd/system/hysteria-server.service
 2[Unit]
 3Description=Hysteria Server Service (config.yaml)
 4After=network.target
 5
 6[Service]
 7Type=simple
 8ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
 9WorkingDirectory=~
10User=root
11Group=root
12Environment=HYSTERIA_LOG_LEVEL=info
13CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
14AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW
15NoNewPrivileges=true
16
17[Install]
18WantedBy=multi-user.target

另外,hysteria 启动模式分为 server 和 client, 如果要在 Linux 客户端下运行,记得启动命令参数改为 client

启动后,你会发现 hysteria 监听在 udp 443 端口(如何让 caddy 不监听 udp 443 看后文)

1root@tokyo:~# ss -lnp | grep :443
2udp   UNCONN 0      0                                               *:443                    *:*    users:(("hysteria",pid=14103,fd=3))
3tcp   LISTEN 0      4096                                            *:443                    *:*    users:(("caddy",pid=14008,fd=7))

客户端

本人主要在 iPhone 和 iPad 上刷推特和油管。所以只要在 Shadowrock 上简单设置下就好。

如家下图所示:

shadowrock

不得不说比 xray 要简单点。

实测

经过我的实测,效果还是可以的,手机访问 Google 的服务,比 xray 快一点。不相信的读者,可以自己试试。

hysteria 和存量站点共存

还没有写这个教程的时候,本站就在 caddy 上运行了,新版 caddy 很早就支持 http3 ,也就是说默认会监听 udp 端口 443。

这样端口会冲突,如果你要二者共存,条件类似的话,可以考虑使用的解决方式。

就是在 Caddyfile 全局配置中,关掉 http3 支持(protocols 中少了 h3)。

起作用的的部分是 services 段(acme_dns 和 stoage 和本文无关)。

1{
2	acme_dns cloudflare your_cf_token
3	storage file_system /data/tls
4	servers :443 {
5		protocols h1 h2 h2c
6	}
7}

这样 caddy2 只监听在 tcp 443 端口,二者不冲突。

我的站点是静态的,挂在 cloudflare 中,http3 支持由其提供,不影响回源。

如果你不想这样,那也可以改 hysteria 服务端监听在 8443 或者其它端口,或者用其它的更为合理的方式处理。

目前,这样满足我的需求,不想折腾过多,坐牢坐久了也会心累的。

最后,ip 如果彻底不通了,就要开始长征,战略转移,不用到陕北,只需要换一个就好,和先帝的打游击差不多,打不过就跑 😅。

最后修改于: Thursday, October 26, 2023
欢迎关注微信公众号,留言交流。

相关文章:

翻译: