Ho letto tutte le risposte che posso trovare sull'impostazione di dnsmasq come server DNS locale per lo sviluppo. Ma non posso farlo funzionare per il mio caso. La maggior parte là fuori desidera che 127.0.0.1 sia risolto per i nomi nel dominio .dev.
Nel mio caso ho una macchina virtuale VirtualBox con Windows nel mio MacBook Air. Questo Windows esegue SQL server Express. È configurato con due interfacce - un bridge di rete - per condividere l'interfaccia wifi esterna ed essere un peer sulla mia rete locale quando sono in linea. Ho anche VirtualBox impostato su una rete host-only
. Il subbnet è 192.168.56.0/24 con il mio Mac .1 e la macchina virtuale Windows .2.
dnsmasq in esecuzione su MacBook supporta questo e, da una prospettiva Windows, fa tutto perfettamente, in linea e fuori. Usando la sua capacità di assegnare domini completi a un indirizzo fornisce .rab a 192.168.56.1 e .tig a 192.168.56.2
Sul Mac stesso sto sviluppando un'applicazione nodejs, che è un server web (quindi ha bisogno di un nome di dominio - diciamo abc.rab - il mio Mac si chiama Rabbit) e per accedere al database della macchina Windows (chiamato abc. tig - La macchina Windows è chiamata Tigger). Qui le cose non sembrano funzionare.
Ho scritto un piccolo programma nodejs per testare la ricerca DNS
'use strict';
const dns = require('dns');
dns.lookup('abc.tig',(err,add,family) =>{
console.log('addresses:',add);
});
e non riesce a trovare l'indirizzo. Eppure sul terminale questa ricerca DNS funziona
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$
In un browser web abc.rab mi dice anche che non riesce a trovare il nome del dominio.
Come ho detto, avevo impostato dnsmasq per l'esecuzione su tutte le interfacce. Nelle proprietà di rete per la mia interfaccia Wi-Fi ho impostato i nameserver come 127.0.0.1 e 8.8.8.8
In / etc / resolver ho creato un file chiamato letteralmente "qualunque cosa" (la risposta che ho letto su questo non chiarisce se è stato letteralmente chiamato così o era solo un esempio) con
nameserver 127.0.0.1
domain .
in esso
Ovviamente ci sono due processi di risoluzione dei nomi in atto. Il mDNSResponder e il dnsmasq sono entrambi mostrati in esecuzione nel mio pannello delle attività. Presumo che vengano usati diversi dal terminale e dalla mia applicazione
Che cosa sto facendo male qui? (scrivendo e testando questo sono attualmente online)
(PS Ho una configurazione simile che funziona sulla mia macchina per lo sviluppo domestico che esegue linux perfettamente funzionante - voglio solo essere in grado di sviluppare in movimento).