私は、外部の世界に接続された2つのネットワークインターフェース、つまりイーサネット(ADSLルーターなど)とpppを持つシステム(カーネル4.4)を持っています。どちらもNATを通過します。 (しかし、着信接続を受け入れる必要はなく、ipv6はありません。)イーサネット接続は失敗しやすいです。ローカルケーブルだけが問題になる可能性がありますが、ADSLルーター(オフなど)またはISP / ADSL回線も問題かもしれません。 。インターフェイスを具体的にpingしてそれを検出できます。この場合、ppp をシステムのデフォルトに設定して、アプリケーションが新しい接続を開くときにどのインターフェイスを使用するかを知ったり指定したりする必要はありません。 。 ethインターフェイスがいつ再びアクティブになるかを知るためには、常にpingを送信する必要があるため、単にethインターフェイスを終了したくありません。
路線情報は次のとおりです。
route -n
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.10.254 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 10.68.55.242 0.0.0.0 UG 700 0 0 ppp0
10.68.55.242 0.0.0.0 255.255.255.255 UH 700 0 0 ppp0
192.168.10.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
ip route
default via 192.168.10.254 dev eth0 proto static metric 100
default via 10.68.55.242 dev ppp0 proto static metric 700
10.68.55.242 dev ppp0 proto kernel scope link src 10.68.55.242 metric 700
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.125 metric 100
[I'm unsure about there being two 'default', or indeed why there are...]
ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:c6:7f:e5:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.125/24 brd 192.168.10.255 scope global dynamic eth0
valid_lft 75591sec preferred_lft 75591sec
3: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
link/ppp
inet 10.68.55.242/32 scope global ppp0
valid_lft forever preferred_lft forever
パスの1つを削除/再追加して、他のインターフェイスよりも高いまたは低いメトリックを提供することで、必要なものを得ることができると思います。しかし、これはスクリプトの構文解析が少し曲がっていることを意味します。
それでは、これを行うための「より柔軟な」方法があるかどうか疑問に思います。私はiptablesとルールに関する多くのページを読んでいますが、少し異なるシナリオでは、特定の(より単純な?)状況に原則を適用しようとしています。結局、もっと滑らかになるかどうかはわかりません。
ここでも検索しましたが、ルート指標を変更することが実際に最も簡単なアプローチであると思います。しかし、私が見ることができる他の迅速できれいな方法はありますか?オブジェクトを前後に押すための非常に簡単なコマンドを提供します。ありがとうございます。