WireGuard設定

ChuteはアウトバウンドプロキシプロトコルとしてWireGuardをサポートしています。WireGuardを[Proxy]セクションでインライン設定するか、名前付き[WireGuard]セクションを定義して参照することができます。

WireGuardセクション

[WireGuard]セクションは、WireGuardプロキシサーバーから名前で参照できる完全なWireGuardトンネル設定を定義します。

[WireGuard wg0]
private-key = base64_private_key
peer-public-key = base64_peer_public_key
self-ip = 10.0.0.2
self-ip-v6 = fd00::2
preshared-key = base64_preshared_key
server = example.com
port = 51820
wg-mtu = 1420
keepalive = 25

パラメータ

キー 必須 説明
private-key はい WireGuard秘密鍵、base64エンコード
peer-public-key はい ピア公開鍵、base64エンコード
self-ip いいえ WireGuardインターフェースのローカルIPv4アドレス(デフォルト: 10.0.0.2。WireGuardとAmneziaWGのどちらも同じ)
self-ip-v6 いいえ WireGuardインターフェースのローカルIPv6アドレス
preshared-key いいえ 耐量子性のための事前共有鍵
server はい* リモートサーバーアドレス(プロキシ行に指定がない場合に使用。プロキシ行が優先されます)
port はい* リモートサーバーポート(serverと同じ優先順位)
wg-mtu いいえ WireGuardインターフェースのMTU(デフォルト: 1420)。セクション内のmtuはwg-mtuとして読み込まれ、明示的なwg-mtuが優先されます
keepalive いいえ 永続的キープアライブ間隔(秒)。書かなければキープアライブは送信されません
allowed-ips いいえ ピアが運ぶ宛先。カンマ区切りのCIDRで指定します(例: allowed-ips = 10.0.0.0/8, 192.168.1.0/24)。範囲外のアドレスへの接続は拒否(TCP)または破棄(UDP)されます。指定なし、または0.0.0.0/0と::/0の両方を含む場合はすべての宛先を意味し、CIDRでないエントリは警告を出して無視されます
reserved いいえ WireGuardハンドシェイクヘッダーの予約バイト(例: reserved=0,1,2)。解析されますが、現在のエンジンでは適用されず、警告がログに出ます

* serverとportは、セクション内または参照元の[Proxy]行のいずれかに存在する必要があります。そうでない場合、ポリシーは不完全として拒否されます。

Surgeのpeer構文

セクションでは、Surgeと同じ書き方でピアを記述できます:

[WireGuard wg0]
private-key = base64_private_key
self-ip = 10.0.0.2
mtu = 1280
peer = (public-key = base64_peer_public_key, endpoint = example.com:51820, preshared-key = base64_preshared_key, keepalive = 25, client-id = 1/2/3, allowed-ips = "0.0.0.0/0, ::/0")
  • public-keyはpeer-public-keyに、endpoint(host:port、または[v6]:port)はserverとportに、client-id = a/b/cはreservedになり、preshared-keyとkeepaliveは名前がそのまま使われます。セクションに直接書いたキーは、peer内の同じ値より優先されます。現在のエンジンはreservedを解析しますが、適用はしません。
  • 使われるピアは1つだけです。2つ目はアドバイザリとして報告され、無視されます。
  • allowed-ipsはコンパイルされ、WireGuardのTCPとUDPで適用されます。対向ピアのCIDR外にある宛先は、そのピアから戻り経路を持たないため拒否または破棄されます。Surgeのセクションキーdns-server・prefer-ipv6は保持されますが効果はなく、無視されたオプションの通知に表示されます。
  • 設定を保存すると、セクションはpeer = (…)の行ではなく上記のキーで書き戻されます。

使用方法

プロキシサーバーからセクションを参照します:

[Proxy]
WG = wireguard, section-name=wg0

[Proxy Group]
WGGroup = select, WG

[Rule]
IP-CIDR,10.0.0.0/8,WGGroup
FINAL,DIRECT

異なるトンネルに対して複数の[WireGuard]セクションを定義できます:

[WireGuard us]
private-key = ...
peer-public-key = ...
self-ip = 10.0.1.2

[WireGuard eu]
private-key = ...
peer-public-key = ...
self-ip = 10.0.2.2

注意: WireGuardはユーザースペースのTCP/IPスタックを備えた独自のUDPトンネル上で動作します。名前(例: wg0)は大文字小文字が区別されます。

AmneziaWGセクション

Chuteはトラフィック難読化機能を備えたWireGuardの派生であるAmneziaWGもサポートしています。[AmneziaWG <name>]セクションは[WireGuard]セクションと同じキーに加えて、以下の難読化パラメータを受け付けます:

  • jc、jmin、jmax — ジャンクパケットの数とサイズ範囲。jcが0より大きい場合、jminとjmaxの両方を指定する必要があり、jmaxはjminより小さくてはいけません。そうでなければトンネルは拒否されます。
  • s1、s2、s3、s4 — init/response/cookie/transportパケットの先頭に付加するジャンク。s1〜s3は64バイトを超えられません(s4は32)。またs1 + 148はs2 + 92と異なっている必要があり、そうでなければトンネルは拒否されます。
  • h1、h2、h3、h4 — カスタムのメッセージタイプヘッダー値。それぞれ10進数か32ビット以内のstart-end範囲で、4より大きくなければなりません(1〜4はWireGuard自身のメッセージタイプです)。4つが重なるとトンネルは拒否されます。
  • i1、i2、i3、i4、i5 — 特殊なジャンクパケットの定義。解析できない定義があるとトンネルは拒否されます。

拒否されるパラメータの組み合わせは WireGuard: AmneziaWG parameters rejected: <理由> としてログに記録され、その後トンネルは Failed to create BoringTun tunnel で失敗します。

ポリシーはamneziawg(エイリアスawg)タイプでセクションを参照します:

[AmneziaWG awg0]
private-key = base64_private_key
peer-public-key = base64_peer_public_key
self-ip = 10.0.0.2
server = example.com
port = 51820
jc = 4
jmin = 40
jmax = 70
s1 = 15
s2 = 60
h1 = 123456
h2 = 67543
h3 = 32345
h4 = 123123

[Proxy]
AWG = amneziawg, section-name=awg0

相互検証ルール:

  • 通常の[WireGuard]セクションにAmneziaWGパラメータを記述するのは設定エラーです。代わりに[AmneziaWG]セクションを使用してください。
  • [AmneziaWG]セクションではreservedを使用できません。h4が置き換えるのと同じヘッダーバイトを書き込むため、この組み合わせはエラーとして拒否されます。
  • 難読化パラメータを1つも持たない[AmneziaWG]セクションにはアドバイザリが出ます。通常のWireGuardと同じ動作になります。
S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

本ページは英語版からの翻訳です。内容に相違がある場合は、英語版が優先されます。

results matching ""

    No results matching ""