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, April 25, 2024

相關文章:

翻譯: