Ubuntu 12.04 - Kubuntuは実際にはNetworkManagerを使用しているので、設定は同じでなければなりません。いくつかのVPN接続を設定しました。
長期にわたって実行されるアップロードまたはダウンロードがある場合、VPN接続が失われたときにすべてのネットワークトラフィックがすぐに無条件に停止されるようにするにはどうすればよいですか?
私が探しているのは、変更に関する通知を受け取る方法です(私はアンケートをしたくありません!)。残り(ネットフィルタルールの挿入など)は私が直接処理できます。確立された接続の変更に関する通知を受け取る方法を理解するだけです。
重要な場合、私が使用している設定はtun0
。
私が今まで試したこと:
- プライマリLAN接続(仮想マシン内にあるため、LAN接続のみ)を手動で設定します。
- VPNを自動的に設定
その後、VPNが有効になっているときにのみ通知を受け取るようにスクリプト/プログラムを起動したかったので、これが私がしたいパスではないと思いました。常にVPNを使用しているわけではありませんが、ほとんどの場合。
したがって、デフォルトでは、特定のVPN接続が確立されたらすぐにいくつかの通知を登録し、問題が発生した場合は、それに応答してデフォルト接続が自動的に切断されるように通知する必要があります。
答え1
NetworkManagerがこれを行うことができる必要があります。マニュアルページから:
ネットワークに関する情報は、D-Busインターフェースを介して関心のあるアプリケーションにエクスポートされ、ネットワーク設定と動作を確認および制御するための豊富なAPIを提供します。
NetworkManagerは、ネットワークイベントに応答して/etc/NetworkManager/dispatcher.dディレクトリにあるスクリプトをアルファベット順に実行します。
...
各スクリプトは2つのパラメータを受け取ります。 1つ目はアクティブにしたばかりのデバイスのインターフェイス名、2つ目はアクションです。
アクション:
...
vpn-up:VPN接続が有効になっています。環境には、CONNECTION_UUID変数に接続UUIDが含まれています。
vpn-down:VPN接続が無効になっています。
したがって、2つのパスがあるようです。 D-Busにバインドしてイベントを受信し、それに応じてアクションを取るか、または/etc/NetworkManager/dispatcher.d/
。