Cambiar DNS de forma manual en Linux

por | 8 abril, 2015

torSi vives en una monarquía bananera en la que tu gobierno controla los medios de comunicación públicos y privados, pretendiendo hacer lo mismo con internet; o en algún país de la «musulmanía«, de esos que no llevan muy bien lo de las libertades y les da por azotar bloggers (y no digo que alguno no lo merezca, no…), es posible que en algún momento, también te topes con alguna restricción que te impida acceder a servicios como Youtube, Twitter o The Pirate Bay.

En muchos casos son restricciones bastante burdas, que se saltan fácilmente utilizando proxys, el navegador Tor o cambiando los DNS bien de nuestro router de acceso o de los ordenadores que utilizamos para conectarnos a internet. Este último caso es lo que vamos a ver hoy.

Si lo queremos cambiar los DNS de nuestros equipos en Linux de forma manual, lo único que tenemos que hacer es editar el archivo /etc/resolv.conf, sustituyendo los DNS que proporciona nuestro ISP por otros de libre acceso como pueden ser lo de Google (8.8.8.8 / 8.8.4.4), OpenDNS (208.67.222.222 / 208.67.220.220) o cualquier otro.

En este punto una herramienta como Namebench, que evalúa la velocidad de respuesta de cada DNS, puede ser útil si dudáis entre decidiros por uno u otro.

En mi caso los modifiqué utilizando nano, pero podéis utilizar cualquier otro editor o IDE (geany, kate, gedit, vim, etc..)

sudo nano /etc/resolv.conf

dnslo que hacemos es eliminar los DNS antiguos que figuraban en el nameserver de ese archivo y cambiándolos por los de openDNS (he visto que openDNS también tiene DNS para IPv6 así que de paso también se los he añadido) o la compañía que prefiráis vosotros.

 # openDNS IPv4
nameserver 208.67.222.222
nameserver 208.67.220.220

# openDNS IPv6
nameserver 2620:0:ccc::2
nameserver 2620:0:ccd::2

Para comprobar que estamos navegando con nuestro nuevo proveedor de sistema de nombres de dominio (DNS), lo podemos mirar con el comando dig que forma parte de las utilidades (bind-utils o dnsutils dependiendo de la distro) que se utilizan habitualmente para testear DNS

dig duckduckgo.com

dns1Si os fijáis, al final aparece un valor denominado SERVER, que es el que nos dice que DNS estamos utilizando.

Actualización

Tal como me comentan varios lectores en los comentarios, es posible que determinados programas sobreescriban esa configuración, en openSUSE que es mi distro principal no me he encontrado ese problema (lo que hace es crearme un backup), pero hace un rato probando en Manjaro (y supongo que toda la familia de Arch será más o menos igual) he visto que el programa resolvconf, es el encargado de escribir directamente en el archivo resolv.conf, provocando que a cada reinicio se pierdan los cambios efectuados

La solución que he encontrado y parece que funciona, es editar directamente /etc/resolvconf.conf

sudo nano /etc/resolvconf.conf

dejamos todo como esta y en este caso para variar le añadimos los DNS de Google:

name_servers=8.8.8.8
name_servers=8.8.4.4

Y bueno… ahora os dejo un ratito que voy a ver que novedades hay en The Pirate Bay 😉

Imagen | Eric Constantineau (CC BY-NC 2.0)

18 pensamientos en “Cambiar DNS de forma manual en Linux

  1. Jason Soto

    Es Bueno mencionar, Que este archivo a veces llama su configuración de una utilidad, Ambiente, u otro achivo en alguna ubicación dependiendo de la distro.. lo que lleva a que esta configuración se sobreescriba mas adelante…. por eso hay que poner atención a las lineas donde indica de donde llama su config. y ahi colocar nuestra configuración personalizada.

    Responder
  2. D'Artagnan

    Si te leen los de Colea Del N, se puede formar un conflicto internacional.

    Responder
    1. tannhausser Autor

      En el caso de openSUSE que es mi distro pincipal no he tenido ese problema de que se sobreescriba (aunque si creó unos backups de seguridad del archivo viejo resolv.conf)

      Ahora que comentas lo de arch, lo acabo de probar en otro ordenador con manjaro y si tenía ese problema cada vez que reiniciaba, creo que debido al archivo resolvconf.conf que es el que maneja a resolv.conf

      La solución que he encontrado es cambiar la configuración directamente en este.

      Gracias por el enlace voy a hacer una breve actualización con ese dato en el post.

      Responder
  3. x-man

    Pues sí, …ya hace bastante tiempo que uso openDNS sobre todo para filtrar un poco de tanta porquería que hay en Internet, es que cuando tienes hij@s y empiezan a crecer es un problema, hoy en día hasta el inodoro se conecta a la Gran Web, XD …pero como siempre se aprende algo nuevo, no sabia que openDNS tuviera para IPv6 y como estoy pensando en habilitarla, pues va con los DNS de openDNS. Hace ya un tiempo que no uso Namebench y creo es hora de ver como van las cosas. 😉

    Gracias por compartir

    Responder
  4. Yoyo

    Lo que yo hago es, cambiar las DNS en el Gestor de Red, Network Manager en el caso de muchas distros, y en la propia configuración del Router

    De esta manera las DNS siempre se mantienen independientemente del archivo que se actualice.

    Saludos.

    Responder
    1. tannhausser Autor

      pero porque hacer las cosas fáciles pudiendo hacerlas difíciles 🙂

      Responder
    1. tannhausser Autor

      Tengo las maletas preparadas por si tengo que irme a Belice en cualquier momento…a lo John Mcafee xD

      Responder
  5. Jvare

    En Ubuntu cuando intentas editar /etc/resolv.conf, ya ves un mensaje que te indica que cualquier cambio que realices será sobreescrito.
    Pero se puede hacer el cambio abriendo la configuración de red, hay un botón en la parte inferior derecha que pone opciones, y hay que elegir la pestaña Ajuste de IPv4, y en Metodo si tenemos Automático DHCP cambiarlo por Solo direcciones automáticas DHCP, así podemos elegir el servidor de DNS en la parte inferior y ahí poner la dirección ip del que queramos utilizar.
    Por cierto en Ubuntu no he encontrado el fichero /etc/resolvconfig.conf, al menos en la versión que yo tengo instalada.

    Responder
  6. devnull

    Haz un chattr +i para volver inmutable resolv.conf y que no se pierda su configuración en cada reinicio.

    Responder
    1. tannhausser Autor

      @devnull Exacto! es la mejor solución, así lo tengo ahora con Antergos y sin problemas.

      Responder

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.