Configure a autoconexão para hot-spot somente quando a conexão ethernet

7

No momento, alterno entre as duas configurações a seguir diariamente:

1) Estar conectado à internet através de uma rede WiFi.

2) Tendo o meu laptop (Ubuntu 16.04) conectado à internet através de uma conexão com fio, em seguida, compartilhando esta conexão com meus outros dispositivos através da funcionalidade hot-spot integrada do Ubuntu.

No momento, mudar de 1 para 2 requer que eu passe manualmente pelo diálogo "conectar-se à rede oculta" no Gerenciador de rede; da mesma forma, mudar de 2 para 1 exige que eu desconecte manualmente do ponto de acesso e conecte-se à rede Wi-Fi. Não é muito trabalho, mas faço isso o suficiente para que seja automatizado.

Não é tão simples como habilitar o autoconnect para o hotspot, desde então ele substitui a funcionalidade de conexão automática de outras redes em vez de me conectar a uma rede WiFi quando não estou conectado por uma conexão com fio, e acabo com um hot -spot mas sem internet. Então eu preciso de uma solução que:

  • conecta-me ao ponto de acesso sempre que estou conectado à internet por meio de uma conexão com fio.
  • me desconecta do hot-spot quando não há conexão ethernet.
  • autoconecta-me a uma das redes com autoconnect = true sempre que estiverem disponíveis e não houver conexão ethernet.

Uma explicação completa sobre como fazer isso seria ótima, mas uma referência a um bom manual (não especializado) para estabelecer esses tipos de regras também seria muito apreciada.

    
por Bib-lost 04.03.2018 / 13:57

2 respostas

1

Entendo que quando você conecta o cabo Ethernet que supera a conexão wifi e a conexão wifi cai automaticamente. De maneira similar, desconectar o cabo Ethernet conecta-se ao seu wifi preferencial (desde que você tenha a caixa marcada para conexão automática a essa rede Wi-Fi na guia geral do gerenciador de rede. Testado em uma instalação padrão do Ubuntu 16.04.3

Então, se eu estiver entendendo corretamente, você só quer iniciar automaticamente o serviço de ponto de acesso em seu laptop quando o cabo Ethernet estiver conectado e desabilitar o serviço quando o cabo Ethernet estiver desconectado.

Isso deve ser bastante simples de se fazer com um script bash e nmcli 'nmcli' é uma poderosa ferramenta networknig que permite levar conexões para cima e para baixo à vontade e obter toneladas de informações relevantes.

Para descobrir a quais conexões você será roteirizado, simplesmente execute nmcli -t monitor| grep primary quando conectado via wifi e conecte seu cabo Ethernet. As conexões que você está interessado em trazer para cima e para baixo com nmcli serão aquelas cercadas por ' s Exemplo: 'Conexão com fio 1' a lógica é que quando 'Conexão' está conectada, hotspot (você pode achar necessário usar o comando sleep ou utilizar a opção -w para tornar nmcli em seu script aguardar um número especificado de segundos para que um comando seja concluído antes de emitir o próximo.

Trazer uma conexão para baixo é tão simples quanto nmcli 'connection name' down e trazer uma conexão é nmcli 'connection name' up

Observação: Para controle total pelo script, talvez seja necessário desabilitar a opção de conexão automática, pelo menos para sua conexão Wi-Fi no Network Manager, pois ele tentará se conectar automaticamente sempre que estiver disponível e puder interferir com o que você está tentando realizar. Trecho de 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.

Então, uma vez que você determinou que sua Ethernet está conectada, pode emitir os comandos para desligar a conexão Wi-Fi Exemplo: nmcli connection my-wifi down e a conexão com o hotspot Exemplo: nmcli connection my-hotspot up

Para mais informações sobre como executar scripts automaticamente com base na conexão de rede, consulte este. Para obter mais detalhes sobre 'nmcli', verifique o < href="http://manpages.ubuntu.com/manpages/xenial/man1/nmcli.1.html"> man page. E aqui está a informação sobre como crie um hotspot.

    
por Elder Geek 13.03.2018 / 22:11
0

Solução que fez isso para mim (encontrada com a ajuda do Elder Geek).

Eu mantive autoconnect on para todas as redes que eu quero conectar automaticamente, mas off para o hot-spot. Em seguida, coloquei o seguinte script (com as permissões corretas, conforme descrito em esta página Wiki ), na pasta /etc/NetworkManager/dispatcher.d

!/bin/bash

interf=
state=

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

Isso funciona muito bem até agora; conexão automática ao hotspot sempre que o cabo ethernet estiver conectado ou mesmo quando o computador inicializar ou acordar com o cabo ethernet conectado. Desconexão automática do hot-point sempre que o cabo ethernet for retirado, seguido pela conexão automática às redes WiFi disponíveis. / p>     

por Bib-lost 15.03.2018 / 20:58