ใช้เซิร์ฟเวอร์ DNS DHCP คู่กับ VirtualBox


0

ฉันมี Mac ที่ฉันพัฒนาเว็บไซต์ ฉันได้ตั้งค่าโครงการของฉันให้สามารถเข้าถึงได้ตามที่อยู่เช่น project1.dev, project2.dev และอื่น ๆ ฉันรู้สึกเบื่อที่จะอัปเดตไฟล์ "/ etc / hosts" ของฉันดังนั้นฉันจึงติดตั้ง Dnsmasq มันใช้งานได้ดี! ตอนนี้ฉันสามารถเรียกใช้ping doesnotexist.devและรับการตอบกลับจาก 127.0.0.1 ซึ่งเป็นสิ่งที่ฉันต้องการ

Mac ยังมีเครื่องเสมือน Windows XP VirtualBox ติดตั้งอยู่ ฉันต้องการให้เครื่องเสมือนนั้นสามารถ ping doesnotexist.dev และรับการตอบกลับได้ แต่ฉันต้องการให้คำตอบนั้นมาจาก LAN IP ของ Mac แทน 127.0.0.1 ตามที่ผมเข้าใจมันนี้เป็นไปได้ด้วยคู่ DHCP เซิร์ฟเวอร์ ฉันติดตั้งบนเครื่องเสมือนและแก้ไขไฟล์ "DualServer.ini" ฉันเพียงแค่ไม่ใส่เครื่องหมายในบรรทัด "DNS" ของส่วน "[บริการ]" และเพิ่มลง*.dev=192.168.1.50ในส่วน "[บริการ]" แม้ว่ามันจะไม่ได้ผล ฉันเห็นชุดข้อความนี้และตัดสินใจติดตั้ง Microsoft Loopback Adapter แต่ฉันไม่รู้วิธีการกำหนดค่า ดังนั้นตอนนี้ฉันติดอยู่

ฉันจะตั้งค่าเซิร์ฟเวอร์ DNS DHCP คู่เพื่อให้การส่ง Ping ไม่ได้รับการตอบกลับจาก LAN IP ของ Mac ได้อย่างไร

คำตอบ:


0

คุณควรใช้พารามิเตอร์ของ dnsmasq จากเอกสารของ dnsmasq:

   -A, --address=/<domain>/[domain/]<ipaddr>
          Specify  an IP address to return for any host in the given domains.  Queries in the
          domains are never forwarded and always replied to with  the  specified  IP  address
          which  may  be IPv4 or IPv6. To give both IPv4 and IPv6 addresses for a domain, use
          repeated -A flags.  Note that /etc/hosts and DHCP leases override this for individ-
          ual names. A common use of this is to redirect the entire doubleclick.net domain to
          some friendly local web server to avoid banner ads. The domain specification  works
          in  the same was as for --server, with the additional facility that /#/ matches any
          domain. Thus --address=/#/1.2.3.4 will always return  1.2.3.4  for  any  query  not
          answered  from  /etc/hosts or DHCP and not sent to an upstream nameserver by a more
          specific --server directive.

ดังนั้นการเพิ่ม--address=/dev/192.168.1.50ลงในบรรทัดคำสั่ง dnsmasq หรือเพิ่มaddress=/dev/192.168.1.50ลงในไฟล์ปรับแต่งของ dnsmasq และการรีสตาร์ทควรทำตามขั้นตอน

นอกจากนี้หากคุณไม่สามารถเชื่อมต่อเครื่องเสมือน windows ของคุณกับ dnsmasq บน mac สำหรับเคียวรี dns ได้คุณสามารถลองทำซ้ำพฤติกรรมแบบเดียวกันในpDNSโดยใช้ wildcards ...


pDNS ดูง่ายกว่ามากสำหรับสิ่งที่ฉันพยายามทำดังนั้นฉันจึงลองทำและใช้งานได้! ฉันจะลงคะแนนให้คุณ แต่ฉันไม่มีชื่อเสียงมากพอ ฉันน่าจะยอมรับคำตอบของคุณและมอบรางวัลให้ แต่ตอนนี้ฉันจะขอหยุดในกรณีที่มีใครบางคนมาพร้อมกับคำตอบอื่นที่ดีกว่า แต่ฉันไม่เห็นวิธีที่ pDNS จะทำงานอย่างเงียบ ๆ ในพื้นหลัง ใช้งานด้วยการเริ่มซ่อนความคิดที่ไม่ดีหรือไม่?
Nick

