このガイド を使用してVPNトンネルとして設定されたppp0インターフェイスがあります。ここで、特定のポート(80、443)のトラフィックをppp0インターフェイス経由でルーティングする必要があります。理想的には、VPNサーバーがダウンしている場合、すべてのHTTP(S)要求が失敗するはずです。
iptables
を使用することを提案する同様の問題に対する多くの答えがあるので、私はそれが進むべき道だと思いますが、この特定のシナリオに使用する適切なコマンドを見つけることができません。
ここでは、www
をルーティングのサービスとして使用します。 mangle
パケットを変更するには、iptableのwww
テーブルを使用します。
Sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0x1
宛先ポート80
を持つすべてのパケットを0x1
としてマークします。
iptables
を保存して再起動します。
service iptables save
service iptables restart
次に、エントリを与えるだけで、/etc/iproute2/rt_tables
に新しいIPルートテーブルを作成します。
100 wwwtable
www
パケットのルールを記述します。
ip rule add fwmark 0x1 lookup wwwtable
新しいテーブルwwwtable
にルートを追加します。他のすべてのトラフィックは、ip route show
コマンドで確認できるデフォルトゲートウェイを通過します。
メインテーブルからデフォルトゲートウェイエントリを除くすべてのエントリをコピーします。
Sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table wwwtable $ROUTE; done
www
パケットのデフォルトゲートウェイエントリをテーブルwwwtable
に追加します
Sudo ip route add default dev ppp0 table wwwtable
ip route show table wwwtable
を使用して、wwwtable
のすべてのルートを表示します。
ポート443
でhttps
についてすべてを繰り返します。