デフォルトのシステム ゲートウェイ経由で特定の IP アドレスをルーティングするにはどうすればよいですか?

デフォルトのシステム ゲートウェイ経由で特定の IP アドレスをルーティングするにはどうすればよいですか?

すべてのトラフィックを Wireguard VPN 経由で送信していますが、例外を設定する必要があります。自分のパブリック IP 宛てのパケットは、システムのデフォルト ゲートウェイを通過する必要があります。

カーネル ルートにこれを追加すると、意図したとおりに動作します。 route add X.X.X.X gw 192.168.1.254ただし、もちろん、ここではルーターのゲートウェイをハードコーディングしているため、他のネットワークに接続している場合は動作しません。この動作を一般化して、常にデフォルト ゲートウェイ経由で XXXX 宛てのパケットを送信するにはどうすればよいでしょうか。カーネル ルートを追加するよりも、iptables を使用する方がよいのではないでしょうか。

答え1

変数を使用できます:

defaultGW=$(/sbin/ip route | awk '/default/ { print $3 }')

それから:

route add X.X.X.X gw $defaultGW


おそらく、 を使い始めるべきでしょうip route。これは の現代的な代替手段ですroute

関連情報