Atualmente, alterno entre as duas configurações a seguir diariamente:
1) Estar conectado à Internet através de uma rede Wi-Fi.
2) Ter meu laptop (Ubuntu 16.04) conectado à Internet através de uma conexão com fio e depois compartilhar essa conexão com meus outros dispositivos através da funcionalidade interna de hot spot do Ubuntu.
No momento, mudar de 1 para 2 exige que eu acesse manualmente o diálogo "conectar à rede oculta" no Gerenciador de Rede; Da mesma forma, alternar de 2 para 1 exige que eu desconecte manualmente do ponto de acesso e conecte-se à rede WiFi. Não dá muito trabalho, mas faço-o com frequência suficiente para que seja automatizado.
Não é tão simples como ativar a conexão automática para o ponto de acesso, pois 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 ponto de acesso, mas sem internet. Então, eu preciso de uma solução que:
- me conecta ao hot spot sempre que estou conectado à Internet por 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 também seria muito apreciada uma referência a um bom manual (não especialista) para configurar esse tipo de regra.
fonte
post-up
o/etc/network/interfaces
contexto, há uma ótima visão geral aqui .post-up
basicamente chama apenas comandos, ou scripts, depois que uma interface é exibida.Respostas:
Entendo que quando você conecta o cabo Ethernet que supera a conexão wifi, a conexão wifi cai automaticamente. De maneira semelhante, desconectar o cabo Ethernet se conecta automaticamente ao seu wifi preferido (desde que você tenha a caixa marcada para se conectar automaticamente a essa rede Wifi na guia geral do gerenciador de rede. Testado em uma instalação padrão do Ubuntu 16.04.3
Portanto, se estou entendendo corretamente, você só deseja iniciar automaticamente o serviço de ponto de acesso no seu laptop quando o cabo Ethernet estiver conectado e desativar o serviço quando o cabo Ethernet estiver desconectado.
Isso deve ser bastante simples de fazer com um script bash e
nmcli
'nmcli' é uma poderosa ferramenta de rede que permite que você instale desative conexões à vontade e obtenha toneladas de informações relevantes.Para descobrir para quais conexões você criará scripts, basta executar
nmcli -t monitor| grep primary
quando conectado via wifi e conectar seu cabo Ethernet. As conexões que você está interessado em ativar e desativarnmcli
serão aquelas cercadas por'
s Exemplo: 'Conexão com fio 1' a lógica é que, quando 'Conexão' estiver conectada, ative o ponto de acesso (você pode achar necessário usar o comandosleep
ou utilizar a-w
opção a ser executadanmcli
em seu script aguarda um número especificado de segundos para que um comando seja concluído antes de emitir o próximo.Desativar uma conexão é tão simples quanto
nmcli 'connection name' down
abrir uma énmcli 'connection name' up
Nota: Para controle total por meio do script, talvez seja necessário desativar a opção de conexão automática, pelo menos para sua conexão wifi no Gerenciador de rede, pois ela tentará se conectar automaticamente sempre que estiver disponível e poderá interferir no que você está tentando realizar. Trecho de
man nmcli
:Portanto, depois de determinar que a sua Ethernet está conectada, você pode emitir os comandos para desativar a conexão wifi. Exemplo:
nmcli connection my-wifi down
e a conexão do hotspot. Exemplo:nmcli connection my-hotspot up
Para saber mais sobre como executar scripts automaticamente com base na conexão de rede, consulte isso. Para mais detalhes sobre 'nmcli', consulte a página de manual. E aqui estão as informações sobre como criar um ponto de acesso.
fonte
nmcli connection my-wifi down
ele nunca se reconectará?Solução que fez isso por mim (encontrada com a ajuda do Elder Geek).
Eu mantive autoconnect em todas as redes que eu quero para se conectar automaticamente, mas fora para o hot-spot. Em seguida, coloquei o seguinte script (com as permissões corretas, conforme descrito nesta página do Wiki ) na pasta
/etc/NetworkManager/dispatcher.d
Isso funciona muito bem até agora; conexão automática ao ponto de acesso sempre que o cabo Ethernet estiver conectado ou mesmo quando o computador inicializar ou acordar com o cabo Ethernet desconectado automaticamente do hot spot sempre que o cabo Ethernet for puxado, seguido pela conexão automática às redes Wi-Fi disponíveis.
fonte