Ubuntu 11.04マシンがWiFiと3Gに同時に接続されている場合、アプリケーション(ブラウザーなど)が最初にWiFiを使用できるように優先順位を設定するにはどうすればよいですか?利用できない場合は、3Gを使用する必要があります。
基本的に、ネットワーク接続が使用される順序を設定したいと思います。
編集:私は、Ubuntu / Linuxの専門家ではなく、ただ快適な人に役立つ、より簡単なアプローチを探しています。
Ubuntu 11.04マシンがWiFiと3Gに同時に接続されている場合、アプリケーション(ブラウザーなど)が最初にWiFiを使用できるように優先順位を設定するにはどうすればよいですか?利用できない場合は、3Gを使用する必要があります。
基本的に、ネットワーク接続が使用される順序を設定したいと思います。
編集:私は、Ubuntu / Linuxの専門家ではなく、ただ快適な人に役立つ、より簡単なアプローチを探しています。
回答:
これを行うための最も簡単なコマンドについて誰も言及していないことに驚いていますifmetric
。を使用してインストールできますsudo apt-get install ifmetric
。このコマンドを使用して、任意のインターフェイスのメトリックを変更できます。低いメトリックのインターフェイスは、インターネットに適しています。
これを使用するには、まずroute
コマンドを使用してメトリックを確認します。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 10.42.0.2 0.0.0.0 UG 600 0 0 wlan0
ここでeth0
は、メトリックが低いため、に優先されwlan0
ます。を希望する場合はwlan0
、メトリックを下げます。
sudo ifmetric wlan0 50
これで、ルーティングテーブルは次のようになります。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 wlan0
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
これで、Linuxがwlan0
インターネットに使用されます。変更はすぐに反映されます。
crontab -e
追加し、最後に行を追加すること@reboot sudo ifmetric wlan0 50
です:。
メトリックの設定は、優先順位を変更する方法です。メトリックが高いほど、使用するのに「高価」になるため、OSは、トラフィックをルーティングする必要がある場合、メトリックが最小のインターフェイスを使用します。低いメトリックインターフェイスがシャットダウンされた場合、特定のネットワーク/宛先にトラフィックをルーティングするために使用できる唯一のインターフェイスであるため、高いメトリックインターフェイスを使用します。
メトリックは、ファイル/ etc / network / interfacesで指定されており、ドキュメントへのリンクポイントです。
テキストエディタを使用して、ファイルを編集し、ネットワークを特定し、metric
パラメータを変更して保存します。再起動は、ネットワークサービスを再起動するオタクの詳細に入らずにすべての値をリセットする最も簡単な方法です。
一般的なトラフィックのインターフェイスの優先順位付けは、ルーティングメトリックを操作することによって行われます。各ルートには、ホップカウントや帯域幅などのパラメーターが関連付けられています。route
コマンドについては、マンページの「メトリック」オプションを参照してください。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 255.255.255.255 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 256 0 0 eth0
ネットワークリソースへのアプリケーションアクセスの優先順位付けは、多くの場合「トラフィックシェーピング」によって対処されます。Ubuntuまたはルーターがそれを実行できるかどうかを確認するために、Web検索エンジンを使用します。
脚注。
LinuxではなくMS Windowsで、netstat -nr
コマンドはと同じ情報を出力しroute print
ます。ルーティングメトリックを含みます。
私は実際に試してはいませんが、NCD(Network Configuration Daemon-1)をこの目的に使用できます。このサイトは、ネットワーク構成を簡単にすると主張しています。構文は単純なようです。
#ネットワーク接続を待ちます。eth0の前にeth1を配置して、eth1を優先します。
list( "NET-eth1"、 "NET-eth0")pnames;
pnames
リストは実際multidepend()
には次の行のステートメントに対する単なる引数であることに注意する必要があります。これは優先順位を実装するものです。これの背後にあるメカニズムは、すでに起動eth1
しているときに起動するeth0
と、実行されmultiprovide("NET-eth1");
、のNET-eth1
前にあるためNET-eth0
、multidepend()
ダウンしてすぐに起動しますが、のeth1
代わりにプロセスから変数を公開しますeth0
。
これはすべて、ルートメトリックが原因です。最も低いメトリックのデフォルトルートを削除してから、より高いメトリックの古いルートを復元します。以下のコマンドに従ってください。
ルーティングテーブルが次のようになっているとしましょう。
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.16.87.254 0.0.0.0 UG 100 0 0 ens38
0.0.0.0 192.168.151.2 0.0.0.0 UG 101 0 0 ens33
10.16.86.64 0.0.0.0 255.255.255.248 U 100 0 0 ens38
10.16.87.254 0.0.0.0 255.255.255.255 UH 100 0 0 ens38
10.16.88.6 10.16.87.254 255.255.255.255 UGH 100 0 0 ens38
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens38
192.168.151.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
次に、デフォルトゲートウェイを削除します
# route delete default gateway
次に、古いデフォルトゲートウェイを復元します(この場合のメトリックは、現在のデフォルトルート101より高い102であることに注意してください)
# route add default gw 10.16.87.254 metric 102 dev ens38
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.151.2 0.0.0.0 UG 101 0 0 ens33
0.0.0.0 10.16.87.254 0.0.0.0 UG 102 0 0 ens38
10.16.86.64 0.0.0.0 255.255.255.248 U 100 0 0 ens38
10.16.87.254 0.0.0.0 255.255.255.255 UH 100 0 0 ens38
10.16.88.6 10.16.87.254 255.255.255.255 UGH 100 0 0 ens38
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens38
192.168.151.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
Gateway
= のエントリを削除します10.16.87.254
。これはUG
最低Metric
であり、ステップ2 Metric
はが利用192.168.151.2
できない場合に備えて、バックアップとして引き続き利用できます。
[更新] Ubuntu 18.04 LTS(サーバー)現在、netplan
ネットワーク管理のデフォルトラッパーです。Netplanの設定は、デフォルトでYAMLファイルを介して行われます/etc/netplan/01-netcfg.yaml
(詳細はこちら)。
ルーティングメトリックはmetric
、正整数(100
通常はデフォルト値)を想定する「」オプションによって定義されます。ここだ例リファレンスページからは:
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- 10.0.0.10/24
- 11.0.0.11/24
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
routes:
- to: 0.0.0.0/0
via: 10.0.0.1
metric: 100
- to: 0.0.0.0/0
via: 11.0.0.1
metric: 100
最小のmetric
(パス長)のルートが「優先」ゲートウェイになります。(使用:sudo netplan try
変更を有効にするため)
ローミング環境(複数の接続、オンおよびオフ)では、optional
(boolean)パラメーターをtrue
(デフォルトはfalse)に設定する必要がある場合があることに注意してください。
network:
version: 2
ethernets:
enred:
dhcp4: yes
dhcp4-overrides:
route-metric: 100
engreen:
dhcp4: yes
dhcp4-overrides:
route-metric: 200
# this is plugged into a test network that is often
# down - don't wait for it to come up during boot.
optional: true
DHCP接続の場合、ルートメトリックのわずかに異なる構文に注意してください。
またNetworkManager
、レンダラーとして使用することもできます(まだ自分でテストしていません)が、GUIツールを介して構成のその部分を表示/編集できると思います。
renderer
(スカラー)この定義に指定されたネットワークバックエンドを使用します。現在サポートされているのは
networkd
とNetworkManager
です。このプロパティはnetworks:
、デバイスタイプ(などethernets:
)または特定のデバイス定義に対して、でグローバルに指定できます。デフォルトはnetworkd
です。
(リファレンスページの最後の「大きな」例は、両方のレンダラーのハイブリッド使用を示しています)。
この質問(askubuntu)も参照してください。