Wireguardに特定のポートを無視させる方法

Wireguardに特定のポートを無視させる方法

私のルーターは、ファイルサーバーを実行しているコンピュータにポート80を転送するように設定されていますcaddy。 LANはファイルサーバーを正常にカリングできますが、WANでカールするとタイムアウトが発生します。実行中のマシンは外部VPNへの接続を介してもcaddy実行されます。接続を閉じると、WANはファイルサーバーをカリングできます。wireguardNetworkManagerwireguard

この回答AllowedIps=0.0.0.0,::0/0外部VPNを介してすべてのトラフィックをルーティングするとします。すべてをルーティングするためにWireguardをどのように設定しますか?しかし、VPN経由のポート80および443トラフィック?

ベストアンサー1

Wireguardはデフォルトのルーティングテーブルに加えて別のルーティングテーブルを使用するため、これを使用してip rule特定の種類のトラフィックを除外できます。 Wireguardは、トラフィックがローカルにリダイレクトされた後にプライマリサイトに入る前にトラフィックを一致させるルールを追加します。

これにより、Wireguardルールの前にルールを追加してトラフィックをリダイレクトできます。~からポート80と443(サーバーからの応答)をプライマリテーブルに接続します。次のように簡単にする必要があります。

ip rule add sport 80 table main
ip rule add sport 443 table main

次のコマンドを使用して、ルールがwireguardルールの前に配置されていることを確認できます。

ip rule

ただし、これを永久に作成するには、設定ファイルにPostUpジョブを追加する必要があります。

PostUp=ip rule add sport 80 table main && ip rule add sport 443 table main
PreDown=ip rule del sport 80 table main && ip rule del sport 443 table main

NetworkManagerのみを使用している場合は、dispatcher.dを使用して、ネットワークが接続されているか切断されたときに実行されるスクリプトを配置できます。

#!/bin/bash
echo 'ip rule del sport 80 table custom
ip rule del sport 443 table custom
ip rule add sport 80 table custom
ip rule add sport 443 table custom' > /etc/NetworkManager/dispatcher.d/02-wg_exceptions.sh
chmod +x /etc/NetworkManager/dispatcher.d/02-wg_exceptions.sh

おすすめ記事