Vagrant / VirtualBox DNS 10.0.2.3 tidak berfungsi

78

Saya menjalankan instalasi baru Linux Mint Nadia (14). Saya mengikuti instruksi tentang Memulai Vagrant tetapi terjebak dalam Ketentuan . Tampaknya kotak Vagrant tidak dapat terhubung ke luar dan jadi saya tidak dapat menginstal apa pun menggunakan Chef atau Wayang.

Di dasar Vagrant resolve.confberisi nameserver 10.0.2.3. Tetapi dengan set itu saya tidak bisa melakukan ping us.archive.ubuntu.com.

Jika saya mengubahnya 8.8.8.8maka saya bisa ping us.archive.ubuntu.comtetapi tidak tetap, dan setelah reboot itu berubah kembali ke 10.0.2.3- jadi ketentuan gagal lagi.

Idealnya saya ingin 10.0.2.3bekerja pada pengaturan saya. Gagal bahwa saya ingin cara untuk berubah secara permanen resolv.confsehingga saya bisa melakukan penyediaan.

Rudolf Vavruch
sumber
2
FYI bahwa saya baru saja mengenai masalah yang sama dengan ubuntu/xenial64kotak, dan ternyata menjadi bug dengan kotak itu sendiri .
Aidan Feldman
@AidanFeldman sama untuk saya. Baru saja beralih ke bento/ubuntu-16.04dan DNS berfungsi dengan baik tanpa perbaikan lebih lanjut.
HenningCash

Jawaban:

84

Anda dapat mengatasi masalah ini dalam salah satu dari dua cara, yang keduanya ada di manual VirtualBox :

Mengaktifkan proksi DNS dalam mode NAT

Mesin NAT secara default menawarkan server DNS yang sama kepada tamu yang dikonfigurasi pada host. Dalam beberapa skenario, dapat diinginkan untuk menyembunyikan IP server DNS dari tamu, misalnya ketika informasi ini dapat berubah pada host karena berakhirnya penyewaan DHCP. Dalam hal ini, Anda dapat memberi tahu mesin NAT untuk bertindak sebagai proksi DNS menggunakan perintah berikut:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

Menggunakan resolver host sebagai proksi DNS dalam mode NAT

Untuk menyelesaikan nama jaringan, server DHCP dari mesin NAT menawarkan daftar server DNS terdaftar dari host. Jika karena alasan tertentu Anda perlu menyembunyikan daftar server DNS ini dan menggunakan pengaturan resolver host, sehingga memaksa mesin VirtualBox NAT untuk mencegat permintaan DNS dan meneruskannya ke resolver host, gunakan perintah berikut:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

Perhatikan bahwa pengaturan ini mirip dengan mode proksi DNS, namun ketika mode proksi hanya meneruskan permintaan DNS ke server yang sesuai, mode resolver akan menginterpretasikan permintaan DNS dan menggunakan API DNS host untuk menanyakan informasi dan mengembalikannya ke tamu .

Michael Hampton
sumber
1
Terima kasih. "Menggunakan resolver host sebagai proksi DNS dalam mode NAT" berhasil. Sayang sekali saya harus melakukan ini untuk setiap instalasi Vagrant.
Rudolf Vavruch
1
Saya hampir selalu menggunakan mode bridged untuk VM, yang menghilangkan masalah (dan seluruh masalah lainnya).
Michael Hampton
3
Baru saja mengalami masalah dengan upgrade ke 4.2.20, "Menggunakan resolver host sebagai proksi DNS dalam mode NAT" melakukan trik untuk saya juga. Terima kasih !
edomaur
73

Menindaklanjuti https://serverfault.com/a/453260/14832 , jika Anda menggunakan format konfigurasi Vagrantfile versi 2, yang dimulai:

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

Maka Anda mungkin ingin menambahkan ini ke file konfigurasi itu:

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

Jika Anda menggunakan format konfigurasi lama, tetapi menggunakan Vagrant 1.1+, Anda dapat menambahkan ini di akhir file:

Vagrant.configure("2") do |config|
  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end
end
JonTheNiceGuy
sumber
2
Menambahkan ini ke saya Vagrantfilememperbaiki masalah di mana saya tidak bisa menjalankan gem install...tanpa mendapatkan kesalahan DNS konyol :) Terima kasih!
Nick