Làm cách nào để có được VirtualBox VM sử dụng DNS của máy chủ?


60

tôi sử dụng VirtualBox cho máy ảo của tôi. Thiết lập mạng văn phòng của tôi là không dây, tức là tôi kết nối với mạng WiFi của công ty tôi có DNS cục bộ để phân giải tên địa phương (chẳng hạn như một cái gì đó.mycompany.com đi đến 123,45,67,89). Khi tôi xây dựng một VM mới, nó có thể kết nối với internet bên ngoài kế thừa kết nối của máy chủ nhưng nó không giải quyết được tên địa phương bằng DNS cục bộ. Vì vậy tôi phải đi vào /etc/hosts trên VM và tự tạo một mục nhập sau khi tôi giải quyết tên trên máy chủ, điều này gây khó chịu.

Có cách nào để VirtualBox tự động kết nối khách với DNS của máy chủ để tôi không phải thực hiện bước thủ công này không? Chủ nhà của tôi là Sư tử núi OSX , máy ảo thường Ubuntu nhưng tôi nghi ngờ điều đó nên quan trọng

Câu trả lời:


89

Để kích hoạt Chế độ proxy DNS bằng trình phân giải của máy chủ , chạy lệnh sau:

VBoxManage modifyvm " & lt; VMname & gt;  "--natdnshostresolver1 trên 

Do đó, các yêu cầu DNS của hệ điều hành khách sẽ bị chặn và giải quyết bằng API DNS máy chủ, thay vì hệ điều hành khách kết nối với máy chủ DNS bên ngoài như với --natdnsproxy1 on.

Bạn có thể lấy tên của VM bằng cách chạy VBoxManage list runningvms.


8
Để biết thêm thông tin cho những người khác: điều này cần phải được chạy từ máy chủ lưu trữ. Nếu máy chủ của bạn là Windows, hãy mở Dấu nhắc lệnh, cd thành "C: \ Program Files \ Oracle \ VirtualBox" và chạy lệnh đó. Dường như không có bất kỳ tùy chọn nào trong GUI VirtualBox Manager (ít nhất là trong tất cả các phiên bản từ 4. * đến 5.0.20) cho phép bạn đặt cách này theo bất kỳ cách nào khác.
Graham

Tôi muốn thêm rằng bạn cần chạy lệnh này với tư cách quản trị viên. Tôi đã thử nó từ cmd của tôi và nó không hoạt động với tôi, nhưng sau đó tôi đã chạy cmd với tư cách quản trị viên và tất cả đều hoạt động rất tốt.
SergeyOvchinnik

3
Cái này dùng để làm việc với tôi, nhưng không phải với Ubuntu 16.04 và hộp ảo mới nhất cho Windows
Shanteva

Không làm việc cho tôi là tốt :(
Pavel Durov

1
Điều này vẫn hoạt động với MacOs High Sierra với tư cách là máy chủ lưu trữ, VirtualBox 5.2.6, chạy Windows 7 trong VM.
John Eikenberry

5

Vâng, nó là có thể. Có nhiều chế độ có sẵn trong VirtualBox để thiết lập kết nối mạng giữa khách và máy chủ. Thay vì sử dụng chế độ NAT (mặc định), bạn có thể sử dụng chế độ cầu trong đó máy khách của bạn có thể được coi là thực thể hoàn toàn riêng biệt trên mạng của bạn. Vì vậy, không chỉ máy chủ của bạn, mà bất kỳ máy nào khác (như máy chủ DNS của bạn) sẽ xem khách của bạn là một máy riêng biệt.

Sau khi bạn thiết lập chế độ cầu, chỉ cần truy cập vào máy khách ub Ubuntu của bạn và nhận nó để sử dụng tên máy chủ DNS hoặc ip của công ty bạn. Đọc hướng dẫn này để biết thêm: http://prahladyeri.wordpress.com/2012/08/02/how-to-setup-a-virtual-lan-on-your-machine-USE-oracle-virtualbox/


4

Đây là một kết quả hàng đầu của Google, vì vậy tôi muốn làm rõ cho những người khác. Giải pháp của Josiah đã làm việc cho tôi với việc thêm dòng:

"máy chủ: tập tin dns" tới /etc/nsswitch.conf

Như những người khác đã chỉ ra, giải pháp ban đầu không hoạt động trên Ubuntu 16.04. VM khách của tôi là Ubuntu 16.04.

Tài liệu tham khảo Tạo máy chủ Linux


2
Chào mừng bạn đến với Siêu người dùng! Bạn có thể đề xuất rằng như là một chỉnh sửa cho câu trả lời của Josiah, sẽ giúp những người tìm kiếm :)
bertieb

Cảm ơn vì tiền hỗ trợ! Tôi đã cố gắng chỉ thêm một nhận xét, nhưng nó không được phép. Tôi đã gửi bản chỉnh sửa thay thế.
pretzel11

1

Tôi cũng nhận thấy kết nối VPN của mình can thiệp vào kết nối internet mơ hồ.

Nhờ vào stackexchange này, tôi đã có thể giải quyết bằng cách nhúng vào Vagrantfile của mình

config.vm.provider "virtualbox" do |vb|
  vb.cpus = 1
  vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  vb.memory = "2048"
end

Và tránh sự nhàm chán của việc phải tắt hộp để sửa đổi thông qua dòng lệnh, sau đó phê duyệt lại

export PATH=$PATH:/c/Program\ Files/Oracle/VirtualBox/
VBoxManage list runningvms
export vbox=`VBoxManage list runningvms | cut -d '"' -f 2`
VBoxManage controlvm $vbox poweroff
VBoxManage modifyvm $vbox --natdnshostresolver1 on
vagrant.exe up --provision

-2

Không ai trong số này hoạt động với tôi với máy ảo Ubuntu 12.04 cũ. Vấn đề của tôi là với bộ điều hợp mạng chỉ dành cho máy chủ Windows 10 VirtualBox. Đặt DNS cho máy chủ DNS của Google trong Thuộc tính TCP / IPv4 đã khắc phục sự cố cho tôi. ( xem video và ảnh chụp màn hình đính kèm )

  1. Mở Bảng điều khiển Windows & gt; Trung tâm kết nối và chia sẻ
  2. Nhấp vào "Thay đổi cài đặt bộ điều hợp"
  3. Nhấp chuột phải vào biểu tượng "Mạng chỉ dành cho máy chủ VirtualBox"
  4. Chọn "Thuộc tính"
  5. Chọn "Giao thức Internet Phiên bản 4 (TCP / IPv4)
  6. Nhấp vào nút "Thuộc tính"
  7. Thêm máy chủ DNS ưa thích của bạn vào hộp
  8. Nhấp vào nút "OK"
  9. Nhấp vào nút "Đóng"

Thay đổi này được nhận ra trong VM của tôi sau khi khởi động lại VM, bạn cũng có thể ifdown / ifup mạng từ VM để kéo cài đặt DNS mới mà không cần khởi động lại VM.

Ảnh chụp màn hình các bước để thay đổi DNS TCP / IPv4 trong Windows 10

Quick Tweak (VirtualBox): Mất kết nối mạng do cấu hình DNS


Bạn hoàn toàn hiểu sai câu hỏi. Câu hỏi là về việc giải quyết các tên trong mạng LAN, không phải trên internet. Điều đó đã hoạt động như mong đợi và không cần thay đổi DNS.
GabrielaGarcia
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.