2020 年 3 月に、Wireguard プロトコルが Linux カーネルに正式に追加されました。それ以来、それはバックポートされ、ほぼすべてのプラットフォームで実行できるようにツールが構築されました。ワイヤーガードVPNサーバー プロトコルはディストリビューション間で同じであるため、次のセットアップ手順はどの Linux マシンでも同じです。
Windows および Docker での WireGuard セットアップについては、それぞれのガイドを確認してください。Windows 上の Wireguard サーバーそしてDocker 上の WireGuard サーバー。
に記載されているように、ワイヤーガード紹介記事、Wireguard の最も優れた機能の 1 つVPN始めるのがいかに簡単かということです。 SSH キー ペアの生成と同様のパターンに従います。
この Wireguard セットアップ ガイドでは、サーバー構成ファイルとクライアント構成ファイルの作成について説明します。それぞれにいくつかのコンポーネントが含まれており、相互に補完的です。 Wireguard サーバーに接続するデバイスごとに新しいクライアント構成ファイルを作成する必要があります。
目次
- ワイヤーガードの概要
- ワイヤーガードの取り付け
- ワイヤーガードの前提条件
- Ubuntu でのワイヤーガードのセットアップ
- サーバーキーの生成と構成
- ワイヤーガードキーのセキュリティの準備
- 秘密鍵の生成: ロック
- 公開鍵の生成: 鍵
- サーバー構成ファイル
- Wireguard サーバーの起動
- Wireguard サーバーを「起動」します
- システム起動時にWireguardを有効にする
- サーバーステータス
- ポート転送とファイアウォール
- ファイアウォール
- Wireguard サーバーを「起動」します
- Wireguard サーバーにクライアントを追加する方法
- クライアント構成ファイルの作成
- 安全なキーの準備
- クライアントキーの生成
- キーを生成する
- すべてをクライアント構成ファイルに追加する
- サーバー構成にクライアントを追加する
- クライアント構成ファイルの作成
- ネットワーク内でのトラフィックの中継
- 中継/IP転送とは何ですか?
- IP転送を追加する
- IP 転送を永続的に適用する
- ホーム ネットワーク上の非 Wireguard デバイスにアクセスする
- ホームネットワーク外のインターネットにアクセスする
- ネットワーク アドレス変換 (NAT) とは何ですか?
- Wireguard サーバーで NAT を有効にする
- クライアントのインターネット アクセスを許可する
- その他の便利な Wireguard コマンド
- Wireguard サーバーを停止する
- Wireguard サーバー/クライアントのステータスを表示
- よくある質問
- カスタムDNSを使用できますか? Pi-Hole を使用するのが好きですか?
- Wireguard を IPv6 でセットアップできますか?
- Wireguard VPN サーバー経由でクライアント X からクライアント Y に接続できないのはなぜですか?
- Wireguard クライアント デバイスをさらに追加するにはどうすればよいですか?
- これは大変な作業のように思えます。自動化できるでしょうか?
- (Windows、Linux、Mac、iOS、Android など) でクライアントをセットアップするにはどうすればよいですか?
- 結論
ワイヤーガードの概要
Wireguard プロトコルに詳しくない人のために説明すると、これには、一種の「ロック」および「キー」メカニズムで使用される秘密キー (ランダム化された文字) と公開キー (秘密キーから派生したさらにランダム化された文字) の作成が含まれます。ここでの違いは、これらのキーを作成することです。両方サーバーと各クライアントで認証が双方向で行われ、トンネルが作成されます。
ワイヤーガード トンネルはさまざまな方法で役立ちます。たとえば、トンネルを使用して DNS トラフィック (Web サイトの検索) を Pi ホールにルーティングしたり、どこからでもホーム サーバーにアクセスしたり、すべてのインターネット トラフィックを Wireguard サーバー経由で通過させたりすることができ、すべてを安全に行うことができます。 [読む: 完全な Pi Hole セットアップ ガイド: 15 分で広告なしのより良いインターネットを実現】
これはまさに私が Pi-hole と並行して Wireguard VPN サーバーをセットアップし、世界中のどこにいても、どのデバイスからでも安全に Web を閲覧できるようにする方法です。
この記事では、ハブのように機能するプライマリ マシンを指すために「サーバー」という単語を使用し、それに接続するデバイス (電話、ラップトップ、デスクトップなど) を指すために「クライアント」という単語を使用します。
なりなさい200,000 分の 1。私たちの活動を維持するためにご協力ください。
25 / 150 2024 年 12 月 31 日までに
参加しませんか (月額わずか 1.67 ドルから)
なぜメンバーシップを始めたのか?
ワイヤーガードの取り付け
Ubuntu 20.04 は一般的に使用されているサーバーなので、Ubuntu 20.04 にインストールする手順を説明します。を見てください。ワイヤーガードのウェブサイトWireguard ツールをマシンにインストールするための具体的な手順については、こちらをご覧ください。
ワイヤーガードの取り付けは簡単です。構成はより時間のかかるステップです。まずは基本から始めましょう。
ワイヤーガードの前提条件
- root 権限を持つほぼすべての Linux ディストリビューション
- Linux コマンドラインに精通していること
- パブリック IP アドレス (インターネットに公開) またはサーバーを指すドメイン名
Ubuntu でのワイヤーガードのセットアップ
ここでは Ubuntu サーバーを使用しているため、インストールはすぐに完了します。
sudo apt アップデート && sudo apt インストール ワイヤーガード
Wireguard 暗号化 (暗号化) に関連する多数のライブラリが、メイン ユーティリティとともにインストールされます。それでおしまい。設定してサーバーを起動しましょう。
サーバーキーの生成と構成
Wireguard に含まれるユーティリティ セットを使用すると、公開キーと秘密キーのペアをすばやく作成できます。これらは、サーバーへの受信トラフィックを認証するために使用されます。考えられるのは、秘密鍵ドアの鍵のようなものですが、公開鍵ロックを解除するために使用される物理キーのようなものです。サーバーの秘密キーは次のとおりです。一度もない共有される。公開キーは、クライアントがサーバーに接続できるようにクライアントに提供するものです。
この両方のキーですが、特に秘密キーは安全に保管する必要があります。 Facebook Messenger などの安全でないプロトコルを介してこれらを友人や他の人に送信しないでください。
ワイヤーガードキーのセキュリティの準備
すべてを安全に保つために、次の一連のコマンドを実行する間、root アカウントに変更してください。
sudo -icd /etc/wireguardumask 077
コマンドを使用しますumaskこれから作成するファイルのアクセス許可を設定します。 umask は減算的です。削除します権限。上記のコマンドでは、「グループ」ユーザーと「その他」ユーザーからすべての権限 (7 で示されている) を削除しています。
権限マスクは現在のセッションの間のみ有効であることに注意してください。したがって、ログアウトして再度ログインするときは、コマンドを再度使用して、新しく作成された資格情報に同じ制限されたアクセス許可があることを確認する必要があります。
秘密鍵の生成: ロック
まず秘密キーを生成します。これらのコマンド セットは常に次で始まります。WG、これは、使用する最初の Wireguard ツールのセットです。覚えておいてください、この最初の操作はサーバーの「ロック」を作成するようなものです。
wg genkey > サーバー.キー
デフォルトでは、上記のコマンドは結果を画面に出力します。しかし、私たちが使用しているので、>修飾子を使用すると、結果がファイルにプッシュされます (ファイルが存在しない場合は最初にファイルを作成します)。この修飾子を既存のファイル、 そうなる上書きされた!
上記のコマンドを使用して、秘密キーを生成し、それを という名前の新しいファイルにプッシュしました。サーバ。鍵。
公開鍵の生成: 鍵
次に、同様のコマンドを使用しますが、今回は派生する秘密鍵から公開鍵を取得します。これにより、プライベート「ロック」と一致するパブリック「キー」が得られます。
wg pubkey < サーバー.キー > サーバー.pub
上記と似ていますが、今回は逆を使用します。<最初に秘密鍵の内容を読み取るために署名してくださいの中への公開鍵関数。その結果は (上記と同様に) という新しいファイルにプッシュされます。サーバー.パブ。この公開キーは、クライアントが Wireguard サーバーにアクセスするために必要なコンポーネントの 1 つです。
これら 2 つのコンポーネントを使用して、サーバーを起動できるようにする Wireguard 構成ファイルを作成できるようになりました。
サーバー構成ファイル
という名前の設定ファイルを作成します。wg0.confデフォルトの Wireguard ディレクトリ (/etc/ワイヤーガード)。このファイルは後で Wireguard によって読み取られ、仮想インターフェース。
仮想インターフェイスがどのように機能するかについて詳しく知る必要はありませんが、仮想インターフェイスを錠と鍵を保持するドアのようなものだと考えてください。デジタル イーサネット/WiFi アダプターを追加しています。ただし、そこを通過するデータは自動的に暗号化され、他の Wireguard デバイスに送信されます。
nano /etc/wireguard/wg0.conf
ファイルの先頭に次の行を追加します。
[インターフェイス]アドレス = 10.254.0.1/24ListenPort = 49312SaveConfig = True
ファイルを保存して閉じます。ここでは、ローカルの IP セットで実行されるようにデジタル wg0 インターフェイスを設定しています。これは厳密には必須ではありませんが、後で IP アドレスの競合や重複が発生しないようにマシンを整理するのに役立ちます。プライベート IP 範囲 (192.168.0.0/16、10.0.0.0/8、172.16.0.0/12) 内の任意の IP セットを選択できることに注意してください。
を添付しました。/24IP アドレスの末尾に CIDR 表記を追加して、アドレス範囲を使用できることを示します。たとえば、このシナリオの /24 は、10.254.0.1 から 10.254.0.254 までのすべてのアドレスを表します。これにより、253 のクライアントを持つ可能性が得られます。
リスニングポートは任意です。 1024 (ウェルノウン/システム ポート) を超える限り、任意のポートを選択します。49152 ~ 65535 の間が推奨されます (プライベート/一時ポート)。
最後に、秘密キー (上記の参照では「ロック」) を構成に追加します。を使用してファイルを画面に出力できます。猫コマンドを実行し、それをコピーし、再度ファイルを開いて貼り付けます。または、同じことを 1 つのステップで実行するには、エコー指示:
echo "PrivateKey = $(cat server.key)" >> /etc/wireguard/wg0.conf
使い方に注目してください$(猫 ...)。この表記は、コマンドの残りの部分の前に括弧内のコマンドを実行することを意味します。次に私たちが使用しているのは、エコー出力を画面に印刷します。ただし、画面上に表示する代わりに、>>に追加する(または最後に追加して) Wireguard 構成ファイルに出力します。これが単一のものを使用する場合とどのように異なるかに注意してください。>ファイル全体が上書きされてしまいます。
以上です!構成ファイルをすぐに再検討する必要がありますが、Wireguard サーバーを開始するために必要なのはこれだけです。
完成した設定ファイルは次のようになります (ただし、私のものは単なる例であるため、キーは異なります)。
[インターフェイス]アドレス = 10.254.0.1/24ListenPort = 49312SaveConfig = TruePrivateKey = YIHEAqPWDJh2DsCrsDltwtRsBuxm7lEjwF8UOEcvxkM=
現時点では、次のいずれかを使用して root アカウントからログアウトできます。コマンド + Dまたは次のように入力します。
出口
Wireguard シリーズの他の投稿:
- 15 分でわかる Wireguard VPN の紹介: 驚くべき新しい VPN プロトコル
- Wireguard セットアップを 20 分で完了 – より優れた Linux VPN サーバー
- Wireguard Windows セットアップ: Windows 用の強力な VPN
- Wireguard Mac OS クライアント セットアップ – 洗練された新しい VPN
- Wireguard Android クライアントのセットアップ – シンプルで安全な VPN
- Ultimate WireGuard Docker Compose: CF および Traefik サポート付き
Wireguard サーバーの起動
Wireguard には、ほとんどの内部ネットワーク構成を処理する優れたツールが付属しています。このツールは新しいデジタル Wireguard インターフェイスを作成し、基本的な構成を設定します。システム サービスとしてバックグラウンドで実行され続けます。インターフェイスの名前は、作成したばかりの構成ファイルの名前と一致します。
Wireguard サーバーを「起動」します
sudo wg-クイックアップ wg0
のwg-クイックユーティリティは、wg0.confファイル。
これにより、次のようなサンプル出力が得られます。
[#] ip link add wg0 type Wireguard[#] wg setconf wg0 /dev/fd/63[#] ip -4 address add 10.254.0.1/24 dev wg0[#] ip link set mtu 1420 up dev wg0
システム起動時にWireguardを有効にする
システム起動時に Wireguard サービスが確実に開始されるようにするには、次のコマンドを使用してサービスを有効にします。
sudo systemctl を有効にする wg-quick@wg0
Systemctl はの一部ですシステムド。 Systemd は、バックグラウンドで継続的に実行されるサービスと特殊な種類のプログラムを制御します。
Wireguard サーバーが実行中です。
サーバーステータス
次のコマンドでステータスを確認できます。
sudo wg ショー
わかりました!実行中であることがわかり、また、ネット統計指示。
ポート転送とファイアウォール
ルーター (WiFi ルーターや ISP 提供のユニットなど) の背後にいる場合は、クライアントが実際に外部接続をリッスンしているサーバーに到達できるように、上記で使用したポート (ポート 49312 または使用したポート) を転送する必要があります。これがないと、デバイスからのリクエストはルーターでブロックされ、サーバーに転送されることはありません。 [読む: ルーターでポート転送を設定するにはどうすればよいですか?】
ファイアウォール
上記と同様に、受信接続が Wireguard サーバーに到達することを確認する必要があります。そのためには、ファイアウォールでポートを開く必要があります (有効な場合)。人気のあるものを使用している場合は、UFW、次のコマンドを発行するだけです。
sudo ufw 許可 49312/udp
これでサーバーが実行され、ネットワークの外部からアクセスできるようになりました。しかし、クライアントのないサーバーに何の意味があるでしょうか?クライアント構成ファイルを作成し、サーバーに接続できるようにしましょう。
読み込み中...
Wireguard サーバーにクライアントを追加する方法
Wireguard は非常に単純なサーバーですが、次の点に注意してください。ではないDHCP サーバーと同様に IP アドレスを自動的に割り当てます。 Wireguard を使用したい各クライアントに IP アドレスを手動で割り当てる必要があります。これはクライアント構成ファイルを使用して行われます。
クライアント構成ファイルの作成
クライアント認証情報のセットを作成することで、サーバーに対して行ったのと同じように、デバイス (電話やコンピューターなど) に独自の「ロック」と「キー」のセットを与えます。これらの秘密キーと公開キーは、サーバーでの認証に使用されます。私たちのサーバーには 1 つの「ロック」があり、クライアントにはそれに対する「キー」があります。クライアントには独自の個別の「ロック」もあり、サーバーには特定の「キー」が与えられます。
これは、必要なトラフィックのみが Wireguard サーバーへの接続と通過を許可されるようにするためです。クライアントをいくつでも追加できるだけでなく、それぞれに新しい認証情報のセットを作成することもできます。
さまざまなクライアントのセットアップと構成に関するより包括的なビュー (アンドロイド、 ウィンドウズ、マックOS、など)は、専用の記事として近日公開予定です。すぐにもう一度チェックしてください。
安全なキーの準備
以前と同様に、すべてを安全に保ちながら、よりアクセスしやすくします。ユーザーとして、資格情報を保持するディレクトリをホーム フォルダーに作成しましょう。
cd ~umask 077mkdir ワイヤーガード && cd ワイヤーガード mkdir ピア 1 && cd ピア 1
というディレクトリも作成したことに注意してください。ピア1。好きなように呼んでください。私は通常、「kris-phone」などの識別可能な名前を使用し、デバイスごとに新しいディレクトリを作成します。
クライアントキーの生成
サーバーの場合と同様に、クライアント デバイスの秘密キーと公開キーに加えて、セキュリティを強化するために事前共有キー (PSK) と呼ばれる別の一意のキーを作成します。これら 3 つのキーを使用してクライアントを作成できます。
キーを生成する
wg genkey >peer1.keywg pubkeypeer1.pubwg genpsk >peer1.psk
このセクションまで飛ばしてここで何をしているのか理解できない場合は、サーバー キーの作成に戻ってさらに詳しい説明を参照してください。ここでの唯一の新しい部分は追加です事前共有キー (PSK)。 PSK はオプションですが、重要なセキュリティを追加し、追加は非常に簡単です。これまで「ロック」と「キー」のテーマを追ってきた場合、この PSK は、公開されている「キー」を継続的に変更して、その「形状」を隠すことに似ています。クライアントとサーバーの両方に、この最終 PSK 要素のコピーが必要です。
すべてをクライアント構成ファイルに追加する
多くのクライアントはこのファイルから直接読み取ることができるため、以前と同じ形式でサーバー構成ファイルに設定します。
nano ピア 1.conf
以下を貼り付けます。
[インターフェース]アドレス = 10.254.0.2/32
保存して閉じます。 IP アドレスがどのように変化したかに注目してください。Wireguard サーバーの IP (この Wireguard チュートリアルでは 10.254.0.1) よりも大きくして、次の値を使用しました。/32単一のアドレスのみを割り当てます。基本的には、接続するクライアントの IP アドレスを定義します。
今後設定する追加クライアントごとに、最後の数値 (オクテット) を 1 ずつ増やす必要があります。
以前と同じ埋め込みコマンドのセットを使用して、秘密キーを最後に追加しましょう。
echo "PrivateKey = $(catpeer1.key)" >>peer1.conf
ファイルのこの上部は、クライアント/デバイス上でインターフェイス (トラフィックが通過するための仮想 WiFi アダプターなど) をセットアップするのに役立ちます。次に、デバイスが接続先を認識できるように、サーバー接続の詳細をクライアント構成に追加する必要があります。 「ピア」として追加されます。前と同じ「エコー」トリックを使用して、以下を実行します。
echo "[ピア]" >>peer1.confecho "エンドポイント = 123.456.789.111:49312" >>peer1.confecho "AllowedIPs = 10.254.0.0/24" >>peer1.confecho "PublicKey = $(sudo cat /etc/wireguard /server.pub)" >>peer1.confecho "PresharedKey = $(catpeer1.psk)" >>peer1.conf
終点は、デバイスを接続するサーバーのパブリック IP アドレスです。交換してください123.456.789.111IP アドレスとサーバーのパブリック IPまたはサーバーのドメイン名。
の許可されたIPこの設定により、ネットワーク内のどの IP にアクセスできるかを制御できます。現時点では、Wireguard サーバーへの接続のみに焦点を当てるので、これはそのままにしておきます。
次に、弊社サーバーの公開鍵(クライアントではありません)。これにより、クライアントにサーバーの「ロック」への「キー」が与えられます。
最後に、追加のセキュリティを追加します。事前共有鍵。これは「鍵」を解読できないようにするための「クローキング」メカニズムです。
サーバー構成にクライアントを追加する
クライアントがサーバーを見つける方法を知ったので、サーバーはクライアントが接続を許可されていることを知る必要があります。クライアントをサーバー構成ファイルの末尾に「ピア」として追加する必要があります。上記と同じエコー トリックを使用して、スーパーユーザーとしてサーバー構成ファイルに詳細を追加してみましょう。
sudo -icd /etc/wireguardecho "[ピア]" >> wg0.confecho "AllowedIPs = 10.254.0.2/32" >> wg0.confecho "PublicKey = $(cat /home/user/wireguard/peer1/peer1.pub) " >> wg0.confecho "PresharedKey = $(cat /home/user/wireguard/peer1/peer1.psk)" >> wg0.conf
内のファイルパスを必ず変更してください。猫正しいファイルを読み取るためのコマンド。これで「キー」の交換が完了し、サーバーとクライアントの両方が通信できるようになります。
これで、サーバーへのクライアント アクセスの詳細 (公開キーと事前共有キーを使用) が与えられ、サーバーにはクライアントの資格情報の詳細も与えられました。
私たちのサーバー構成 (wg0.conf)次のようになります (キーが異なります)。
あとは、Wireguard サーバーを再起動して、構成ファイルへの変更を反映するだけです。これは、次の 2 つの方法のいずれかで実現できます。
wg-クイックダウン wg0wg-クイックアップ wg0
これにより、インターフェイスが停止して削除され、変更された構成でインターフェイスが再作成されます。 2 番目のオプションは、Wireguard サーバーへの進行中の接続を中断しない一種のソフト リセットです。
wg syncconf wg0 <(wg-クイック ストリップ wg0)
このコマンドは、変更された構成ファイルをサーバーと同期します。設定構文にエラーがある場合は、画面に表示されます。の出力をもう一度見ると、変化がわかります。WGショー。
もう一度、スーパーユーザーセッションを終了します。Ctrl + Dまたは入力して出口
この時点で、クライアント構成ファイルを使用してクライアント デバイス (電話、コンピュータなど) をセットアップすると、Wireguard サーバーに接続できるようになります。これにより、Wireguard サーバー上のサービスに接続できるようになります。例としては、DNS を Pi-hole に設定するか、ホスト サーバー上で通常は自宅でのみアクセスするプライベート Web サイトにアクセスすることが考えられます。
追加したいクライアントはすべて、サーバー設定ファイルの末尾に追加 (追加) するだけです。
ネットワーク内でのトラフィックの中継
ここからが難しい部分です。一般に、ネットワークは初心者にとって非常にわかりにくいものであることは承知しています。そのため、次のいくつかのセクションを理解できる概念に分解して説明できるよう最善を尽くします。ここまででサーバーとクライアントを作成しました。クライアントはサーバーに直接接続できます。同じ方法でさらに多くのクライアントを作成および追加できます。
中継/IP転送とは何ですか?
複数のクライアントがあり、あるクライアントから別のクライアントに接続したい場合は、追加の手順 (中継) が必要になります。例: あなたは友人の家でラップトップ (クライアント デバイス) を使用していますが、自宅のデスクトップ (クライアント デバイス) に接続したいと考えています。
- Wireguard VPN サーバーがコンピュータで実行されています。ラズベリーパイ、IP付き10.254.0.1。
- あなたのラップトップIPを使用してRaspberry PiのWireguardサーバーにクライアントとして接続されています10.254.0.2。
- のデスクトップ自宅では、IP を使用して Raspberry Pi の Wireguard サーバーにクライアントとして接続されています10.254.0.3。
ラップトップからデスクトップ (10.254.0.2 --> 10.254.0.3) に接続するには、Raspberry Pi で IP 転送を有効にする必要があります。これは、家から離れていて、安全に接続したい場合にも必要になります。スマートホームデバイスワイヤーガードを使用。
IP転送を追加する
IP 転送を有効にするには、システム ファイルの変更が必要です/etc/sysctl.confワイヤーガードサーバー上で。
ファイルを開き、次の行のコメントを解除します。net.ipv4.ip_forward=1、またはさらに簡単には、組み込みの「小さいエディタ」を使用することもできます。セドそれを行うコマンド:
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
基本的に、コメントアウトされた行をコメントなしの行に置き換え(先頭の # を削除)、IP 転送を有効にします。これは、構成ファイルを検索する時間を大幅に節約できる非常に優れたツールです。の-私フラグは、ファイルを「インプレース」で編集し、直接変更を加えたいことを意味します。
次の部分の構文は少し奇妙ですが、次のようになります。sは「置換」を表し、次のスラッシュ (/#net.ipv4.ip_forward=1/) が検索対象であり、次のスラッシュ (/net.ipv4.ip_forward=1/) とは何ですかセドと置き換えます。
最後に、どのファイルを処理するかを指定するだけです。これは、1000 倍便利なツールの簡単なデモンストレーションです。
IP 転送を永続的に適用する
設定を適用するには、次を使用する必要があります。
sudo sysctl -p
これにより、上記の設定が永続的なものになり、コマンドの出力に反映されるはずです。
この設定を有効にすると、ある Wireguard ピアから別の Wireguard ピアに (サーバー経由で) 接続できるようになります。
使用例:家の外から接続するUbuntu 上で動作する VNC サーバー、これも家の内外からクライアントとして同じワイヤーガード サーバーに接続されます。
ホーム ネットワーク上の非 Wireguard デバイスにアクセスする
ホーム ネットワーク内の他のデバイスにアクセスするには (必ずしも Wireguard サーバーに接続する必要はありません)、「AllowedIPs」をクライアント構成ファイル。たとえば、192.168.0.0 ネットワーク上の他のデバイスに接続したい場合は、次のようになります。
...AllowedIPs = 10.254.0.0/24、192.168.0.0/16...
使用例:家の外から Plex または Jellyfin サーバー (ワイヤーガード サーバーには接続されていない) に接続してメディアを視聴します。
ホームネットワーク外のインターネットにアクセスする
このガイドをさらに一歩進めて、クライアントをホーム ネットワーク内のローカル アドレス以上に接続したい場合があります。クライアントのすべてのインターネット トラフィックが Wireguard ルーターから送信されているように見せたい場合は、ルーティングする必要があります。クライアントのすべてのインターネット トラフィックピカピカの新しい Wireguard VPN サーバー経由で。これを実現するには、ワイヤーガード サーバー内のネットワークにいくつかの追加の変更を加える必要があります。これは、たとえば次のような場合に便利です。
- 海外旅行中ですが、インターネット トラフィックをホーム ネットワーク (またはVPS)
- 国の禁止を避ける (Netflix、HBO など)
- の Wireguard サーバーに接続することで、ISP からトラフィックを隠します。VPSまたはあなたの家
- 空港やコーヒーショップのWiFiからインターネットを安全に閲覧
これが私個人の Wireguard セットアップ方法です。Wireguard を実行する VPS と、適切な広告ブロックを使用してどこからでも安全に接続できる Pi-Hole です 🙂
これを行うには、まず IP 転送 (上記) を有効にし、次にネットワーク アドレス変換 (NAT) を有効にする必要があります。
ネットワーク アドレス変換 (NAT) とは何ですか?
この部分は非常に複雑で、ネットワーク、特にネットワークを理解していないと説明するのが簡単ではありません。iptables。私は個人的にこれに何年も苦労しました。ネットワーク アドレス変換 (NAT) により、デバイスはより広範なインターネットと対話できるようになります。実際、ホームルーターはすでにパブリック IP アドレスを使用して NAT を使用しています。リクエストがインターネットに送信されると、郵便で手紙を送るときと同じように、パブリック IP が「返信アドレス」として使用されます。
例えば:あなたはコンピュータを使用しており、Web サイトのアドレスを入力します。のリクエストコンピュータをパケット。パケットはホーム ネットワークを経由して、ラップトップの内部 IP アドレス (たとえば、192.168.1.10) が割り当てられたルーターに到達します。次にルーターが使用するのは、NATあなたの家を取り付けるためにパブリックIPアドレスあなたのウェブサイトのリクエストに。パケットがホーム ルーターから送信されるとき、「返信アドレス」はルーターのパブリック IP アドレスであり、内部 (192.168.1.10) アドレスではありません。
これらはすべて、Web サイトのリクエストが適切な場所 (インターネット上のランダムなコンピューターではなく、自宅のルーター) に返されるようにするために行われます。リクエストが Web サイトから返されると、ルーターがそれを翻訳します。戻る内部アドレス (192.168.1.10) に送信され、コンピュータに配信されます。
私たちの場合、Wireguard サーバーの NAT を有効にして、トラフィックがサーバーから出てより広範なインターネットに到達すること、またはその逆を許可することをサーバーが理解できるようにする必要があります。
これは、次のような多くの商用 VPN プロバイダーが提供するサービスにも似ています。NordVPN、サーフシャーク、StrongVPN、および VyprVPN。すべてのインターネット パケットはサーバーを経由してインターネット上にルーティングされ、クライアントに返されます。
Wireguard サーバーで NAT を有効にする
NAT を有効にするには、Wireguard サーバーの構成を変更します。 Wireguard を起動するときに新しい VPN インターフェイス用の NAT テーブルを作成し、無効にするときに破棄するように Wireguard に指示する行を追加します。編集しましょうサーバー構成ファイルを開き、「[Interface]」見出しの下、最初の「[Peer]」の前に以下を追加します。
[インターフェイス]...PostUp = iptables -I FORWARD 1 -i wg0 -j ACCEPT; iptables -t nat -I POSTROUTING 1 -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE[ピア]...
デバイスを介してトラフィックを渡していることに注意してください。」eth0"。サーバーは同じデバイスを使用している場合もあれば、使用していない場合もあります。どのデバイスがインターネットに接続しているかを確認するには、IPアドレスコマンドを使用するか、次の出力を使用します。
ip -o -4 ルート リストのデフォルト |カット -d" " -f5
結果が「」以外の場合eth0」の場合は、上記の構成ファイルで置き換える必要があります。
今回は私たちがしなければならない新しく追加されたコマンドを使用するには、Wireguard サーバーを再起動します。
wg-クイックダウン wg0wg-クイックアップ wg0
これで、サーバーはローカル デバイスからのトラフィックを渡し、インターネットに接続できるように設定されました。を通してワイヤーガードサーバー!
クライアントのインターネット アクセスを許可する
最後の部分は、クライアントの許可されたIP0.0.0.0/0まで。したがって、クライアント構成は次のようになります (キーとパブリック IP/ドメイン名を除く)。
[インターフェイス]アドレス = 10.254.0.2/32プライベートキー = cD+NoV94mw7SnjOU1VTHdH6GACie8mr/VDPXXY3oI1E=[ピア]エンドポイント = 123.456.789.111:49312AllowedIPs = 0.0.0.0/0PublicKey = U2oRFamuEDrOB8 eds1ETQWE3nUh7VYoGvDZV0HU8lm0=事前共有キー = GZ159PGs59WQOj5Z+SQszPz995TcERHmK3DknuQoqU=
これで、クライアントは Wireguard サーバー経由でインターネットを参照できるようになります。
その他の便利な Wireguard コマンド
Wireguard サーバーを停止する
Wireguard サーバーを停止するには、次のコマンドを使用します。
wg-クイックダウン wg0
Wireguard サーバー/クライアントのステータスを表示
WGショー
なりなさい200,000 分の 1。私たちの活動を維持するためにご協力ください。
25 / 150 2024 年 12 月 31 日までに
参加しませんか (月額わずか 1.67 ドルから)
なぜメンバーシップを始めたのか?
よくある質問
カスタムDNSを使用できますか?を使用するのと同じように、パイホール?
はい、次の内容を追加することで、クライアント[インターフェース]:
DNS = 10.254.0.1
必ず Pi-Hole サーバーのローカル IP アドレスに置き換えてください。
Wireguard を IPv6 でセットアップできますか?
はい。さらに 3 つの変更があります。
- IPv4 アドレスを追加した場合は、IPv6 アドレスを追加できます。
- 追加(コメント解除)する必要もあります。net.ipv6.conf.all.forwarding = 1あなたへsysctl.confファイル。
- NAT の場合、PostUp および PostDown の ip6tables にも同じルールを追加する必要があります。
Wireguard VPN サーバー経由でクライアント X からクライアント Y に接続できないのはなぜですか?
理由はいくつか考えられます。 IP転送が設定されていることを確認してください。特定のルーターの背後にいる場合は、クライアントが空の認証済みパケットを送信してサーバーに場所を知らせる「ハートビート」を維持する必要がある場合があります。これは、以下を追加することで実現できます。クライアント設定の[ピア]セクション:
永続キープアライブ = 25
これにより、25 秒ごとに「ping」が送信されます。
Wireguard クライアント デバイスをさらに追加するにはどうすればよいですか?
上記の「Wireguard サーバーにクライアントを追加する方法」と同じ手順を繰り返します。新しい秘密キー、公開キー、および事前共有クライアントキーを作成します。ただし、必ず別の IP アドレスを割り当ててください。たとえば、この記事に従っている場合は、10.254.0.3 を使用します。次に、新しいクライアントに関する同じ情報をサーバー構成に追加し、Wireguard を再起動します (または、wg 同期設定上記のようなコマンド)。
これは大変な作業のように思えます。自動化できるでしょうか?
確かに、これらの構成ファイルを迅速かつ簡単に作成するための単純なスクリプトが多数あります。一例は次のとおりです。私のGitHubリポジトリただし、これを書いている時点では、これはせいぜい例として使用されています。その他の自動化ツールは次のとおりです。
- https://github.com/Nyr/wireguard-install
- https://github.com/psyhomb/wireguard-tools
- https://github.com/ngoduykhanh/wireguard-ui
(Windows、Linux、Mac、iOS、Android など) でクライアントをセットアップするにはどうすればよいですか?
乞うご期待。包括的なクライアント記事を早急に掲載します。
結論
Wireguard VPN は現在 VPN の中で最大のものであり、すべての大手商用 VPN プロバイダーがこれに群がっています。良いニュースは、それが機能することです。速い、自分で簡単にセットアップできます。
このガイドは長く見えたかもしれませんが、何をしているのかを理解していれば、Wireguard のセットアップに 15 分もかからないはずです。
私は自分のもの (そして Pi-Hole に接続したもの) に非常に満足しています。 PiHole インスタンスをインターネットに公開したままにしておくと、控えめに言っても悪用や不正使用につながる可能性があります。 Wireguard を使用すると、PiHole と Wireguard を実行しているサーバーに安全に接続し、その内部 IP アドレスを PiHole DNS IP として使用できます。他の誰も私の PiHole インスタンスに接続したり、その IP アドレスを表示したりすることはできません。
私のデバイスもパートナーのデバイスもシームレスに動作します。セットアップ作業は比較的簡単でした。また、自分のハードウェア上で実行したままにし、データが保護されているという安心感は貴重です。
この Wireguard セットアップのハウツーは私が想像していたよりも長くなってしまいましたが、Wireguard VPN サーバーのセットアップを始めるのに役立つことを願っています。
関連記事:
- Wireguard Windows セットアップ [2021]: Windows 用の強力な VPN
- 15 分でわかる Wireguard VPN の紹介: 驚くべき新しい VPN プロトコル
- Wireguard Mac OS クライアント セットアップ [2021] - 洗練された新しい VPN
- Wireguard Android クライアント セットアップ [2022] - シンプルで…
- 究極の WireGuard Docker Compose: CF と…
- Wireguard AdBlocker: どこでも簡単に広告をブロックできます