Sử dụng máy chủ DNS DHCP kép với VirtualBox


0

Tôi có một máy Mac mà tôi phát triển web. Tôi có các dự án của mình được thiết lập để có thể truy cập tại các địa chỉ như project1.dev, project2.dev, v.v. Tôi cảm thấy mệt mỏi khi cập nhật tệp "/ etc / hosts" của mình, vì vậy tôi đã cài đặt Dnsmasq. Nó hoạt động rất tốt! Bây giờ tôi có thể chạy ping doesnotexist.devvà nhận trả lời từ 127.0.0.1, đó chính xác là những gì tôi muốn.

Mac cũng có một máy ảo Windows XP VirtualBox được cài đặt trên nó. Tôi muốn máy ảo đó cũng có thể ping donotexist.dev và nhận được trả lời, nhưng tôi muốn các phản hồi đến từ IP LAN của Mac thay vì 127.0.0.1. Theo tôi hiểu, điều này là có thể với Dual DHCP DNS Server . Tôi đã cài đặt nó trên máy ảo và chỉnh sửa tệp "DualServer.ini". Tôi chỉ đơn giản bỏ ghi chú dòng "DNS" của phần "[DỊCH VỤ]" và thêm *.dev=192.168.1.50vào phần "[DỊCH VỤ]". Điều đó đã không làm việc, mặc dù. Tôi đã thấy chủ đề này và quyết định cài đặt Bộ điều hợp Microsoft Loopback, nhưng tôi không biết cách cấu hình nó. Vì vậy, bây giờ tôi đang bị mắc kẹt.

Làm cách nào để tôi thiết lập Máy chủ DNS DHCP kép sao cho ping không chú ý nhận được trả lời từ IP LAN của Mac?

Câu trả lời:


0

Bạn nên sử dụng tham số của dnsmasq -A. Từ tài liệu của 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.

Vì vậy, hoặc thêm --address=/dev/192.168.1.50vào dòng lệnh dnsmasq hoặc thêm address=/dev/192.168.1.50vào tập tin cấu hình của dnsmasq và khởi động lại sẽ thực hiện thủ thuật.

Ngoài ra, nếu bạn không thể có máy ảo windows kết nối với dnsmasq trên mac cho các truy vấn dns, bạn có thể thử sao chép hành vi tương tự trên pDNS bằng cách sử dụng ký tự đại diện ...


pDNS trông đơn giản hơn nhiều cho những gì tôi đang cố gắng thực hiện, vì vậy tôi đã thử nó và nó đã hoạt động! Tôi sẽ bỏ phiếu cho bạn, nhưng tôi không có uy tín đủ cao. Tôi có thể sẽ chấp nhận câu trả lời của bạn và trao tiền thưởng, nhưng bây giờ tôi sẽ giữ lại trong trường hợp ai đó đưa ra một số câu trả lời khác tốt hơn. Mặc dù vậy, tôi không thấy cách nào để pDNS chạy âm thầm trong nền. Có phải chạy nó với Hidden Start là một ý tưởng tồi?
Nick

Bạn sẽ có thể thiết lập nó như một dịch vụ trên Windows XP.
GnP

Tôi cũng thấy vậy, nhưng tôi nghĩ rằng đó có thể là phiên bản pro hoặc có lẽ là một chương trình hoàn toàn khác. Chạy pnds /?cho thấy những công tắc: /ns, /po, /ca, /noca, /resolveall, /ho, và /log.
Nick

2

Tổng quan về giải pháp của tôi

Tôi đã kết thúc bằng pDNS , theo đề xuất của gnp. Đây là toàn bộ nội dung của tệp hosts.txt mà tôi đã sử dụng:

192.168.1.50 *.dev

Mặc dù vậy, tôi không cần phải luôn mở cửa sổ lệnh, vì vậy tôi đã cài đặt phiên bản miễn phí của Bộ thu nhỏ khay 4t , giữ phím nóng mặc định của Shift + Esc để thu nhỏ ứng dụng đang hoạt động vào khay. Tôi muốn tự động hóa phần Shift + Esc, vì vậy tôi đã viết một tập lệnh AutoIt chạy pDNS và ngay lập tức thu nhỏ nó vào khay. Kịch bản chạy khi Windows khởi động.

