He leído todas las respuestas que puedo encontrar acerca de la configuración de dnsmasq como un servidor DNS local para el desarrollo. Pero no puedo hacer que funcione para mi caso. La mayoría de los usuarios quieren que 127.0.0.1 se resuelva para los nombres en el dominio .dev.
En mi caso, tengo una máquina virtual VirtualBox que ejecuta Windows en mi MacBook Air. Este Windows ejecuta SQL Server Express. Se configura con dos interfaces, un puente de red, para compartir la interfaz wifi externa y ser un igual en mi red local cuando estoy en línea. También tengo VirtualBox configurado una red host-only
. La red secundaria es 192.168.56.0/24, con mi Mac siendo .1 y la máquina virtual de Windows siendo .2.
dnsmasq que se ejecuta en el MacBook es compatible con esto y desde una perspectiva de Windows hace todo perfectamente, en línea y apagado. Usando su capacidad para asignar dominios completos, una dirección le da .rab a 192.168.56.1 y .tig a 192.168.56.2
En la propia Mac, estoy desarrollando una aplicación nodejs, que es un servidor web (por lo que necesita un nombre de dominio, digamos abc.rab, mi Mac se llama Rabbit) y para acceder a la base de datos de la máquina de Windows (llamada abc. tig - la máquina de Windows se llama Tigger). Aquí las cosas no parecen funcionar.
Escribí un pequeño programa de nodejs para probar la búsqueda de DNS
'use strict';
const dns = require('dns');
dns.lookup('abc.tig',(err,add,family) =>{
console.log('addresses:',add);
});
y no puede encontrar la dirección. Sin embargo, en la terminal esta búsqueda de DNS funciona
alan@rabbit:~/Documents$nslookup abc.tig
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: abc.tig
Address: 192.168.56.2
alan@rabbit:~/Documents$
En un navegador web, abc.rab también me dice que no puede encontrar el nombre de dominio.
Como dije, había configurado dnsmasq para ejecutarse en todas las interfaces. En las propiedades de red de mi interfaz Wi-Fi, he configurado los servidores de nombres como 127.0.0.1 y 8.8.8.8
En / etc / resolver, creé un archivo llamado literalmente 'lo que sea' (la respuesta que leí sobre esto no dejó claro si literalmente tenía que llamarse así o solo era un ejemplo) con
nameserver 127.0.0.1
domain .
en ella
Obviamente hay dos procesos de resolución de nombres implementados. El mDNSResponder y dnsmasq se muestran ejecutándose en mi panel de actividades. Supongo que el terminal y mi aplicación están utilizando otros diferentes
¿Qué estoy haciendo mal aquí? (Escribiendo y probando esto estoy actualmente en línea)
(PS: Tengo una configuración similar que funciona en mi máquina de desarrollo doméstico con Linux funcionando perfectamente, solo quiero poder desarrollarlo sobre la marcha).