Answers:
放入以下脚本,/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手册页中所述:
每个脚本应为:
- 常规文件,
- 由根拥有,
- 不能按组或其他方式写,
- 没有设置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
在完成后再做呢?