web-dev-qa-db-ja.com

イーサネット接続時のみホットスポットへの自動接続を設定します

現在、次の2つのセットアップを毎日切り替えています。

1)WiFiネットワーク経由でインターネットに接続している。

2)有線接続を介して(Ubuntu 16.04)ラップトップをインターネットに接続し、Ubuntuの組み込みホットスポット機能を介してこの接続を他のデバイスと共有します。

現時点では、1から2に切り替えるには、Network Managerの「隠しネットワークに接続」ダイアログを手動で実行する必要があります。同様に2から1に切り替えるには、ホットスポットから手動で切断してWiFiネットワークに接続する必要があります。それは多くの仕事ではありませんが、私はそれを自動化したいと思うほど頻繁にやります。

ホットスポットの自動接続を有効にするほど簡単ではありません。有線接続で接続していない場合、WiFiネットワークに接続する代わりに他のネットワークの自動接続機能を上書きし、ホットスポットになりますが、インターネットがない。だから私は解決策が必要です:

  • 有線接続でインターネットに接続しているときはいつでも、ホットスポットに接続します。
  • イーサネット接続がない場合、ホットスポットから切断されます。
  • ネットワークが利用可能であり、イーサネット接続がない場合は、autoconnect = trueでネットワークの1つに自動接続します。

これを行う方法の完全な説明は素晴らしいでしょうが、これらの種類のルールを設定するための優れた(専門家でない)マニュアルへの参照も非常に高く評価されるでしょう。

8
Bib-lost

私の理解では、wifi接続に勝るイーサネットケーブルを差し込むと、wifi接続は自動的に切断されます。同様に、イーサネットケーブルを切断すると、お好みのwifiに自動接続されます(もちろん、ネットワークマネージャーの[全般]タブでWifiネットワークに自動接続するチェックボックスがオンになっている場合。Ubuntu16.04.3のデフォルトインストールでテスト済み

したがって、イーサネットケーブルが接続されるとラップトップでホットスポットサービスを自動的に開始し、イーサネットケーブルが切断されるとサービスを無効にしたいだけです。

これは、bashスクリプトを使用して行うのが非常に簡単で、nmcli 'nmcli'は、接続を自由に上下させ、大量の関連情報を取得できる強力なネットワークツールです。

どの接続をスクリプティングするかを調べるには、wifi経由で接続してイーサネットケーブルを差し込んでnmcli -t monitor| grep primaryを実行するだけです。 nmcliで上下することに関心のある接続は、'sで囲まれた接続になります。例: '有線接続1 'ロジックは、'接続 'が接続されたときにホットスポットを表示することです(コマンドsleepを使用するか、-wスイッチを使用してスクリプトのnmcliを待つ必要がある場合があります次のコマンドを発行する前に完了するコマンドの指定された秒数。

接続を停止するのはnmcli 'connection name' downと同じくらい簡単で、接続を確立するのはnmcli 'connection name' upです

注:スクリプトを介して完全に制御するには、少なくともネットワークマネージャーのWi-Fi接続で自動接続オプションを無効にする必要があります。利用可能な場合は自動接続し、達成しようとしていることを妨げる可能性があります。 man nmcliからの抜粋

There may be multiple connections that apply
       to a device, but only one of them can be active on that device at any
       given time. The additional connections can be used to allow quick
       switching between different networks and configurations.

そのため、イーサネットが接続されていると判断したら、wifi接続を停止するコマンドを発行できます例:nmcli connection my-wifi downそして、ホットスポット接続up例:nmcli connection my-hotspot up

ネットワーク接続に基づいてスクリプトを自動的に実行する方法の詳細については、 this。 を参照してください。「nmcli」の詳細については、 manページを確認してください。 ここに情報があります。ホットスポットの作成方法

2
Elder Geek

私のためにそれをした解決策(オタク長老の助けを借りて発見)。

自動的に接続したいすべてのネットワークで自動接続onを維持しましたが、offホットスポット用。次に、次のスクリプト( このWikiページ で説明されている適切な権限を使用)をフォルダー/etc/NetworkManager/dispatcher.dに配置します

!/bin/bash

interf=$1
state=$2

if [ $interf = "my-ethernet-device" -a $state = "up" ]; then
    nmcli connection up 'my-hotspot'
fi

if [ $interf = "my-ethernet-device" -a $state = "down" ]; then
    nmcli connection down 'my-hotspot'
fi

これはこれまでのところ非常にうまく機能しています。イーサネットケーブルが差し込まれたとき、またはイーサネットケーブルが差し込まれた状態でコンピューターが起動または起動したときのホットスポットへの自動接続。イーサネットケーブルが引き出されたときは常にホットスポットからの自動切断。

1
Bib-lost