คุณควรจะสามารถตั้งค่าเป็นบริการใน Windows XP
GnP

ฉันก็เห็นเช่นกัน แต่ฉันคิดว่าอาจเป็นรุ่นโปรหรืออาจเป็นโปรแกรมที่แตกต่างออกไปโดยสิ้นเชิง ทำงานpnds /?แสดงให้เห็นว่าสวิทช์เหล่านี้: /ns, /po, /ca, /noca, /resolveall, และ/ho /log
Nick

2

ภาพรวมของโซลูชันของฉัน

ฉันลงเอยด้วยการใช้pDNSตามที่ gnp แนะนำ นี่คือเนื้อหาทั้งหมดของไฟล์ hosts.txt ที่ฉันใช้:

192.168.1.50 *.dev

ฉันไม่ชอบที่ฉันจะต้องเปิดหน้าต่างคำสั่งเสมอดังนั้นฉันจึงติดตั้ง4t Tray Minimizerรุ่นฟรีให้เก็บคีย์ลัดเริ่มต้นของ Shift + Esc เพื่อลดแอปพลิเคชันที่ใช้งานอยู่ลงในถาด ฉันต้องการทำให้ส่วน Shift + Esc เป็นแบบอัตโนมัติดังนั้นฉันจึงเขียนสคริปต์ AutoIt ที่เรียกใช้ pDNS และย่อขนาดลงในถาดทันที สคริปต์ทำงานเมื่อ Windows เริ่มทำงาน

ขั้นตอนเฉพาะ

  1. ดาวน์โหลดและแตกไฟล์ pDNS ฉันเลือกที่จะวางไฟล์ที่แตกแล้วใน "C: \ Applications \ pDNS"
  2. แก้ไขไฟล์ hosts.txt ของ pDNS ทำให้ดูเหมือนว่าฉันมีอยู่ในภาพรวมของโซลูชันของฉัน
  3. ดาวน์โหลดและติดตั้ง 4t Tray Minimizer เวอร์ชันฟรี ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่อง "เรียกใช้ตัวเล็กสุดถาด 4t เมื่อเริ่มต้น Windows" ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่อง "ย่อเล็กสุดถึงถาด" และตั้งค่าคีย์ลัดเป็น "Shift + Esc" หากคุณต้องการเปลี่ยนปุ่มลัดคุณจะต้องเปลี่ยนสคริปต์ AutoIt ด้วย
  4. ดาวน์โหลดและติดตั้ง AutoIt เมื่อถูกขอให้เลือกตัวเลือกเริ่มต้นสำหรับไฟล์ * .au3 ให้แน่ใจว่าได้เลือกปุ่มตัวเลือก "เรียกใช้สคริปต์"
  5. ตั้งค่าเซิร์ฟเวอร์ DNS ที่คุณต้องการเป็น 127.0.0.1
  6. สร้างสคริปต์ AutoIt ต่อไปนี้ (ฉันเรียกว่า "pDNS.au3" ของฉัน) แล้ววางลงในโฟลเดอร์ "Startup" ของคุณ ("% APPDATA% \ Microsoft \ Windows \ Start Menu \ Programs \ Startup") อย่าลังเลที่จะเปลี่ยน OpenDNS IP เป็นอย่างอื่น

Run("C:\Applications\pDNS\pdns.exe /ns:208.67.222.222", "C:\Applications\pDNS")
WinWaitActive("C:\Applications\pDNS\pdns.exe")
Send("+{ESC}")

0

หากคุณใช้เซิร์ฟเวอร์ DNS ให้เชื่อมต่ออะแดปเตอร์เครือข่ายเสมือนของคุณใน Virtualbox (ตั้งค่าเป็น NAT ตามค่าเริ่มต้นซึ่งตรงข้ามกับสิ่งที่คุณต้องการ) และกำหนดค่า DNS ภายในของ VM ให้ชี้ไปที่เซิร์ฟเวอร์ของคุณ


