Vagrant / VirtualBox DNS 10.0.2.3 không hoạt động


78

Tôi đang chạy bản cài đặt Linux Mint Nadia mới (14). Tôi đang làm theo hướng dẫn về Vagrant Bắt đầu nhưng đã bị kẹt trong Cung cấp . Có vẻ như hộp Vagrant không thể kết nối bên ngoài và vì vậy tôi không thể cài đặt bất cứ thứ gì bằng cách sử dụng Chef hoặc Puppet.

Trong Vagrant cơ bản resolve.confcó chứa nameserver 10.0.2.3. Nhưng với bộ đó tôi không thể ping được us.archive.ubuntu.com.

Nếu tôi thay đổi thành 8.8.8.8thì tôi có thể ping us.archive.ubuntu.comnhưng nó không được đặt và sau khi khởi động lại, nó sẽ thay đổi trở lại 10.0.2.3- vì vậy việc cung cấp lại thất bại.

Lý tưởng nhất là tôi muốn 10.0.2.3làm việc trên thiết lập của tôi. Không muốn tôi thay đổi vĩnh viễn resolv.confđể tôi có thể cung cấp.


2
FYI mà tôi vừa gặp vấn đề tương tự với chiếc ubuntu/xenial64hộp, và hóa ra đó là một lỗi với chính chiếc hộp .
Aidan Feldman

@AidanFeldman giống tôi. Chỉ cần chuyển sang bento/ubuntu-16.04và DNS hoạt động tốt mà không cần sửa chữa thêm.
HenningCash

Câu trả lời:


84

Bạn có thể giải quyết vấn đề này theo một trong hai cách, cả hai cách đều nằm trong hướng dẫn VirtualBox :

Kích hoạt proxy DNS ở chế độ NAT

Công cụ NAT theo mặc định cung cấp cùng một máy chủ DNS cho khách được định cấu hình trên máy chủ. Trong một số trường hợp, có thể muốn ẩn IP máy chủ DNS khỏi máy khách, ví dụ như khi thông tin này có thể thay đổi trên máy chủ do hết hạn thuê DHCP. Trong trường hợp này, bạn có thể yêu cầu công cụ NAT hoạt động như proxy DNS bằng lệnh sau:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

Sử dụng trình phân giải của máy chủ làm proxy DNS ở chế độ NAT

Để giải quyết tên mạng, máy chủ DHCP của công cụ NAT cung cấp danh sách các máy chủ DNS đã đăng ký của máy chủ. Nếu vì một lý do nào đó, bạn cần ẩn danh sách máy chủ DNS này và sử dụng cài đặt trình phân giải của máy chủ, do đó buộc công cụ VirtualBox NAT chặn các yêu cầu DNS và chuyển tiếp chúng tới trình phân giải của máy chủ, hãy sử dụng lệnh sau:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Lưu ý rằng cài đặt này tương tự như chế độ proxy DNS, tuy nhiên trong khi chế độ proxy chỉ chuyển tiếp các yêu cầu DNS đến các máy chủ phù hợp, chế độ trình phân giải sẽ diễn giải các yêu cầu DNS và sử dụng API DNS của máy chủ để truy vấn thông tin và trả lại cho khách .


1
Cảm ơn bạn. "Sử dụng trình phân giải của máy chủ làm proxy DNS ở chế độ NAT" đã thực hiện thủ thuật này. Thật đáng tiếc tôi phải làm điều này cho mỗi lần cài đặt Vagrant.
Rudolf Vavruch

1
Tôi hầu như luôn sử dụng chế độ bắc cầu cho máy ảo, giúp loại bỏ vấn đề (và toàn bộ các vấn đề khác).
Michael Hampton

3
Chỉ có vấn đề với việc nâng cấp lên 4.2.20, "Sử dụng trình phân giải của máy chủ làm proxy DNS ở chế độ NAT" cũng là một mẹo nhỏ đối với tôi. Cám ơn !
edomaur

73

Theo dõi trên https://serverfault.com/a/453260/14832 , nếu bạn đang sử dụng định dạng cấu hình Vagrantfile phiên bản 2, phiên bản bắt đầu:

Vagrant.configure("2") do |config|

Sau đó, bạn có thể muốn thêm tệp này vào tệp cấu hình đó:

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

Nếu bạn đang sử dụng định dạng cấu hình cũ, nhưng đang sử dụng Vagrant 1.1+, bạn có thể nối thêm phần này vào cuối tệp:

Vagrant.configure("2") do |config|
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end

2
Thêm điều này vào đã Vagrantfilekhắc phục sự cố mà tôi không thể chạy gem install...mà không gặp lỗi DNS ngớ ngẩn :) Cảm ơn!
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.