ฉันจะแก้ไขเครือข่ายที่ใช้งานไม่ได้ในเครื่องเสมือนที่โคลนได้อย่างไร


27

ฉันได้ตั้งค่าเครื่องเสมือนการกำหนดค่าเครือข่ายสะพาน หลังจากทำการโคลนแปดโคลนเครื่องใหม่จะไม่สามารถเชื่อมต่อกับเครือข่ายได้

ฉันได้สั่งให้ VirtualBox สร้างที่อยู่ mac ของเครื่องอีกครั้ง

คำตอบ:


26

มีudevกฎที่ทำให้ไม่สามารถนำอินเทอร์เฟซใหม่มาใช้ได้

ในเครื่อง Master เพียงลบออกก่อนที่จะโคลนเครื่องใหม่:

sudo rm -f /etc/udev/rules.d/70-persistent-net.rules

(ที่มา )


70-persistent-net.rules เกิดขึ้นในการบูทเครื่องครั้งต่อไปและการโคลน vms คุณประสบปัญหานี้หรือไม่?
Manish

การลบไฟล์ทำให้การ-fตั้งค่าสถานะบังคับไม่จำเป็น
k0pernikus

-fธงทำให้rmคำสั่งประสบความสำเร็จกับสถานะ 0 แม้ว่าไฟล์ไม่อยู่ พลังแห่งนิสัย :)
Stefano Palazzo

6

รีเฟรชที่อยู่ MAC ของคุณโดยใช้การตั้งค่าเครื่อง Virtual Box และลบไฟล์กฎอินเตอร์เฟสเครือข่ายของเคอร์เนลเพื่อให้สามารถสร้างใหม่ได้:

sudo rm -f /etc/udev/rules.d/70-persistent-net.rules
sudo reboot

มันจะทำงานให้กับ VM โคลนของคุณ


1
โดยส่วนตัวแล้วฉันจะคัดลอกไฟล์กฎที่ไหนสักแห่งแทนที่จะลบทิ้งทันทีในกรณีที่คุณต้องการกู้คืน
David Edwards

มันใช้งานได้สำหรับฉัน!
david.libremone

@DavidEdwards หากไม่มีอยู่ไฟล์จะถูกสร้างขึ้นโดยระบบปฏิบัติการในระหว่างการเริ่มต้น หากคุณต้องการสำเนาเก่า (อันที่มีที่อยู่ MAC ผิด) คุณสามารถเรียกคืนได้จาก VM ดั้งเดิมเสมอ
MrWonderful

4

ฉันจัดการกับปัญหาเดียวกันเป็นเวลาหลายเดือนและวันนี้ฉันตัดสินใจว่าจะแก้ไขได้ดีกว่า นี่คือสิ่งที่ฉันทำบนเครื่องที่ฉันใช้เป็นแม่แบบ

สำหรับแนวทางการบริหารที่ดีให้ทำการแบ็คอัพไฟล์ทั้งสองก่อนทำการแก้ไข

คุณมีไฟล์ที่ละเมิด / เป้าหมายสองไฟล์:

  1. /etc/sysconfig/network-scripts/ifcfg-eth0
  2. /etc/udev/rules.d/70-persistent-net.rules

สิ่งนี้จะทำงานสำหรับที่อยู่staticหรือdhcp:

เปิด /etc/sysconfig/network-scripts/ifcfg-eth0

ลบบรรทัดที่อยู่ MAC: HWADDR=XX:11:22:XX:33:XX
บันทึกไฟล์

ลบไฟล์/etc/udev/rules.d/70-persistent-net.rules"มันจะถูกสร้างขึ้นใหม่หลังจากที่คุณรีสตาร์ท VM"

sudo rm -f /etc/udev/rules.d/70-persistent-net.rules

ตอนนี้คุณสามารถโคลนกล่องของคุณและทุกโคลนจะปรับใช้อย่างถูกต้องและแสดง eth0

หากคุณไม่ได้ใช้เท็มเพลตคุณอาจทำตามขั้นตอนเหล่านี้บน VM จริงเพียงจำไว้ว่าให้เริ่มต้น NIC ของคุณใหม่ในซอฟต์แวร์ VM ก่อนที่คุณจะรีสตาร์ทเครื่อง


ดูเหมือนว่าคำตอบที่สมบูรณ์ยิ่งขึ้น คุณสามารถให้รายละเอียดเพิ่มเติมเกี่ยวกับส่วน "เริ่มต้น NIC" อีกครั้งในย่อหน้าสุดท้ายได้หรือไม่? คุณใช้ VirtualBox เวอร์ชันใดอยู่ด้วย
RichVel

เช่นเดียวกับบันทึกย่อฉันไม่พบไดเรกทอรี / etc / sysconfig ใน Ubuntu 16.04
MakisH

