Oat_Milky

Oat_Milky

mastodon
telegram

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

現在、主に使用されている VPN は 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: [email protected]
  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: [email protected]
  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 トークンを取得します。

image-20240731102319795

出力ルール#

hysteria2 は direct、socks5、http の 3 種類の出力タイプをサポートしています。

image-20240731103002393

通常、設定は必要ありませんが、サーバーの 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

小結#

これは私が初めて書くこのようなブログで、関連するチュートリアルもすでに豊富ですので、この記事は単に私が使用している機能を記録して共有するものであり、まだ多くの機能が設定可能です。将来的には、バージョンの更新や個人の使用経験に応じてこの記事を更新していく予定です。

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