有線イーサネットケーブルを接続するたびにWifi /ワイヤレス接続を自動的に無効にする最良の方法は何ですか?後で電線を外したときに再び有効にしたいのですが。
また、私は有線接続を他のワイヤレスユーザーと共有したい場合があります(またはその逆)。どういうわけかこれらのセットアップを免除できればいいと思います。
NetworkManagerを使用する11.10 Oneiricを使用しています。
有線イーサネットケーブルを接続するたびにWifi /ワイヤレス接続を自動的に無効にする最良の方法は何ですか?後で電線を外したときに再び有効にしたいのですが。
また、私は有線接続を他のワイヤレスユーザーと共有したい場合があります(またはその逆)。どういうわけかこれらのセットアップを免除できればいいと思います。
NetworkManagerを使用する11.10 Oneiricを使用しています。
回答:
次のスクリプトは/etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired
、ほとんどが機能します。有線でワイヤレスと共有したい場合、またはその逆の場合でもワイヤレスを無効にします。
これを行うには、ターミナルで次のコマンドを実行します。
sudo nano /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired
そして、次のコードをテキストエディターに貼り付けます。
#!/bin/sh
myname=${0##*/}
log() { logger -p user.info -t "${myname}[$$]" "$*"; }
IFACE=$1
ACTION=$2
release=$(lsb_release -s -c)
case ${release} in
trusty|utopic) nmobj=nm;;
*) nmobj=radio;;
esac
case ${IFACE} in
eth*|usb*|en*)
case ${ACTION} in
up)
log "disabling wifi radio"
nmcli "${nmobj}" wifi off
;;
down)
log "enabling wifi radio"
nmcli "${nmobj}" wifi on
;;
esac
;;
esac
次に、保存して終了します。
NetworkManagerのマニュアルページに記載されているように、スクリプトに関する次の条件に注意してください。
各スクリプトは次のとおりです。
- 通常のファイル、
- ルートが所有し、
- グループや他のユーザーによる書き込み不可
- set-uidではなく、
- 所有者によって実行可能。
代わりにnmcli radio wifi off
(またはnmcli nm wifi off
NetworkManagerの古いバージョン用)がありrfkill block wifi
ます。ただし、のrfkill
代わりにが使用されている場合nmcli
、NetworkManagerの新しいバージョンは起動中にwifiをオンに戻します。
CONNECTION_UUID
その接続の識別子に名前が付けられた環境変数を設定します。スクリプトは、「標準」有線接続を宣言した接続に対してのみWiFiを無効にeth0
し、別の接続によってアクティブになっている場合は有効のままにしておくことができると考えていました。私はそれを試していないので、それが機能するかどうかはわかりません。しかし、単に手動で制御することについてのあなたのポイントは良いものです。
eth0|usb0)
USBテザリングが有効化/無効化されたときにWiFiを無効化/有効化するためにも使用します。
nmcli nm wifi off
とを使用しましたnmcli nm wifi on
。しかし、nmcliコマンドの方が優れていると信じる理由は特にありません。NetworkManagerの方法ですべてを実行したかっただけです。
rfkill unblock wifi
接続eth0
して共有したいのに、どうしてやるrfkill block wifi
必要がないのですか?