ไม่มีเครือข่าย: ล้มเหลวในการสร้าง eth0


13

บริการเครือข่ายล้มเหลวในการเริ่ม / ไม่เริ่มทำงานเมื่อรีบูต

Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.

ฉันยังคงสามารถเข้าถึงเซิร์ฟเวอร์ผ่านทางคอนโซลระยะไกลได้ แต่ไม่มีสิ่งอื่นใดเนื่องจากไม่มีเครือข่ายจึงไม่มีทางออก

systemctl status networking.service พูดว่า:

● networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor prese
t: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
           └─50-insserv.conf-$network.conf
   Active: failed (Result: exit-code) since Mo 2016-04-18 06:53:11 UTC; 43s ago
     Docs: man:interfaces(5)
  Process: 3551 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=
1/FAILURE)
  Process: 3546 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [
 -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (cod
e=exited, status=0/SUCCESS)
 Main PID: 3551 (code=exited, status=1/FAILURE)

Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: For info, please visit htt
ps://www.isc.org/software/dhcp/
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: Usage: dhclient [-4|-6] [-
SNTP1dvrx] [-nw] [-p <port>] [-D LL|LLT]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-s server
-addr] [-cf config-file] [-lf lease-file]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-pf pid-f
ile] [--no-pid] [-e VAR=val]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]:                 [-sf scrip
t-file] [interface]
Apr 18 06:53:11 h2502988.stratoserver.net ifup[3551]: Failed to bring up eth0.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Main p
rocess exited, code=exited, status=1/FAILURE
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: Failed to start Raise netw
ork interfaces.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Unit e
ntered failed state.
Apr 18 06:53:11 h2502988.stratoserver.net systemd[1]: networking.service: Failed
 with result 'exit-code'.

My / etc / network / interfaces ดูเหมือนว่า:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

ฉันจะเริ่มแก้ไขข้อบกพร่องได้ที่ไหน

ขอบคุณสำหรับคำใบ้ใด ๆ ! ขอแสดงความนับถือ K

# sudo ifup --verbose eth0
Configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant

/sbin/dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0  
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Usage: dhclient <snip>
Failed to bring up eth0.

