Oat_Milky

Oat_Milky

mastodon
telegram

hysteria2プロトコルサーバーの設定ファイルの記録

目前翻墙の主力梯子には hysteria2 が使用されており、安定して 1 か月以上稼働しています。サーバーの設定ファイルも最初は動けば良いという段階から、徐々に要件に応じて改善されてきました。全体的に、vps 上で hysteria2 プロトコルをデプロイするのは比較的簡単です。一方、このプロトコルに関する YouTube 上の多くの紹介ビデオがありますし、公式ウェブサイトのドキュメントも設定ファイルの各部分の機能についての説明が比較的明確です。この記事では、私自身のいくつかのカスタム設定を記録してみたいと思います。

注 1:この記事は、個人的な設定ドキュメントに追加した内容と一部のチュートリアルを記録することを主な目的としています。詳細なチュートリアルについては、自分で検索するか、公式ウェブサイトの設定ドキュメントのアドレスを参照してください:https://v2.hysteria.network/zh/docs/advanced/Full-Server-Config/

注 2:記事作成時点での hysteria の最新バージョンは 2.5.0 です。

基本設定#

#リッスンポート、変更可能、デフォルトは443
listen: :443 

#セルフサイン証明書
tls:
  cert: /etc/hysteria/server.crt
  key: /etc/hysteria/server.key
  
#acme dnsで証明書を取得
acme:
  domains:
    - "*.example.com"
  email: your@email.address
  type: dns
  dns:
    name: cloudflare
    config:
      cloudflare_api_token: your token
      
#認証方法    
auth:
  type: password
  password: 123456 #認証パスワードを設定、パスワードの強度に注意
  
#偽装方法
masquerade:
  type: proxy
  proxy:
    url: https://bing.com #偽装先のURL
    rewriteHost: true

セルフサイン証明書または CA 証明書のいずれかをサーバーに使用することができますが、設定ファイルでは 1 つのみ使用できます。自分の状況に合わせて適切な方法を選択し、設定ファイルからもう一方を削除することで、基本的なサーバーの設定を完了させることができます。

セルフサイン方式#

以下のコマンドを使用してセルフサイン証明書を生成します。

openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout /etc/hysteria/server.key -out /etc/hysteria/server.crt -subj "/CN=bing.com" -days 36500 && sudo chown hysteria /etc/hysteria/server.key && sudo chown hysteria /etc/hysteria/server.crt

完全な設定ファイル

listen: :443 

tls:
  cert: /etc/hysteria/server.crt
  key: /etc/hysteria/server.key

auth:
  type: password
  password: fdsgfdgfrty63
  
masquerade:
  type: proxy
  proxy:
    url: https://bing.com
    rewriteHost: true

CA 証明書#

acme dns を使用して CA 証明書を取得することができますが、自分自身のドメインを持っている必要があります。個人的には cloudflare を選択しました。完全な設定は以下の通りです。

listen: :443

acme:
  domains:
    - "xxx.xxxxxxxx.xxx"
  email: xxxxxxxx@xxx.xxx
  type: dns
  dns:
    name: cloudflare
    config:
      cloudflare_api_token: hSxxxxxOlxxxxxxxn8U9-pxxxxxxw7

auth:
  type: password
  password: sldkjfdsnduhf

masquerade:
  type: proxy
  proxy:
    url: https://bing.com
    rewriteHost: true

cloudflare_api_token の取得方法:

  1. まず、個人の cloudflare アカウントにログインします。

  2. プロフィールページに移動します:https://dash.cloudflare.com/profile

  3. API トークンを作成し、DNS テンプレートの編集エリアを使用して API トークンを取得します。

アウトバウンドルール#

hysteria2 は、direct、socks5、http の 3 つのアウトバウンドタイプをサポートしています。

通常、設定する必要はありませんが、サーバーの IP が特定のウェブサイトに正常にアクセスできない場合は、warp の socks5 プロキシと hysteria2 の ACL 機能を組み合わせてアウトバウンドのトラフィックを分岐させることができます。

設定ファイルの一部は以下の内容を参考にしてください。

outbounds:
  - name: warp
    type: socks5
    socks5:
      addr: 127.0.0.1:40000

acl:
  inline:
   - warp(geosite:google)
   - direct(all)

まず、サーバーの 40000 ポートで warp の socks5 プロキシを開始し、次に outbounds で warp という名前のアウトバウンドルールを設定します。これにより、acl に- warp(xxxx)という形式で追加するだけでトラフィックを warp プロキシ経由でアウトバウンドさせることができます。- direct(all)は、残りのトラフィックを直接アウトバウンドさせるためのものです。

プロトコルスニッフ (Sniff)#

これは 2.5.0 バージョンで追加された最新の機能であり、以前のサーバーの設定でアウトバウンドルールが機能しない問題を解決します。公式の参考設定は以下の通りですが、ポートを変更してください。

sniff:
  enable: true 
  timeout: 2s 
  rewriteDomain: false 
  tcpPorts: 80,443,8000-9000 
  udpPorts: all

結論#

これは私が初めて書くこの種のブログであり、関連するチュートリアルも十分に提供されていますので、この記事は私が使用している機能を単に共有するためのものであり、設定できる機能はまだたくさんあります。将来的にはバージョンの更新や個人の使用経験に応じて、この記事を継続的に更新していく予定です。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。