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
を使用します。変更はすぐに反映されます。
metrics の設定は、優先度を変更する方法です。メトリックが高いほど使用コストが高くなるため、OSはトラフィックをルーティングする必要がある場合、メトリックが最も低いインターフェイスを使用します。メトリックの低いインターフェイスがシャットダウンされた場合、その特定のネットワーク/宛先にトラフィックをルーティングするために使用できる唯一のインターフェイスであるため、メトリックの高いインターフェイスが使用されます。
メトリックはファイル / etc/network/interfaces で指定され、リンクはドキュメントを指します。
任意のテキストエディターを使用してファイルを編集し、ネットワークを識別して、metric
パラメーターを変更して保存します。再起動は、ネットワークサービスを再起動するこっけいな詳細に立ち入ることなくすべての値をリセットする最も簡単な方法です。
一般的なトラフィックのインターフェースに優先順位を付けるには、ルーティングメトリックを操作します。各ルートには、ホップカウントや帯域幅などの関連パラメーターがあります。 route
コマンドのマンページの「metric」オプションを参照してください。
$ 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
ネットワークリソースへのアプリケーションアクセスの優先順位付けは、「トラフィックシェーピング」によって対処されることがよくあります。Web検索エンジンを使用して、Ubuntuまたはルーターがそれを実行できるかどうかを確認します。
脚注。
LinuxではなくMS Windowsでは、netstat -nr
コマンドはroute print
と同じ情報を出力します。ルーティングメトリックを含みます。
私は実際には試していませんが、NCD(Network Configuration Daemon-1)をこの目的に使用できます。このサイトは、ネットワーク構成を簡単にすることを主張しています。構文は単純なようです。
#ネットワーク接続を待ちます。 eth0の前に置くことでeth1を優先します。
list( "NET-eth1"、 "NET-eth0")pnames;
これはすべてルートメトリックが原因です。最も低いメトリックのデフォルトルートを削除してから、より高いメトリックの古いルートを復元します。以下のコマンドに従ってください。
ルーティングテーブルが次のようになっているとします。
# 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
[更新] Ubuntu 18.04 LTS(サーバー)以降、ネットワーク管理のデフォルトのラッパーは netplan
です。 Netplanの設定は [〜#〜] yaml [〜#〜] ファイルで行われ、デフォルトでは/etc/netplan/01-netcfg.yaml
(詳細 こちら )です。
ルーティング メトリックは「metric
」オプションで定義され、正の整数を想定しています(100
は一般にデフォルト値です)。以下は、リファレンスページの example です。
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) も参照してください。