web-dev-qa-db-ja.com

Ubuntuでネットワーク接続の優先度を設定するにはどうすればよいですか?

Ubuntu 11.04マシンがWiFiと3Gに同時に接続されている場合、アプリケーション(ブラウザーなど)が最初にWiFiを使用できるように優先度を設定するにはどうすればよいですか?それが利用できない場合は、3Gを使用する必要があります。

基本的に、ネットワーク接続を使用する順番を設定したいと思います。

編集:私は、Ubuntu/Linuxの専門家ではなく、単に快適な人に役立つ、より簡単なアプローチを探しています。

45
Praveen Sripati

これを行うための最も単純なコマンドである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を使用します。変更はすぐに反映されます。

31
shivams

metrics の設定は、優先度を変更する方法です。メトリックが高いほど使用コストが高くなるため、OSはトラフィックをルーティングする必要がある場合、メトリックが最も低いインターフェイスを使用します。メトリックの低いインターフェイスがシャットダウンされた場合、その特定のネットワーク/宛先にトラフィックをルーティングするために使用できる唯一のインターフェイスであるため、メトリックの高いインターフェイスが使用されます。

メトリックはファイル / etc/network/interfaces で指定され、リンクはドキュメントを指します。

任意のテキストエディターを使用してファイルを編集し、ネットワークを識別して、metricパラメーターを変更して保存します。再起動は、ネットワークサービスを再起動するこっけいな詳細に立ち入ることなくすべての値をリセットする最も簡単な方法です。

15
harrymc
  1. 一般的なトラフィックのインターフェースに優先順位を付けるには、ルーティングメトリックを操作します。各ルートには、ホップカウントや帯域幅などの関連パラメーターがあります。 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
    
  2. ネットワークリソースへのアプリケーションアクセスの優先順位付けは、「トラフィックシェーピング」によって対処されることがよくあります。Web検索エンジンを使用して、Ubuntuまたはルーターがそれを実行できるかどうかを確認します。


脚注。

LinuxではなくMS Windowsでは、netstat -nrコマンドはroute printと同じ情報を出力します。ルーティングメトリックを含みます。

7
RedGrittyBrick

私は実際には試していませんが、NCD(Network Configuration Daemon-1)をこの目的に使用できます。このサイトは、ネットワーク構成を簡単にすることを主張しています。構文は単純なようです。

#ネットワーク接続を待ちます。 eth0の前に置くことでeth1を優先します。
list( "NET-eth1"、 "NET-eth0")pnames;

(1)- http://code.google.com/p/badvpn/wiki/NCD

3
Praveen Sripati

これはすべてルートメトリックが原因です。最も低いメトリックのデフォルトルートを削除してから、より高いメトリックの古いルートを復元します。以下のコマンドに従ってください。

ルーティングテーブルが次のようになっているとします。

# 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
3
PnotNP

[更新] 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(スカラー)

この定義には、指定されたネットワークバックエンドを使用します。現在サポートされているのはnetworkdNetworkManagerです。このプロパティは、デバイスタイプ(例:networks:)または特定のデバイス定義に対して、ethernets:でグローバルに指定できます。デフォルトはnetworkdです。

(リファレンスページの最後の「大きな」例は、両方のレンダラーのこのようなハイブリッド使用を示しています)。

この質問(askubuntu) も参照してください。

0
ΦDev