1
@MakisH อินเตอร์เฟสเครือข่ายใน Debian / Ubuntu ไม่ได้ถูกกำหนดโดยไฟล์ใน / etc / sysconfig / network-สคริปต์ (ดังที่คุณสังเกตเห็นว่าไม่มีแม้แต่ไดเร็กทอรี / etc / sysconfig) แต่โดย / etc / network / interfaces
Devin Norgarb

1

ฉันพบปัญหาเดียวกันกับ VirtualBox เวอร์ชันก่อนหน้าและฉันอ่านบางแห่งว่ามีข้อผิดพลาดซึ่งแสดงกล่องกาเครื่องหมาย "สร้างที่อยู่ MAC ใหม่" ไร้ประโยชน์

ตอนนี้ฉันใช้ Ubuntu 12.04 กับ VirtualBox 4.2.10 ฉันสังเกตเห็นว่าเมื่อฉันสร้างโคลนไม่มีช่องทำเครื่องหมาย "สร้างที่อยู่ MAC ใหม่"

สิ่งนี้ทำให้ฉันมีปัญหาแม้ว่าฉันจะลบ 70-persistent-net.rules เพราะระบบจะสร้างไฟล์โดยอัตโนมัติเมื่อเริ่มต้นด้วยที่อยู่ MAC เดียวกับที่อยู่เดิมซึ่งทำให้การเชื่อมต่อล้มเหลว

แต่ฉันค้นพบว่าใน VirtualBox Manager คุณสามารถเลือกโคลนไปที่การตั้งค่า> ระบบเครือข่าย> ขั้นสูงและสร้างที่อยู่ MAC ใหม่โดยทำเครื่องหมายที่ช่อง

ดังนั้นสิ่งที่ฉันทำคือลบ 70-persistent-net.rules ก่อนปิดเครื่องสร้างที่อยู่ MAC ใหม่แล้วเริ่มใหม่อีกครั้งและตอนนี้ก็ใช้ได้

หรือคุณสามารถลบไฟล์ก่อนที่จะโคลน จากนั้นสร้างที่อยู่ MAC จากนั้นเริ่มการโคลน ที่ควรจะทำงานเช่นกัน


0

ฉันสร้างสภาพแวดล้อมการคำนวณแบบขนานที่ต้องการเชื่อมต่อระหว่างเครื่องเสมือนผ่านเครือข่ายไอพี

ฉันคิดว่ามีบางอย่างที่เกี่ยวข้องกับการสร้างที่อยู่ mac ของเครื่องอีกครั้ง ฉันเคยประสบปัญหาคล้ายกันมาก่อน

เครื่องเสมือนเดิมมีและeth0 eth1แต่เนื่องจากกระบวนการปฏิรูปในกรณีของฉัน, เครื่องโคลนใหม่ที่มีและeth2 eth3คุณสามารถตรวจสอบได้โดยคำสั่งต่อไปนี้:

ifconfig -a | grep eth

คุณสามารถตรวจสอบด้วยifconfigคำสั่งว่าในเครื่องโคลนใหม่ได้loลงทะเบียนเท่านั้น โดยทั่วไปแล้วคุณควรจะมีlo, eth0และeth1เมื่อคุณพิมพ์ifconfigคำสั่ง

นั่นเป็นเพราะการฟื้นฟู MAC ที่อยู่ในเครื่องโคลนมีeth2และeth3อินเตอร์เฟส Ethernet แทนeth0และeth1ในเครื่องเดิม คุณสามารถตรวจสอบ/etc/network/interfacesในเครื่องเดิมว่าในกรณีของฉันจะปรากฏขึ้นเช่น:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static

address 192.168.xxx.xxx
netmask 255.xxx.xxx.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 10.0.x.xx

อาจจะเป็นคุณสามารถแก้ไข/etc/network/interfacesไฟล์ของคุณและเปลี่ยนeth0และeth1ด้วยeth2และeth3ที่มากหรือน้อยเช่นนี้:

auto lo
iface lo inet loopback

auto eth2
iface eth2 inet dhcp

auto eth3
iface eth3 inet static

address 192.168.xxx.xxx
netmask 255.xxx.xxx.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 10.0.x.xx

โชคดีนะ!


0

ฉันลบไฟล์ 70-persitent-net.rules แต่มันไม่ได้ถูกสร้างขึ้นใหม่หลังจากรีบูต จากนั้นติดตั้งโมดูลเพิ่มเติมของผู้เยี่ยมชมอีกครั้งและทำการรีบูต VM ทำงานให้ฉัน


0

ฉันมีปัญหากับที่อยู่ IP เดียวกันหลังจากโคลน 3 VM ด้วย Virtual BOX (4.3) ดังนั้นฉันจึงปิดเครื่องและสร้างที่อยู่ mac ใหม่และรีสตาร์ทมันทำงานได้สำหรับฉัน

ขั้นตอน => ปิดการปิดการใช้งาน VM โคลนแล้วการตั้งค่า => เครือข่าย => ขั้นสูง => คลิกที่รีเฟรชที่อยู่ MAC => คลิกตกลง จากนั้นเริ่ม VM

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.