Я використовую DNSMasq як локальний DNS-сервер, тому я можу вирішити *.local.pcfdev.io
(як обговорювалося тут, використовуючи PCF Dev Offline з Mac OS X ). Все спрацювало, коли я вперше налаштував речі.
Через пару днів, після кількох перезавантажень мого MacBook, в режимі офлайн я більше не можу вирішувати такі речі, як api.local.pcfdev.io
використання curl
або ping
. Однак dig
робить правильно.
$ dig api.local.pcfdev.io
; <<>> DiG 9.8.3-P1 <<>> api.local.pcfdev.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46877
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;api.local.pcfdev.io. IN A
;; ANSWER SECTION:
api.local.pcfdev.io. 0 IN A 192.168.11.11
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Sep 6 10:17:44 2016
;; MSG SIZE rcvd: 53
$ curl api.local.pcfdev.io
curl: (6) Could not resolve host: api.local.pcfdev.io
Я спробував , додавши в -AlwaysAppendSearchDomains
якості аргументу /usr/sbin/mDNSResponder
в /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
і перезапустив mDNSResponder з launchctl
, але безрезультатно.
ОНОВЛЕННЯ 1
У правильному локальному IP-адресі напевно є щось прослуховування:
$ nslookup api.local.pcfdev.io
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: api.local.pcfdev.io
Address: 192.168.11.11
$ ping api.local.pcfdev.io
ping: cannot resolve api.local.pcfdev.io: Unknown host
$ telnet 192.168.11.11 80
Trying 192.168.11.11...
Connected to 192.168.11.11.
Escape character is '^]'.
HTTP/1.1 400 Bad Request
Connection closed by foreign host.
ОНОВЛЕННЯ 2
Спробувавши запропоновану нижче пропозицію про видалення всіх серверів DNS з мережевих налаштувань, за винятком 127.0.0.1
, я нічого не можу вирішити. Мені вдалося вийти з виправлення помилок mDNSResponder
:
mDNSResponder[91]: 74: DNSServiceCreateConnection START PID[32612](ping)
mDNSResponder[91]: 74: Error socket 75 created 00000000 00000001
mDNSResponder[91]: 74: DNSServiceQueryRecord(15000, 0, api.local.pcfdev.io., Addr) START PID[32612]()
mDNSResponder[91]: 74: Error socket 75 closed 00000000 00000001 (0)
mDNSResponder[91]: 74: DNSServiceQueryRecord(api.local.pcfdev.io., Addr) ADD 0 api.local.pcfdev.io. Addr
mDNSResponder[91]: 74: Cancel 00000000 00000001
mDNSResponder[91]: 74: DNSServiceQueryRecord(api.local.pcfdev.io., Addr) STOP PID[32612]()
mDNSResponder[91]: 74: DNSServiceCreateConnection STOP PID[32612](ping)
Я також зауважував, що, як пояснено у запропонованій відповіді, nslookup
і dig
не спричиняє що-небудь реєструватись mDNSResponder
, але інші інструменти ( ping
, curl
) роблять.
Тож здається, що з будь-якої причини або dnsmasq
не працює (я можу встановити TCP-з'єднання 127.0.0.1:53
), або mDNSResponder
не використовує його.
ОНОВЛЕННЯ 3
etc/resolve.conf
перестає існувати, коли мій адаптер wifi активний, але я не підключений до мережі. Чи може це бути, чому інструменти CLI не використовують локальний dnsmasq
сервер?
curl
або wget
або отримати їх в інструменти / Профілювальники / відладчик і подивитися , що на насправді відбувається , щоб викликати не може дозволити помилку.