ไม่มีเครือข่ายหลังจากอัปเกรดเป็น 16.04


12

ฉันอัพเกรดเซิร์ฟเวอร์ของฉันเป็น 16.04 จาก 14.04 ซึ่งในทางกลับกันก็อัพเกรดจาก 12.04 ทั้งหมดโดยใช้บรรทัดคำสั่ง do-release-upgrade นี่คือการสร้างเซิร์ฟเวอร์โดยไม่มี GUI มันทำงาน apache2, bind9, nfs และบริการอื่น ๆ ที่เกี่ยวข้องกับเครือข่าย ส่วนใหญ่จะไม่มีสิ่งใดเสียหายในการอัปเกรด ... ยกเว้นเครือข่าย ตอนนี้ฉันต้องวิ่ง

sudo /etc/init.d/networking start

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

sudo update-rc.d networking defaults

แต่คำสั่งดังกล่าวเพียงแค่ให้ข้อผิดพลาดเกี่ยวกับการไม่สามารถเชื่อมต่อกับคนธรรมดา

ฉันจะแก้ไขเครือข่ายของฉันได้อย่างไร

แก้ไข: เนื้อหาของ / etc / network / interfaces:

#loopback
auto lo
iface lo inet loopback

#eth0
auto eth0
iface eth0 inet dhcp

คุณสามารถเพิ่มบรรทัดใน/etc/network/interfacesไฟล์ของคุณคำถามของคุณ?
John Orion

@ JohnOrion เสร็จแล้ว ฉันยังทำให้แน่ใจว่าอุปกรณ์เครือข่ายนั้นแท้จริงแล้ว eth0; ฉันเคยเปลี่ยนอุปกรณ์ระหว่าง eth0 และ eth1 มาก่อน มันคือ eth0 จริง ๆ
ArmanX

อะไรifconfigแสดง จะเกิดอะไรขึ้นเมื่อคุณเรียกใช้sudo ifup eth0?
Cerin

1
สำหรับผู้ค้นหาข้อมูลในอนาคต: "ifconfig" ไม่แสดงอะไรเลย "ifconfig -a" แสดงว่ามีอะแดปเตอร์ แต่ไม่เปิดใช้งาน "sudo ifup eth0" (หรือ "sudo ifconfig eth0 up") จะนำอะแดปเตอร์ขึ้นมา แต่จะไม่เริ่มทำงานไคลเอ็นต์ dhcp นำอะแด็ปเตอร์ขึ้นมาเองและเริ่มเชื่อมต่อ dhclient ตามที่คาดไว้
ArmanX

ที่กล่าวว่าในที่สุดฉันก็ติดตั้งใหม่ทุกอย่างตั้งแต่เริ่มต้นซึ่งแก้ไข
ArmanX

คำตอบ:


23

กันที่นี่

ฉันคิดว่ามีข้อผิดพลาดเกิดขึ้นขณะย้ายข้อมูลจากพุ่งพรวดสู่ systemd ในกระบวนการติดตั้งหรือไม่

ฉันจะอธิบายว่าฉันแก้ไขมันอย่างไร

ทำตามคู่มือนี้ฉันเปิดใช้งานระบบเครือข่าย systemd: http://xmodulo.com/switch-from-networkmanager-to-systemd-networkd.html

ขั้นตอนที่ฉันทำ:

$ sudo systemctl enable systemd-networkd
$ sudo systemctl enable systemd-resolved
$ sudo systemctl start systemd-resolved
$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ sudo vi /etc/systemd/network/20-dhcp.network

เนื้อหา:

[Match]
Name=e*

[Network]
DHCP=yes

ตอนนี้ทุกอย่างทำงานได้ดี :-)


huzzah! วิธีนี้แก้ไขได้สำหรับฉันเช่นกัน!
Craig

ไม่ได้ทำงานที่นี่ คำสั่งที่สามผิดพลาด
jjmerelo

2

โซลูชันที่อยู่คงที่:

หากต้องการเพิ่มคำตอบของ HerrTaschenbier: ถ้าคุณมีที่อยู่คงที่ในเซิร์ฟเวอร์ของคุณคุณควรตรวจสอบเพื่อดูว่า NIC ถูกเปลี่ยนชื่อด้วยการทำifconfig -a ผมพบ eth0 ens32ถูกเปลี่ยนชื่อเป็น ใช้ข้อมูลนั้นและนำไปใช้กับคำตอบของ HerrTaschenbier คุณจะต้องสร้างไฟล์ใหม่ตามที่เขาได้รับคำสั่ง, sudo vi /etc/systemd/network/20-ens32.network. เนื้อหาแตกต่างกันเล็กน้อย

[Match] 
Name=ens32

[Network]
DNS=xxx.xxx.xxx.xxx
Domains=somedomain.com
Address=xxx.xxx.xxx
Gateway=xxx.xxx.xxx

หมายเหตุรูปแบบชื่อไฟล์มีชื่ออะแดปเตอร์เครือข่ายอยู่ อย่าลืมเปลี่ยนชื่ออะแดปเตอร์ในไฟล์ / etc / network / interfaces เช่นกัน เรื่องนี้เกิดขึ้นกับฉันจากการอัพเกรด 14.04 ถึง 16.04


1

ฉันพบปัญหาเดียวกันหลังจากใช้งาน 16.04 เป็นเวลานานอาจมีการอัปเดตบางอย่างที่ยุ่งเหยิง

เล่นsystemctl status networking.serviceแสดงให้เห็นว่าบริการไม่สามารถเริ่มต้นเนื่องจากข้อผิดพลาดในifup -aการเรียกร้อง วิ่งifup -aแยกต่างหากเปิดเผยว่ามันกำลังพยายามที่จะทำงานกับeth0อินเตอร์เฟซในขณะที่ifconfig -aรายการเท่านั้นenp0s31f6และloอินเตอร์เฟซ การตรวจสอบ/etc/network/interfacesพบว่า:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

การแก้ไขชื่ออินเตอร์เฟสกับสิ่งที่พบโดยifconfigแก้ไขปัญหา:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

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