Vagrant / VirtualBox DNS 10.0.2.3 ไม่ทำงาน


78

ฉันกำลังใช้งาน Linux Mint Nadia ติดตั้งใหม่ (14) ฉันกำลังทำตามคำแนะนำบนจรจัดเริ่มต้นแต่มีอากาศที่ติดอยู่ในการจัดเตรียม ดูเหมือนว่ากล่อง Vagrant ไม่สามารถเชื่อมต่อภายนอกได้ดังนั้นฉันจึงไม่สามารถติดตั้งอะไรก็ได้โดยใช้ Chef หรือ Puppet

ในจรจัดขั้นพื้นฐานประกอบด้วยresolve.conf nameserver 10.0.2.3แต่ด้วยชุดนั้นฉันไม่สามารถปิงus.archive.ubuntu.comได้

หากฉันเปลี่ยนเป็น8.8.8.8ฉันสามารถ ping ได้us.archive.ubuntu.comแต่ไม่ได้ตั้งค่าไว้และหลังจากรีบูตระบบจะเปลี่ยนกลับเป็น10.0.2.3- ดังนั้นการจัดเตรียมล้มเหลวอีกครั้ง

เป็นการดีที่ฉันต้องการ10.0.2.3ทำงานกับการตั้งค่าของฉัน ความล้มเหลวที่ฉันต้องการวิธีการเปลี่ยนแปลงอย่างถาวรresolv.confเพื่อให้ฉันสามารถทำการจัดสรร


2
FYI ว่าผมเพียงแค่กดปัญหาเดียวกันนี้กับubuntu/xenial64กล่องและมันเปิดออกมาเป็นข้อผิดพลาดพร้อมกล่องของตัวเอง
Aidan Feldman

@AidanFeldman เหมือนกันสำหรับฉัน เพิ่งเปลี่ยนมาใช้bento/ubuntu-16.04และ DNS ทำงานได้ดีโดยไม่มีการแก้ไขเพิ่มเติม
HenningCash

คำตอบ:


84

คุณสามารถแก้ไขปัญหานี้ได้สองวิธีซึ่งทั้งสองอย่างอยู่ในคู่มือ VirtualBox :

การเปิดใช้งานพร็อกซี DNS ในโหมด NAT

เอ็นจิ้น NAT ตามค่าเริ่มต้นจะนำเสนอเซิร์ฟเวอร์ DNS เดียวกันกับแขกที่กำหนดค่าบนโฮสต์ ในบางสถานการณ์คุณสามารถซ่อน IP DNS ของเซิร์ฟเวอร์จากผู้เยี่ยมชมได้ตัวอย่างเช่นเมื่อข้อมูลนี้สามารถเปลี่ยนแปลงได้บนโฮสต์เนื่องจากหมดอายุการเช่า DHCP ในกรณีนี้คุณสามารถบอกให้โปรแกรม NAT ทำหน้าที่เป็นพร็อกซี DNS โดยใช้คำสั่งต่อไปนี้:

VBoxManage modifyvm "VM name" --natdnsproxy1 on

การใช้ตัวแก้ไขของโฮสต์เป็นพร็อกซี DNS ในโหมด NAT

สำหรับการแก้ไขชื่อเครือข่ายเซิร์ฟเวอร์ DHCP ของโปรแกรม NAT จะนำเสนอรายการเซิร์ฟเวอร์ DNS ที่ลงทะเบียนของโฮสต์ หากด้วยเหตุผลบางอย่างคุณต้องซ่อนรายการเซิร์ฟเวอร์ DNS นี้และใช้การตั้งค่าตัวแก้ไขของโฮสต์ดังนั้นบังคับให้โปรแกรม VirtualBox NAT เพื่อสกัดกั้นการร้องขอ DNS และส่งต่อไปยังตัวแก้ไขของโฮสต์ให้ใช้คำสั่งต่อไปนี้:

VBoxManage modifyvm "VM name" --natdnshostresolver1 on

โปรดทราบว่าการตั้งค่านี้คล้ายกับโหมดพร็อกซี DNS แต่ในขณะที่โหมดพร็อกซีส่งต่อการร้องขอ DNS ไปยังเซิร์ฟเวอร์ที่เหมาะสมโหมดตัวแก้ปัญหาจะตีความคำขอ DNS และใช้ DNS API ของโฮสต์เพื่อสอบถามข้อมูลและส่งกลับไปยังแขก .


1
ขอขอบคุณ. "การใช้ตัวแก้ไขของโฮสต์เป็นพร็อกซี DNS ในโหมด NAT" ได้ทำการหลอกลวง เป็นเรื่องน่าเสียดายที่ฉันต้องทำเช่นนี้สำหรับการติดตั้ง Vagrant ทุกครั้ง
Rudolf Vavruch

1
ฉันมักจะใช้โหมด bridged สำหรับ VMs ซึ่งกำจัดปัญหา (และโฮสต์ของปัญหาอื่น ๆ )
Michael Hampton

3
เพิ่งมีปัญหากับการอัพเกรดเป็น 4.2.20 "การใช้ตัวแก้ปัญหาของโฮสต์เป็นพร็อกซี DNS ในโหมด NAT" ก็ทำให้ฉันได้เช่นกัน ขอบคุณ !
edomaur

73

ติดตามhttps://serverfault.com/a/453260/14832หากคุณใช้รูปแบบการกำหนดค่าเวอร์ชัน Vagrantfile เวอร์ชันที่เริ่มต้น:

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

จากนั้นคุณอาจต้องการเพิ่มสิ่งนี้ลงในไฟล์กำหนดค่า:

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

หากคุณใช้รูปแบบการกำหนดค่าแบบเก่า แต่ใช้ Vagrant 1.1 ขึ้นไปคุณสามารถต่อท้ายไฟล์นี้ได้:

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

2
การเพิ่มสิ่งนี้ให้กับฉันVagrantfileแก้ไขปัญหาที่ฉันไม่สามารถทำงานgem install...ได้โดยไม่ได้รับข้อผิดพลาด DNS ผิดพลาด :) ขอบคุณ!
Nick
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.