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


8

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

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

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

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

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

  • 每当我通过有线连接连接到Internet时,都会将我连接到热点。
  • 没有以太网连接时,将我从热点断开。
  • 只要可用,并且没有以太网连接,就可以使用autoconnect = true将我自动连接到其中一个网络。

关于如何执行此操作的完整说明将是不错的选择,但对于设置此类规则的优秀(非专家)手册的参考也将非常受赞赏。


1
我不确定您要做什么,所以我不确定您使用网络管理器吗?因此,很难提供手册。我会考虑post-up的的/etc/network/interfaces背景下,有一个很好的概述这里post-up界面出现后,基本上只是调用命令或脚本。
罗伯特·里德尔

看起来是一个不错的起点。会调查一下,谢谢。
丢失

Answers:


2

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

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

使用bash脚本应该非常简单,并且nmcli'nmcli'是一个功能强大的networknig工具,它使您可以随意进行上下连接并获取大量相关信息。

要找出要连接的脚本,只需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.

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

有关如何基于网络连接自动运行脚本的更多信息,请参见此有关“ nmcli”的更多详细信息,请参见手册页。这是有关如何创建热点的信息


感谢您提供的Wiki参考,作为非超级用户,我发现这些手册比手册页更容易入手。会让您发布消息
迷失

到目前为止,效果很好,但对禁用自动连接部分并不完全满意。我正在翻阅nmcli的手册页,但是在拔出以太网电缆时是否会有命令“扫描自动连接的网络”?
丢失

@ Bib-lost我的测试表明,插入以太网电缆后,将无线设备保持为自动连接状态会保持连接状态,如果手动将其断开,则会自动重新连接。你的结果和我的不同吗?
年长者极客

我还无法使脚本在插入以太网电缆时运行(尽管我遵循了Wiki中的步骤),但是只是通过在控制台中进行测试,如果我手动命令断开连接(即使该连接是自动连接的) ),它不会重新连接。
丢失

@ Bib-lost有趣的..我必须做进一步的测试。您是说如果在Network Manager中将wifi设置为自动连接,并且将其关闭,nmcli connection my-wifi down则它永远不会重新连接?
极客长老

1

对我有用的解决方案(在Geek的帮助下找到)。

我不停地自动连接了我要自动连接到所有的网络,但关闭的热点。然后,将以下脚本(具有此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

到目前为止,效果很好。每当插入以太网电缆时,甚至在插入以太网电缆的情况下启动或唤醒计算机时,都会自动连接到热点。只要拔出以太网电缆,就会自动从热点断开连接,然后自动连接到可用的WiFi网络。


我很高兴您对它进行了排序,并发现我的答案很有用!干杯! 作为新成员,您可能不知道这一点。
极客长老'18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.