仅在以太网连接时设置自动连接到热点

Bib*_*ost 8 network-manager wireless networking ethernet hot-spot

我目前每天在以下两种设置之间切换:

1) 通过 WiFi 网络连接到互联网。

2) 让我的 (Ubuntu 16.04) 笔记本电脑通过有线连接连接到互联网,然后通过 Ubuntu 的内置热点功能与我的其他设备共享此连接。

目前,从 1 切换到 2 需要我手动通过网络管理器中的“连接到隐藏网络”对话框;同样,从 2 切换到 1 需要我手动断开热点连接并连接到 WiFi 网络。这不是很多工作,但我经常这样做,我希望它是自动化的。

它不像为热点启用自动连接那么简单,因为它会覆盖其他网络的自动连接功能,而不是在我没有通过有线连接连接时将我连接到 WiFi 网络,我最终得到了一个热点,但是没有互联网。所以我需要一个解决方案:

  • 每当我通过有线连接连接到互联网时,就会将我连接到热点。
  • 当没有以太网连接时,将我与热点断开连接。
  • 只要它们可用并且没有以太网连接,就会自动将我连接到具有 autoconnect=true 的网络之一。

关于如何做到这一点的完整解释会很好,但也非常感谢参考一本好的(非专家)手册来设置这些类型的规则。

Eld*_*eek 3

据我了解,当您插入以太网电缆时,它会胜过 WiFi 连接,并且 WiFi 连接会自动断开。以类似的方式,断开以太网电缆会自动连接到您首选的 WiFi(当然,前提是您在网络管理器的常规选项卡上选中了自动连接到该 Wifi 网络的框。在 Ubuntu 16.04.3 的默认安装上进行了测试

因此,如果我理解正确,您只想在连接以太网电缆时自动启动笔记本电脑上的热点服务,并在断开以太网电缆时禁用该服务。

使用 bash 脚本来完成此操作应该相当简单,并且nmcli“nmcli”是一个功能强大的网络工具,可让您随意打开和关闭连接并获取大量相关信息。

要了解您要编写脚本的连接,只需nmcli -t monitor| grep primary在通过 WiFi 连接并插入以太网电缆时运行即可。您有兴趣打开和关闭的连接nmcli将是那些由's​​ 包围的连接例如: “有线连接 1”,逻辑是当“连接”连接时打开热点(您可能会发现有必要使用该命令sleep或利用-w要在脚本中进行的切换,在nmcli发出下一个命令之前等待指定的秒数以完成命令。

关闭连接就像nmcli 'connection name' down打开连接一样简单nmcli 'connection name' up

注意:为了通过脚本进行完全控制,您可能需要在网络管理器中至少为您的 wifi 连接实际禁用自动连接选项,因为它会在可用时尝试自动连接,并且可能会干扰您尝试完成的任务。摘自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.
Run Code Online (Sandbox Code Playgroud)

因此,一旦确定以太网已连接,您就可以发出命令来关闭 wifi 连接示例: nmcli connection my-wifi down然后打开热点连接示例: nmcli connection my-hotspot up

有关如何根据网络连接自动运行脚本的更多信息,请参阅此。有关“nmcli”的更多详细信息,请查看手册页。以下是有关如何创建热点的信息。