Cuando estoy conectado mediante RJ45, o conectado a una wifi en concreto necesito una configuración de /etc/hosts
. Cuando estoy conectado a cualquier otra wifi necesito una configuración de /etc/hosts
diferente.
Para conseguir este comportamiento hay que crear dos ficheros de hosts
en /etc/
con el contenido deseado. Yo los he denominado /etc/hosts.home
y /etc/hosts.outside
:
1 2 3 4 |
sudo cp /etc/hosts /etc/hosts.home sudo cp /etc/hosts /etc/hosts.outside sudo vim /etc/hosts.home sudo vim /etc/hosts.outside |
Después, crear el fichero /etc/NetworkManager/dispatcher.d/change_etc_hosts
com permisos de ejecución:
1 2 |
sudo touch /etc/NetworkManager/dispatcher.d/change_etc_hosts sudo chmod a+x /etc/NetworkManager/dispatcher.d/change_etc_hosts |
En este fichero incluir el siguiente contenido:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash # Obtener el nombre de la wifi en uso. # Realmente no detecta si tenemos IP por esta interfaz, pero me sirve. # En mi caso la interfaz es wlan0 # | # v wifi=`iwconfig wlan0 | grep ESSID | cut -d' ' -f9 | cut -d'"' -f2` # Comprobar si se está conectado por cable RJ45 # Si no se está conectado, este valor será vacío porque no habrá IP cable=`ifconfig eth0 | grep inet` # Si hay un valor para cable (conectado por RJ54) o se está en la SSID de # casa 'micasa' if [[ $cable != '' || $wifi == 'micasa' ]] then # Conexión de casa: cable o wifi 'micasa' cp /etc/hosts.home /etc/hosts else # Conexión externa cp /etc/hosts.outside /etc/hosts fi |