現在、次の2つのセットアップを毎日切り替えています。
1)WiFiネットワーク経由でインターネットに接続している。
2)有線接続を介して(Ubuntu 16.04)ラップトップをインターネットに接続し、Ubuntuの組み込みホットスポット機能を介してこの接続を他のデバイスと共有します。
現時点では、1から2に切り替えるには、Network Managerの「隠しネットワークに接続」ダイアログを手動で実行する必要があります。同様に2から1に切り替えるには、ホットスポットから手動で切断してWiFiネットワークに接続する必要があります。それは多くの仕事ではありませんが、私はそれを自動化したいと思うほど頻繁にやります。
ホットスポットの自動接続を有効にするほど簡単ではありません。有線接続で接続していない場合、WiFiネットワークに接続する代わりに他のネットワークの自動接続機能を上書きし、ホットスポットになりますが、インターネットがない。だから私は解決策が必要です:
これを行う方法の完全な説明は素晴らしいでしょうが、これらの種類のルールを設定するための優れた(専門家でない)マニュアルへの参照も非常に高く評価されるでしょう。
私の理解では、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ページを確認してください。 ここに情報があります。ホットスポットの作成方法
私のためにそれをした解決策(オタク長老の助けを借りて発見)。
自動的に接続したいすべてのネットワークで自動接続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
これはこれまでのところ非常にうまく機能しています。イーサネットケーブルが差し込まれたとき、またはイーサネットケーブルが差し込まれた状態でコンピューターが起動または起動したときのホットスポットへの自動接続。イーサネットケーブルが引き出されたときは常にホットスポットからの自動切断。