จริง ๆ แล้วฉันได้ตั้งค่าการเชื่อมต่อ ปัญหาหนึ่งที่มีเพียงการชี้ DNS ภายในของ VM ไปยัง Mac คือ Mac จะตอบกลับด้วย 127.0.0.1 ซึ่งจะทำให้ VM คิดว่าเว็บไซต์นั้นโฮสต์อยู่ในตัวเองซึ่งไม่ถูกต้อง ฉันสามารถตอบกลับด้วย IP จริงของ LAN แทนที่จะเป็น 127.0.01 แต่ปัญหาคือ Mac เครื่องนี้เป็นแล็ปท็อปและฉันใช้กับสถานที่ของฉันบางครั้งดังนั้นที่อยู่ IP ของฉันจึงไม่ใช่ 192.168.1.50 เสมอ ฉันต้องการเพียงแค่เปลี่ยน IP ในที่เดียวเมื่อฉันไปที่ไหนสักแห่งและฉันคิดว่ามันจะอยู่ในไฟล์ "DualServer.ini"
Nick

อืมม โปรดทราบว่าคุณใช้เซิร์ฟเวอร์และการปฏิบัติมาตรฐานในการใช้ที่อยู่คงที่ ส่วนเกี่ยวกับ mac ของคุณที่ตอบกลับ VM ของคุณด้วย 127.0.0.1 นั้นค่อนข้างสับสน เอาต์พุตบน VM เมื่อคุณ ping Mac ของคุณด้วยชื่อโฮสต์คืออะไร
Scandalist

Dnsmasq (สำหรับเครื่อง Mac) ได้รับการกำหนดค่าให้บอกว่าที่อยู่สำหรับทุกอย่างที่คุณต้องการได้คือ 127.0.0.1 เมื่อฉันใช้ Mac และฉัน ping foo.dev Dnsmasq รายงานว่าที่อยู่ IP คือ 127.0.0.1 ซึ่งเกิดขึ้นว่าถูกต้องสำหรับ Mac แต่ถ้า VM ใช้ Mac สำหรับ DNS การส่ง Ping จะ foo.dev ตามปกติจะทำให้ Dnsmasq รายงานว่าที่อยู่ IP เป็น 127.0.0.1 ดังนั้นถ้าฉันไป foo.dev ในเบราว์เซอร์บน VM, VM จะคาดหวังว่า foo.dev โฮสต์อยู่ในตัวเอง (เนื่องจากเป็นสิ่งที่ Dnsmasq รายงาน) แต่นั่นไม่ถูกต้อง คุณรู้วิธีกำหนดค่าเซิร์ฟเวอร์ DNS คู่ DHCP ให้ทำสิ่งที่ฉันต้องการหรือไม่?
Nick

คุณจะต้องกำหนดค่า dnsmasq ให้ชี้ foo.dev ไปยังที่อยู่ IP วิธีนี้เมื่อคุณพิมพ์ foo.dev ลงในเบราว์เซอร์ VM มันจะจับคู่กับเซิร์ฟเวอร์บนโฮสต์ เมื่อคุณนำแล็ปท็อปไปยังที่อื่นคุณจะต้องปล่อยที่อยู่นี้ อีกทางเลือกหนึ่งในเครือข่ายภายในบ้านของคุณคุณสามารถตั้งค่าเราเตอร์ของคุณเพื่อให้เซิร์ฟเวอร์ของคุณได้รับที่อยู่เดียวกันเสมอ
Scandalist

เราเตอร์ของฉันถูกตั้งค่าให้ IP ที่อยู่ IP 192.168.1.50 เสมอ สิ่งคือถ้าฉันใช้ Mac ที่ไหนสักแห่งฉันจะต้องกำหนดค่า Dnsmasq ใหม่ (ซึ่งอาจต้องรีสตาร์ท แต่ฉันไม่แน่ใจเกี่ยวกับเรื่องนั้น) และอัปเดตที่อยู่ DNS ของ VM นั่นคือสถานที่สองแห่งในการเปลี่ยน IP ซึ่งอาจต้องมีการรีสตาร์ท หากฉันสามารถกำหนดค่าเซิร์ฟเวอร์ DNS DHCP คู่ได้อย่างถูกต้องฉันจะต้องอัปเดตที่อยู่ IP ในที่เดียวเท่านั้น
Nick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.