この記事は、WireGuardの設定情報をすでにお持ちで、Shadowrocketで各項目を手動で確認したい方を対象としています。まず端末側のInterfaceと接続先のPeerを区別し、鍵、Endpoint、Allowed IPsを確認します。基本的な接続ができてから、状況に応じてMTUやPersistent Keepaliveを調整してください。本文中のアドレスとポートは形式の説明用であり、接続情報としては使用できません。
設定の基本:Interfaceは端末側、Peerは接続先
WireGuardの設定は通常、[Interface]と[Peer]の2つのセクションに分かれています。前者には端末で使うPrivate Key、トンネル内のAddress、場合によってはDNSやMTUが記載されます。後者には接続先の情報として、Public Key、Endpoint、Allowed IPs、必要に応じてPersistent Keepaliveが記載されます。Shadowrocketではテキスト設定と項目の並びが異なる場合がありますが、2つのセクションの鍵を取り違えないでください。
ShadowrocketのHome画面で右上の「+」をタップし、TypeからWireGuardを選んで、手元の設定情報に沿って各項目を入力します。設定一式がテキストで提供されている場合は、各行がどちらのセクションに属するかを確認してください。パラメータのスクリーンショットだけを頼りに、不明な値を推測して入力しないでください。表示方法によって項目の分類や名称が異なることがあるため、実際のアプリ画面に従ってください。
以下のテキストは各項目の区分を示す例です。記載された鍵は使用できる認証情報ではなく、example.comも接続先として使えるサービスアドレスではありません。実際に入力する際は、すでにお持ちの設定情報に記載された値を項目ごとに使用してください。
[Interface]
PrivateKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Address = 10.66.0.2/32
DNS = 10.66.0.1
[Peer]
PublicKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=
Endpoint = wg.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Interfaceを入力する:Private Key・Address・DNS
Private Keyは端末の秘密鍵です。手元の設定にあるPrivateKeyの行を省略せずにコピーしてください。PeerのPublicKeyやアカウントのパスワードとは異なります。コピーする際は、先頭や末尾の空白、改行、文字の抜けに注意してください。秘密鍵を公開の場で共有したり、トラブル報告のスクリーンショットに含めたりしないでください。設定に秘密鍵がない場合は、例の値に置き換えず、元の設定情報の提供元に確認してください。
Addressは端末に割り当てられるトンネル内アドレスで、通常はプレフィックス長と合わせて記載されています。例:10.66.0.2/32。ここでの/32はアドレス設定の一部であり、Endpointのポート番号ではありません。IPv6アドレスも記載されている場合は、元の設定の形式に沿って確認してください。サーバー側のアドレスを端末のAddressに入力しないでください。
編集画面を開く
Homeで右上の「+」をタップし、「Type」→「WireGuard」と進んで、端末側とPeer側の項目の入力場所を確認します。すでに登録済みの場合は、その項目の編集画面を開いて確認してください。
端末側の項目を確認する
[Interface]のPrivateKeyをPrivate Keyに、Addressを端末側のアドレス欄に入力します。設定に記載されたプレフィックス長もそのまま保持してください。接続先の項目を確認する
[Peer]のPublicKey、Endpoint、AllowedIPsをそれぞれ対応する欄に入力します。保存前に、鍵の種類と入力先が正しいことをもう一度確認してください。保存後に接続を確認する
Homeに戻り、保存した項目を選んで接続します。まず接続が確立するか確認し、その後で目的のアドレスにアクセスできるかテストしてください。鍵とEndpointを確認する前に、MTUを何度も変更しないでください。
DNSはトンネル使用時の名前解決先を指定するもので、端末のAddressとは異なります。設定にDNS = 10.66.0.1と記載されている場合は、まずそのアドレスが現在のサービス設定に含まれていることを確認し、ShadowrocketのDNS設定と一致しているか確認してください。接続先にはつながるものの、IPアドレスではアクセスできてドメイン名を解決できない場合は、DNSを重点的に確認します。この症状だけで鍵の誤りと判断することはできません。
Peerを入力する:Public Key・Endpoint・Keepalive
Public Keyは接続先の公開鍵で、手元の設定情報に記載されています。端末側のPrivate Keyとは正しい欄に分けて入力してください。文字列が一致しない場合、Endpointに到達できてもWireGuardのハンドシェイクは正常に完了しません。設定にPresharedKeyも記載されている場合は、画面上のPre-shared Key欄に元の値を入力してください。記載がなければ、独自に生成する必要はありません。
Endpointはホスト名またはIPアドレスとポート番号で構成されます。例:wg.example.com:51820。51820は形式を示すだけの例で、実際のポート番号はお手元の設定に従ってください。コピー時にコロンを抜かしたり、トンネル内のAddressのIPアドレスをEndpointとして入力したりしないでください。Endpointにドメイン名を使う場合は、接続前にその名前を解決できる必要があります。名前解決の失敗とポートへの到達不能は、別々に確認してください。
Keepaliveの設定:まず元の値を使い、通信状況に応じて調整
設定に値が記載されている場合
PersistentKeepaliveは設定に記載された値をそのまま入力します。たとえば、設定で25秒と指定されている場合はその値を使います。- 保存後、ネットワークの切り替え時や端末のスリープ解除後に、再接続が必要になるか確認します。
設定に値が記載されていない場合
- 画面の初期設定を維持し、例の数値を共通の必須設定として扱わないでください。
- 接続がアイドル状態になった後に復帰しにくい場合は、まずEndpointとネットワークを確認し、Keepaliveが必要かどうかを元の設定情報の提供元に確認してください。
Persistent Keepaliveは、一定間隔でパケットを送信して通信経路のマッピングを維持する機能です。誤ったPublic Key、ポート番号、Allowed IPsを修正するものではありません。
WireGuardは鍵で接続先を識別し、Endpointでデータの送信先を指定します。そのため、「項目を保存できた」ことは、接続先とのハンドシェイクが完了したことを意味しません。設定の保存、接続の確立、目的の通信へのアクセスを分けて確認し、すべての失敗を同じ設定項目の問題と決めつけないようにしましょう。
Allowed IPs:Peerに渡す宛先アドレスを指定
Allowed IPsはサブスクリプションのアドレスでも、サーバーへのアクセス許可リストでもありません。端末の設定では、どの宛先アドレスをPeerに渡すかを指定します。0.0.0.0/0はすべてのIPv4アドレスを、::/0はすべてのIPv6アドレスを対象にします。両方を指定すると、どちらのアドレスもそのPeerに送られます。設定に特定のネットワークだけが記載されている場合は、手間を省くために/0へ変更しないでください。
たとえば10.66.0.0/24は、該当するIPv4ネットワークだけを対象にします。このネットワークへのアクセスが目的で、その他のアドレスは従来どおり処理する場合、すべてのアドレスを対象とする設定とは範囲が異なります。一般にプレフィックス長が短いほど対象範囲は広くなり、/32はIPv4アドレス1つだけを指定します。端末のAddress = 10.66.0.2/32とPeerのAllowedIPs = 10.66.0.0/24は、数値が似ていても役割が異なるため区別してください。
Allowed IPsの指定範囲は2種類
特定のネットワークを指定
- 例:
10.66.0.0/24。 - この範囲に一致する宛先アドレスだけをPeerに渡します。元の設定で特定のネットワークへのアクセスが指定されている場合に使います。
すべてのアドレスを指定
- 例:
0.0.0.0/0, ::/0。 - IPv4とIPv6のすべての宛先アドレスが対象になります。元の設定でこの範囲が指定されていることを確認してください。
まず手元の設定をそのまま入力し、目的の宛先でテストしてください。特定のWebページが開かないという理由だけで、Allowed IPsの範囲を広げないでください。
WireGuardのAllowed IPsと、ShadowrocketのGlobal Routingは区別が必要です。前者は特定のPeerに渡すアドレス範囲を決め、後者はアプリが通信をどう処理するかを決めます。Proxy、Direct、Configなどのモードによってテスト結果が変わります。Directの場合、Webページにアクセスできるかどうかだけでは、新しく追加したWireGuardの設定がその通信に使われているか判断できません。Configを使う場合は、ルールの一致状況とポリシーの選択も確認してください。
MTUの設定:まず元の値を使い、状況を見て確認
MTUはトンネル内の1パケットの最大サイズを制限します。WireGuardのカプセル化には一部の通信容量が使われ、基盤ネットワークの経路上の制限も異なるため、すべての接続に適した共通の数値はありません。手元の設定にMTUが明記されている場合は、まずその値を入力してください。記載がない場合は、Shadowrocketの初期設定を維持し、接続が確立する前に推測した値へ変更しないでください。
ハンドシェイクや基本的なアクセスはできても、一部のページの読み込みが長時間続いたり、大きなデータの転送が中断したりする場合は、MTUを確認項目に加えます。ただし、同じ症状はDNS、接続先のサービス、ネットワークの変化が原因の場合もあります。まず鍵とEndpointを確認し、次にAllowed IPsとGlobal Routingを確認します。そのうえで、元の設定を記録してから、設定情報の提供元の案内に従ってMTUを調整し、同じネットワーク・同じ宛先で再テストしてください。
Wi‑Fiからモバイル通信に切り替えると、通信経路の条件が変わることがあります。あるネットワークで一度接続できても、すべてのネットワークで同じ設定が使えるとは限りません。Settings → On Demandはネットワーク条件に応じた接続動作に関する別の設定です。設定項目自体を確認する際は、ネットワーク環境を明確にしたうえで、同じWireGuard設定を手動で選んでテストしてください。自動接続の条件変化をMTUの問題と取り違えないようにしましょう。
接続後のトラブル対処:症状が起きる段階ごとに確認
トラブル対処では、まず編集中の項目が実際に選択されていることを確認します。問題が「接続を確立できない」「接続後に特定のネットワークへ到達できない」「ドメイン名の解決やコンテンツの読み込みに問題がある」のどの段階で起きるかを記録してください。症状によって確認すべき項目は異なります。設定を保存した直後に鍵、DNS、Allowed IPs、MTUを一度に変更すると、結果を比較できなくなります。
設定を保存しても接続できない場合
まずHomeで対象の項目が選択されていることを確認し、端末のPrivate Key、PeerのPublic Key、Endpointのホスト名とポート番号を一文字ずつ確認してください。保存できたことは、接続先とのハンドシェイクが完了したことを意味しません。最初にMTUを変更して試すのは避けてください。
トンネルは接続できるのに、特定のネットワークにアクセスできない場合
PeerのAllowed IPsに宛先アドレスが含まれているか確認してください。たとえば宛先が10.66.0.20なら、10.66.0.0/24でカバーできます。また、Global Routingや既存のルールによって、その通信に対象の設定が使われているかも確認してください。
IPアドレスにはアクセスできるのに、ドメイン名が開けない場合
元の設定に記載されたDNSの値が正しく入力されているか、現在の接続環境からDNSアドレスに到達できるかを確認してください。同じネットワークでIPアドレスとドメイン名をそれぞれテストし、一度のWebページのエラーだけでWireGuardの鍵が間違っていると判断しないでください。
ネットワークを切り替えると再接続が必要になる場合
新しいネットワークからEndpointの名前解決と接続ができることを確認し、手元の設定にPersistent Keepaliveの指定があるか確認してください。Settings → On Demandを有効にしている場合は、そのネットワーク条件が手動接続時のテストと一致しているかも確認してください。
一部のページだけ読み込みが遅い場合
問題が起きたネットワークと宛先を記録し、まずDNSとAllowed IPsの設定差を確認します。基本接続に問題がなく、大きなデータの転送時に症状が限られる場合は、手元の設定に基づいてMTUを確認してください。変更は一度に1項目にし、その都度再テストします。
WireGuard設定の鍵とアドレスは、すでにお持ちのサービス設定情報と一致している必要があります。ShadowrocketはAppleプラットフォーム向けの有料アプリです。iPhoneやiPadではApp Storeから入手でき、開発者情報はストアページで確認できます。システム要件はApp Storeのページに記載された内容をご確認ください。アプリの購入とWireGuardの接続情報は別のものです。アプリを購入しても、サービス提供元の接続パラメータは生成されません。
Shadowrocketの入手先と基本的な使い方を確認
まずApp Storeで開発者がShadow Launch Technology Limitedであることを確認し、すでにお持ちのWireGuard設定を使って各項目を入力してください。初回起動後の基本操作については、入門ガイドをご覧ください。
正規の入手先を確認する 使い方ガイドを見る