1
ระบบการพยายามที่จะนำมาเชื่อมต่อเครือข่ายของคุณโดยการดำเนินการอย่างใดอย่างหนึ่งโดยหนึ่งสคริปต์ที่อยู่ในup /etc/network/if-up.dหนึ่งในนั้นมีdhclientคำสั่งที่ล้มเหลว ทำสิ่งที่ชอบgrep -R dhclient /etc/network/if-up.d/*และดูสิ่งที่คุณได้รับ
Jos

ขอบคุณสำหรับข้อมูลนี้ ไม่มีคำสั่ง dhclient ไม่ใช่ใน if-up.d หรือสูงกว่า
Katja Süss

คุณสามารถทำคู่มือsudo ifup --verbose eth0เพื่อดูว่าอะไรผิดพลาดหรือไม่?
Jos

ฉันเพิ่มผลลัพธ์ของ # sudo ifup --verbose eth0 ในคำถามของฉัน
Katja Süss

การปรากฏตัวของบรรทัด "การใช้งาน: ... " ทำให้ดูเหมือนว่าคำสั่ง dhclient ล้มเหลวเนื่องจากมีข้อผิดพลาดในพารามิเตอร์ แต่เท่าที่ฉันสามารถบอกได้ว่าคำสั่งนั้นถูกต้อง นอกจากนี้ผมมีเหมือนกัน "การใช้" /var/log/syslogเส้นในของฉัน คุณสามารถลองใช้dhclientคำสั่งด้วยตนเองได้ dhclientถ้าข้อความไม่มีข้อผิดพลาดต่อไปนี้จะไม่มีปัญหากับ
Jos

คำตอบ:


7

นี่เพิ่งเกิดขึ้นกับฉัน เหตุผลก็คือมีความไม่สอดคล้องกันของการพึ่งพาแพคเกจที่ขัดจังหวะการอัพเกรดของฉันจากความน่าเชื่อถือเป็น xenial ดังนั้นบางแพคเกจรุ่นที่ไม่สอดคล้องกัน ในกรณีของฉันความไม่สอดคล้องเกิดจาก squid3 และ ca-certificate-java

dhclient eth0ฉันเรียกคืนการเชื่อมต่อเครือข่ายโดยใช้เพียง หลังจากที่การแก้ปัญหาความไม่สอดคล้องกันแพคเกจโดยการเอาแพคเกจที่กระทำผิดและทำงานapt-get install -fฉันวิ่งและapt-get dist-upgrade apt-get install ubuntu-standardวิธีนี้แก้ไขปัญหาของฉันได้อย่างสมบูรณ์

สิ่งที่ทำให้ฉันสงสัยว่าความไม่ลงรอยกันคือ/sbin/ifupไบนารีนั้นมีdhclientบรรทัดคำสั่งที่ล้าสมัยพร้อมกับ-Iตัวเลือกที่ไม่รองรับอีกต่อไป ต้องเป็นเวอร์ชั่นที่ไม่สอดคล้องกันของแพ็คเกจ


ยังไงก็ตามรุ่นอัพเกรดของฉันก็ยังติดอยู่และสิ่งนี้ก็ใช้ได้สำหรับฉันด้วยขอบคุณ!
ปลิ้น

6

ฉันสมมติว่าคุณเพิ่งติดตั้ง / อัปเกรดเป็นระบบปฏิบัติการรุ่นใหม่เช่น Ubuntu 16.04 และเนื่องจากการออกจากรูปแบบการตั้งชื่ออินเทอร์เฟซแบบดั้งเดิมเช่นeth0หรือeth1ระบบไม่สามารถเริ่มต้นส่วนต่อประสานกับคุณได้

ลองแก้ไขของคุณ/etc/network/interfacesที่จะใช้อย่างใดอย่างหนึ่งens32หรือens192แทนeth0เช่น

# The loopback network interface
auto lo
iface lo inet loopback

# The Ethernet interface
auto ens192
iface ens192 inet dhcp

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

https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/


การแก้ไขสำหรับฉันคือ: askubuntu.com/a/830163/543586
theINtoy

สิ่งที่ช่วยชีวิต นี่คือสิ่งที่ทำให้โฮสต์ linux เสมือนของฉันไม่สามารถกลับเข้าสู่เครือข่ายได้หลังจากที่พวกเขาทำการปรับปรุงเคอร์เนลแบบบังคับสำหรับการล่มสลาย เหมือง ens3 (ทำ ip link show และหาที่ ens ใช้ได้กับคุณ)
แพทริค F

2

ไม่แน่ใจว่านี่ยังมีประโยชน์หรือไม่: ดูเหมือนว่า dhclient จะไม่มีตัวเลือก "-I" หรือ "-df" อีกต่อไปซึ่งตามหน้า manจะทำการ DDNS:

-I ใช้ชุดรูปแบบ DDNS มาตรฐานจาก RFCs 4701 และ 4702

เมื่อฉันลบตัวเลือกนั้นออกจากบรรทัดคำสั่ง dhclient จะสามารถแสดงค่า eth0 ได้

[แก้ไข] : ตอนนี้ถ้าฉันสามารถหาที่ตัวเลือก "-I" นั้น ...


1
ฉันพยายามที่จะหาคำสั่งที่เรียกว่า "dhclient" พร้อมตัวเลือกเหล่านั้น ฉันได้รับเครือข่ายชั่วคราวด้วยการรันคำสั่ง dhclient ด้วยตนเองโดยไม่ต้องมีสองตัวเลือก - ฉันดูเหมือนจะไม่มีชื่อเสียงเพียงพอที่จะแสดงความคิดเห็นที่อื่นดังนั้นฉันจึงเพิ่มคำตอบของฉันเองที่นี่
Wei Wang

1
TLin (ด้านล่าง) ถูกต้อง แพ็คเกจ isc-dhcp-client ติดอยู่ในเวอร์ชั่นที่เก่ากว่า จับดี! ฉันต้องทำ "apt-get install isc-dhcp-client" เพื่อรับการติดตั้ง 4.3.3 และระบบก็มีความสุขหลังจากนั้น
Wei Wang

Wei Wang: ขอบคุณมากการติดตั้ง 'isc-dhcp-client' ใหม่ตามที่คุณแนะนำไม่ได้หลอกลวง! ฉันจัดการเพื่อฆ่าโฮสต์ (แขก VM!) ในช่วงกลางของการอัพเกรดเผยแพร่ซึ่งไม่ได้ฉลาด ตอนนี้ฉันสามารถแก้ไขสิ่งนี้ผ่าน ssh และเชื่อมต่อเครือข่ายอีกครั้ง! ขอบคุณ
stolsvik

1

ฉันมีปัญหาคล้ายกันกับ OP และ Wei Wang ที่ifupพยายามเรียกใช้-Iตัวเลือก dhclient แต่ dhclient ของฉันเป็นรุ่นที่เก่ากว่าซึ่งไม่รองรับ ฉันเดาว่านี่เป็นเพราะวิธีแฮ็กก่อนหน้าของฉันในการดาวน์โหลด / ติดตั้ง Xenial (16.04) Chromium ในขณะที่รักษาระบบของฉันไว้ใน Trusty (14.04) ก็ต้องอัปเกรดส่วนอื่น ๆ ของระบบด้วย

เรื่องสั้นสั้น ๆ การแก้ไขของฉันคือการดาวน์โหลดและติดตั้งแพ็กเกจที่เกี่ยวข้องที่เกี่ยวข้องกับ dhclient ใน Xenial ต้นน้ำ จำเป็นต้องมีแพ็คเกจสามชุดและจำเป็นต้องติดตั้งตามลำดับต่อไปนี้:

  1. libisc-export160 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/libisc-export160_9.10.3.dfsg.P4-8_amd64.deb.html )
  2. libdns-export162 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/libdns-export162_9.10.3.dfsg.P4-8_amd64.deb.html )
  3. isc-dhcp-client_4.3.3 ( https://ubuntu.pkgs.org/16.04/ubuntu-main-amd64/isc-dhcp-client_4.3.3-5ubuntu12_amd64.deb.html )

หลังจากนั้นdhclient --versionแสดงว่าฉันมี 4.3.3 ซึ่งรองรับ-Iตัวเลือกและฉันก็สามารถใช้ifupอีกครั้ง


0

ลองนี้: -

sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a

ดังนั้นแทนที่networking restartด้วยifdown... && ifup....

เช่นกัน: ifconfigถูกเลิกใช้เป็นเวลานาน - ใช้ipจากแพ็คเกจiproute2

คุณสามารถลองด้วย

ifconfig eth0 down && ifconfig eth0 up

(หรือสิ่งที่เรียกว่าส่วนต่อประสานเครือข่ายของคุณ) เพื่อรีสตาร์ทเครือข่าย


0

@jos กล่าวถึงในความคิดเห็นในโพสต์ต้นฉบับ:

การมีอยู่ของบรรทัด "Usage: ... " ทำให้ดูเหมือนว่าคำสั่ง dhclient ล้มเหลวเนื่องจากมีข้อผิดพลาดในพารามิเตอร์ ...

ฉันมีปัญหาที่แม่นยำนี้และการบันทึกอย่างละเอียดเป็นคำใบ้

ifup --verbose eth0

ค้นหาเอาต์พุตที่อธิบายพารามิเตอร์ DHCP

จากนั้นฉันก็เอาข้อมูลออกจาก:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid -if /var/lib/dhcp/dhclient.eth0.leases -I -df /var/lib/dhcp/dhclient6.eth0.leases eth0

เพื่อ:

/sbin/dhclient -4 -v -pf /run/dhclient.eth0.pid eth0 แล้วฉันก็ได้ที่อยู่

ฉันเชื่อว่าการอัพเดตซอฟต์แวร์บางอย่างทำให้ dhclient หลุดพ้นจากสิ่งที่เกิดขึ้นในระบบ Debian 7.11 ของฉัน

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