Các bước cụ thể

  1. Tải xuống và giải nén pDNS. Tôi đã chọn đặt các tệp được giải nén vào "C: \ Application \ pDNS".
  2. Chỉnh sửa tệp hosts.txt của pDNS, làm cho nó trông giống như những gì tôi có trong tổng quan về giải pháp của mình.
  3. Tải xuống và cài đặt phiên bản miễn phí của Bộ thu nhỏ khay 4t. Đảm bảo giữ hộp kiểm "Khởi chạy tối thiểu khay 4t khi khởi động Windows". Ngoài ra, hãy đảm bảo giữ hộp kiểm "Thu nhỏ vào khay" và phím nóng được đặt thành "Shift + Esc". Nếu bạn muốn thay đổi phím nóng, bạn cũng phải thay đổi tập lệnh AutoIt.
  4. Tải xuống và cài đặt AutoIt. Khi được yêu cầu chọn tùy chọn mặc định cho các tệp * .au3, hãy đảm bảo giữ nút radio "Chạy tập lệnh".
  5. Đặt máy chủ DNS ưa thích của bạn thành 127.0.0.1.
  6. Tạo tập lệnh AutoIt sau (Tôi gọi là "pDNS.au3") và đặt nó vào thư mục "Khởi động" ("% APPDATA% \ Microsoft \ Windows \ Start Menu \ Programs \ Startup"). Hãy thoải mái thay thế IP OpenDNS bằng một cái gì đó khác.

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

0

Nếu bạn đang chạy máy chủ DNS, thì chỉ cần kết nối bộ điều hợp mạng ảo của bạn trong Virtualbox (Theo mặc định, nó được đặt thành NAT trái ngược với những gì bạn cần) và định cấu hình DNS bên trong của VM để trỏ đến máy chủ của bạn.


Tôi thực sự đã có nó được thiết lập để được bắc cầu. Một vấn đề khi chỉ trỏ DNS nội bộ của VM vào máy Mac là Mac sẽ trả lời với 127.0.0.1, điều này sẽ khiến VM nghĩ rằng các trang web được lưu trữ trên chính nó, điều đó không đúng. Tôi có thể làm cho nó trả lời bằng IP LAN thực tế của nó thay vì 127.0.01, nhưng vấn đề là máy Mac này là máy tính xách tay và đôi khi tôi mang nó theo địa chỉ, vì vậy địa chỉ IP của tôi không phải lúc nào cũng là 192.168.1.50. Tôi chỉ muốn thay đổi IP ở một nơi khi tôi đi đâu đó và tôi tưởng tượng đó sẽ nằm trong tệp "DualServer.ini".
Nick

hừm Hãy nhớ rằng bạn đang chạy một máy chủ và thực hành tiêu chuẩn của nó để sử dụng địa chỉ tĩnh. Phần về mac của bạn trả lời VM của bạn với 127.0.0.1 hơi khó hiểu. Đầu ra trên VM là gì khi bạn ping máy Mac của mình theo tên máy chủ?
Người bê bối

Dnsmasq (trên Mac) được cấu hình để nói rằng địa chỉ cho mọi thứ-you-want.dev là 127.0.0.1. Khi tôi ở trên Mac và tôi ping foo.dev, Dnsmasq báo cáo rằng địa chỉ IP là 127.0.0.1, điều này đúng với Mac. Nhưng nếu VM đang sử dụng Mac cho DNS, việc ping foo.dev, như thường lệ, sẽ khiến Dnsmasq báo cáo rằng địa chỉ IP là 127.0.0.1. Vì vậy, nếu tôi truy cập foo.dev trong trình duyệt trên VM, VM sẽ mong rằng foo.dev được lưu trữ trên chính nó (vì đó là những gì Dnsmasq đã báo cáo), nhưng điều đó không chính xác. Bạn có biết cách định cấu hình Máy chủ DNS DHCP kép để làm những gì tôi muốn không?
Nick

Bạn sẽ cần định cấu hình dnsmasq để trỏ foo.dev đến địa chỉ IP của nó. Theo cách này khi bạn nhập foo.dev vào trình duyệt VM, nó sẽ ánh xạ tới máy chủ trên máy chủ. Khi bạn mang máy tính xách tay của bạn đến một địa điểm khác, bạn sẽ cần phải phát hành địa chỉ này. Ngoài ra, trên mạng gia đình của bạn, bạn có thể thiết lập bộ định tuyến của mình để máy chủ của bạn luôn có cùng địa chỉ
Người gây xôn xao

Bộ định tuyến của tôi được thiết lập để luôn cung cấp cho Mac địa chỉ IP 192.168.1.50. Vấn đề là, nếu tôi mang Mac đi đâu đó, tôi sẽ phải cấu hình lại Dnsmasq (có thể yêu cầu khởi động lại, nhưng tôi không chắc về điều đó) cập nhật địa chỉ DNS của VM. Đó là hai nơi để thay đổi IP, có thể yêu cầu khởi động lại. Nếu tôi có thể cấu hình Máy chủ DNS DHCP kép đúng cách thì tôi sẽ chỉ phải cập nhật địa chỉ IP ở một nơi.
Nick
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.