ฉันใช้ DNSMasq เป็นเซิร์ฟเวอร์ DNS ในตัวเครื่องดังนั้นฉันจึงสามารถแก้ไขได้*.local.pcfdev.io
(ดังที่กล่าวไว้ที่นี่การใช้ PCF Dev ออฟไลน์กับ 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
และเริ่ม mDNSR ตอบกลับด้วย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
หยุดอยู่เมื่ออะแดปเตอร์ไร้สายของฉันทำงาน แต่ฉันไม่ได้เชื่อมต่อกับเครือข่าย นี่อาจเป็นสาเหตุที่เครื่องมือของ CLI ไม่ใช้dnsmasq
เซิร์ฟเวอร์ภายใน
curl
หรือwget
หรือได้รับพวกเขาในตราสาร / Profiler / ดีบักและดูสิ่งที่เกิดขึ้นจริงจะทำให้เกิดข้อผิดพลาดที่ไม่สามารถแก้ปัญหา