Ejecución de MacOX Sierra en el MacBook Pro, y la configuración local del entorno dev con nginx como servidor web, pero tengo un problema.
Lo que quiero hacer
- Usar dnsmasq como el servidor dns local que devuelve
127.0.0.1
como host para el dominio comodín*.develop
(como .dev ahora enfrentamientos con ICANN). - Adelante sin resolver algún tipo de peticiones a servidores DNS proporcionado por DHCP cada vez que me conecto a una red, de modo que yo pueda resolver todos los demás nombres de host (internos y externos.)
Condiciones y restricciones
- Me muevo entre las redes. Mi casa DHCP de la red es el servidor DNS como
192.168.1.1
, pero mi trabajo DHCP da a mi DNS como10.128.x.x
- La red de la empresa con la
10.128.x.x
DNS, también establece unsearch domain
para las direcciones internas. - Estoy en China, por lo que sólo la creación de un grupo de servidores DNS públicos como
Google or OpenDNS
así como127.0.0.1
pueda funcionar bien, pero son internacionales y obtener limitada por la GFW.
Lo que he hecho hasta ahora
- He instalado
nginx
ydnsmasq
uso dehomebrew
. - Los servicios que se ejecutan usando
sudo brew services start xxx
. )Esto es para que yo pueda correr nginx enport 80
e noport 8080
.) - Set
dnsmasq
directivaaddress=/.develop/127.0.0.1
- Puedo comprobar que
dnsmasq
obras, mediante el uso dedig
:
dig testing.testing.one.two.three.develop @127.0.0.1
; <<>> DiG 9.8.3-P1 <<>> testing.testing.one.two.three.develop @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46013
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;testing.testing.one.two.three.develop. IN A
;; ANSWER SECTION:
testing.testing.one.two.three.develop. 0 IN A 127.0.0.1
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Jun 20 12:04:44 2017
;; MSG SIZE rcvd: 71
- Configuración del servidor DNS a
127.0.0.1
enNetwork Preferences
no trabajo y puedo 'ping' esto es:
Ejemplo de Ping:
ping -c 1 this.is.a.test.develop
PING this.is.a.test.develop (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.036 ms
--- this.is.a.test.develop ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.036/0.036/0.036/0.000 ms
pero entonces no hay servicios externos están disponibles porque el DNS sólo disponible es mi dnsmasq en 127.0.0.1
El problema
- Parece que la solución más sencilla sería sólo para agregar
127.0.0.1
+192.168.0.1
a mi DNS del adaptador de red de la lista. Que trabaja en su casa, pero no en la localización corporativa - Agregar el corporativas
10.128.x.x
sería, obviamente, el trabajo en la oficina, pero no en casa -
So add both corporate and home DNS to the list?
Esto podría romper cualquier otro wifi/ethernet conexiones porque yo no iba a levantar sus DHCP servidor DNS - No me acaba de agregar servidores DNS públicos (como Google o Abrir DNS, porque estoy en China. Necesito tener el DHCP suministrado, como el DNS público es muy lento en China)
Me gustaría saber como otros han resuelto lo que parece un caso muy frecuente de instalación, pero estoy teniendo problemas.
Ya he mirado dos preguntas separadas sobre intercambio de la pila que tienen problemas similares , pero no idénticos. Las preguntas que se adjunta a la parte inferior de esta pregunta [1], [2]. Lo que estas preguntas muestran que en macOS, /etc/resolve.conf
tiene este aviso:
en el encabezado
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
Esto sugiere que las modificaciones no se puede leer a partir de este archivo, y otras respuestas de las preguntas sugerir que los archivos en /etc/resolver/*
también no se puede leer
Por lo tanto, mi pregunta real es: ¿hay alguna manera de hacerlo:
- Utilice siempre 127.0.0.1 primera
- Si no se encuentra el uso de DNS dinámico de lo DHCP da
¿Por qué no simplemente usar hosts?
Porque la idea de tener un *.desarrollar dominio y, a continuación, sólo la adición de un sitio que utiliza expresiones regulares para resolver dinámicamente sitios locales es muy atractivo!
es decir, some-sub-domain.develop
-> /Users/myuser/www/some-sub-domain/
[1] dnsmasq no funciona en Mac OS Sierra
[2] https://serverfault.com/questions/478534/how-is-dns-lookup-configured-for-osx-mountain-lion