Ubuntu 11.04のマシンがWiFiと3Gを同時に接続している場合、アプリケーション(ブラウザなど)を先にWiFiを使わせる優先順位を設定するにはどうすればいいのでしょうか?それができない場合は3Gを使うはずです
基本的には、ネットワーク接続の使用順序を設定したいと思います
編集:私はちょうど快適で、Ubuntu/Linuxの専門家ではない人のために有用であろう簡単なアプローチを探しています
51 None 2011-09-04
これを行うための最も簡単なコマンドに誰も言及していないことに驚いています。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
を使うようになります。この変更はすぐに反映されます
44 shivams 2017-10-20
メトリックを設定することで、優先順位を変更することができます。高いメトリックは使用するためにより「高価」なので、OSはトラフィックをルーティングする必要がある場合、メトリックが最も低いインタフェースを使用します。このような場合には、特定のネットワーク/デスティネーションに向けてトラフィックをルーティングするために使用できる唯一のインターフェイスであるため、より低いメトリックのインターフェイスがシャットダウンされている場合には、より高いメトリックのインターフェイスを使用します
メトリクスはファイル /etc/network/interfaces で指定されており、リンク先はドキュメントを指しています
テキストエディタを使ってファイルを編集し、ネットワークを識別し、metric
パラメータを変更して保存するだけです。再起動は、ネットワークサービスの再起動のようなマニアックな詳細に触れることなく、すべての値をリセットする最も簡単な方法です
15 harrymc 2011-09-09
一般的なトラフィックのためのインタフェースの優先順位付けは、ルーティングメトリクスを操作することによって行われます。各ルートには、ホップ数や帯域幅などの関連するパラメータがあります。
route
コマンドのman-pageの “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
ネットワークリソースへのアプリケーションアクセスの優先順位付けは、しばしば “トラフィックシェーピング “によって対処されている – 私はUbuntuやルータがそれを行うことができるかどうかを確認するために、Web検索エンジンを使用すると思います
Footnote.
MS Windowsではnetstat -nr
コマンドはroute print
と同じ情報を出力しますが、Linuxでは出力しません。ルーティングメトリクスを含む
7 RedGrittyBrick 2011-09-04
実際に試したことはないのですが、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 2011-09-10
これはすべてルートメトリックが原因です。メトリックの低いデフォルトのルートを削除してから、メトリックの高い古いルートを元に戻したいとします。以下のコマンドを実行してください
あなたのルーティングテーブルは次のようになっているとします
# 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 2016-08-03
更新] Ubuntu 18.04 LTS (サーバ) では、netplan
がネットワーク管理のデフォルトのラッパーとなっています。Netplan の設定は YAML ファイルを介して行われ、デフォルトでは /etc/netplan/01-netcfg.yaml
(詳細は こちら)
Routing メトリックは”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
をレンダラとして使うこともできます
renderer
(scalar)この定義には、指定されたネットワーキングバックエンドを使用します。現在サポートされているのは
networkd
とNetworkManager
です。このプロパティは、networks:
でグローバルに指定したり、デバイスタイプ(例:ethernets:
)に対して指定したり、特定のデバイス定義に対して指定したりすることができます。デフォルトはnetworkd
です
(参考ページの最後の「大きな」例では、両方のレンダラーをハイブリッドで使用しています)
この質問(askubuntu)も参照してください
0 ΦDev 2019-08-08