Configure la conexión automática a la zona activa solo cuando la conexión Ethernet

8

Actualmente cambio diariamente entre las siguientes dos configuraciones:

1) Estar conectado a internet a través de una red WiFi.

2) Tener mi computadora portátil (Ubuntu 16.04) conectada a Internet a través de una conexión por cable, luego compartir esta conexión con mis otros dispositivos a través de la funcionalidad incorporada de puntos calientes de Ubuntu.

Por el momento, cambiar de 1 a 2 me obliga a pasar manualmente por el cuadro de diálogo "conectar a red oculta" en el Administrador de red; Del mismo modo, cambiar de 2 a 1 requiere que me desconecte manualmente del punto de acceso y me conecte a la red WiFi. No es mucho trabajo, pero lo hago con la frecuencia suficiente para que me gustaría que se automatice.

No es tan simple como habilitar la conexión automática para el punto de acceso, ya que anula la funcionalidad de conexión automática de otras redes en lugar de conectarme a una red WiFi cuando no estoy conectado a través de una conexión por cable, y termino con un punto caliente pero sin internet. Entonces necesito una solución que:

  • me conecta a la zona activa cada vez que estoy conectado a internet a través de una conexión por cable.
  • me desconecta de la zona activa cuando no hay conexión ethernet.
  • me conecta automáticamente a una de las redes con autoconnect = true siempre que estén disponibles y no haya una conexión Ethernet.

Una explicación completa sobre cómo hacer esto sería genial, pero una referencia a un buen manual (no experto) para establecer este tipo de reglas también sería muy apreciada.

Babero perdido
fuente
1
No estoy 100% seguro de lo que haces, ¿supongo que usas el administrador de red? Por lo tanto, es difícil proporcionar un manual. Me gustaría ver en post-upel /etc/network/interfacescontexto, existe una gran visión aquí . post-upbásicamente solo llama a comandos o scripts, después de que aparece una interfaz.
Robert Riedl
Parece un buen lugar para comenzar. Lo investigaré, gracias.
Babero perdido el

Respuestas:

2

Tengo entendido que cuando conectas el cable Ethernet que supera la conexión wifi y la conexión wifi se cae automáticamente. De manera similar, desconectar el cable Ethernet se conecta automáticamente a su wifi preferido (siempre que tenga marcada la casilla para conectarse automáticamente a esa red Wifi en la pestaña general del administrador de red. Probado en una instalación predeterminada de Ubuntu 16.04.3

Entonces, si lo entiendo correctamente, solo desea iniciar automáticamente el servicio de punto de acceso en su computadora portátil cuando el cable Ethernet está conectado y deshabilitar el servicio cuando el cable Ethernet está desconectado.

Esto debería ser bastante simple de hacer con un script bash y nmcli'nmcli' es una poderosa herramienta de red que le permite subir y bajar conexiones a voluntad y obtener toneladas de información relevante.

Para averiguar para qué conexiones se ejecutarán los scripts, simplemente ejecute nmcli -t monitor| grep primarycuando esté conectado a través de wifi y conecte su cable Ethernet. Las conexiones con las que está interesado en subir y bajar nmcliserán aquellas rodeadas por 's Ejemplo: 'Conexión por cable 1', la lógica es que cuando 'Conexión' esté conectada, aparezca el punto de acceso (puede que sea necesario usar el comando sleepo utilizar el -wcambio que debe hacer nmclien su script espere un número específico de segundos para que se complete un comando antes de emitir el siguiente.

Derribar una conexión es tan simple como nmcli 'connection name' downabrir unanmcli 'connection name' up

Nota: Para un control total a través del script, es posible que deba deshabilitar la opción de conexión automática al menos para su conexión wifi en el Administrador de red, ya que intentará conectarse automáticamente siempre que esté disponible y pueda interferir con lo que está tratando de lograr. Extracto 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.

Entonces, una vez que haya determinado que su Ethernet está conectada, puede emitir los comandos para desconectar la conexión wifi Ejemplo: nmcli connection my-wifi down y luego la conexión de punto de acceso Ejemplo: nmcli connection my-hotspot up

Para obtener más información sobre cómo ejecutar scripts automáticamente en función de la conexión de red, consulte esto. Para obtener más detalles sobre 'nmcli', consulte la página de manual. Y aquí hay información sobre cómo crear un punto de acceso.

Elder Geek
fuente
Gracias por la referencia de la wiki, como usuario no experto, me parece más fácil comenzar con ellas que las páginas de manual. Te mantendré informado
Bib-lost
Hasta ahora todo bien, pero no completamente satisfecho con la parte de desactivación de la conexión automática. Estoy buscando nmcli en las páginas de manual, pero ¿habría un comando para 'buscar redes auto-conectables' al desconectar el cable de ethernet?
Babero perdido el
@ Bib-lost Mis pruebas indican que dejar la conexión inalámbrica como auto-conectable hace que permanezca conectada cuando el cable Ethernet está enchufado y se vuelve a conectar automáticamente si la desconecta manualmente. ¿Son sus resultados diferentes a los míos?
Élder Geek
Todavía no he podido ejecutar los scripts al enchufar el cable Ethernet (aunque seguí los pasos en el Wiki) pero solo probando en la consola, si ordeno manualmente desconectarme de una conexión (incluso si eso es de conexión automática ) no se vuelve a conectar.
Babero perdido el
@ Babero perdido Interesante .. Tendré que hacer más pruebas. ¿Está diciendo que si el wifi está configurado para conectarse automáticamente en Network Manager y lo desconecta nmcli connection my-wifi down, nunca se vuelve a conectar?
Élder Geek
1

Solución que lo hizo por mí (encontrado con la ayuda del élder Geek).

Seguí conexión automática en todas las redes que desea conectarse automáticamente a, pero fuera del punto caliente. Luego pongo el siguiente script (con los permisos correctos como se describe en esta página Wiki ) en la carpeta/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

Esto funciona muy bien hasta ahora; conexión automática al punto de acceso cada vez que el cable de ethernet está enchufado o incluso cuando la computadora arranca o se activa con el cable de ethernet enchufado. Desconexión automática del punto de acceso cada vez que se desconecta el cable de ethernet, seguido de una conexión automática a las redes WiFi disponibles.

Babero perdido
fuente
¡Me alegra que lo haya ordenado y haya encontrado útil mi respuesta! ¡Salud! Como miembro nuevo, es posible que no se dé cuenta de esto.
Élder Geek