네트워킹 없음 : eth0을 불러 오지 못했습니다.


13

네트워킹 서비스가 시작되지 않거나 재부팅시 시작되지 않습니다.

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

여전히 원격 콘솔을 통해 서버에 액세스 할 수 있지만 네트워크가 없으면 나갈 수있는 방법이 없기 때문에 다른 것은 없습니다.

systemctl 상태 네트워킹 서비스는 다음과 같이 말합니다.

● 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'.

내 / 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

이 정보에 감사드립니다. if-up.d 이상에는 dhclient 명령이 없습니다.
Katja Süss

sudo ifup --verbose eth0어디에서 문제가 발생하는지 수동 으로 확인할 수 있습니까 ?
Jos

내 질문에 # sudo ifup --verbose eth0의 출력을 추가했습니다.
Katja Süss

"Usage : ..."줄이 있으면 매개 변수에 오류가 있기 때문에 dhclient 명령이 실패한 것처럼 보입니다. 그러나 내가 말할 수있는 한 명령이 정확합니다. 또한 내에 동일한 "사용"줄이 /var/log/syslog있습니다. dhclient명령을 자체적으로 수동으로 실행할 수 있습니다. 오류 메시지가 표시되지 않으면에 문제가없는 것입니다 dhclient.
Jos

답변:


7

이것은 나에게 일어난 일입니다. 그 이유는 패키지 종속성 불일치가있어 트러스트에서 xenial 로의 업그레이드를 방해했기 때문에 일부 패키지 버전이 일치하지 않았기 때문입니다. 필자의 경우 불일치는 squid3 및 ca-certificates-java로 인해 발생했습니다.

방금 실행하여 네트워크 연결을 복원했습니다 dhclient eth0. 잘못된 패키지를 제거하고 실행하여 패키지의 불일치를 해결 한 후 apt-get install -f, 나는 실행 apt-get dist-upgrade하고 apt-get install ubuntu-standard. 이것은 내 문제를 완전히 해결했습니다.

불일치가 의심되는 이유는 /sbin/ifup바이너리 dhclient에 더 이상 지원되지 않는 -I옵션이 있는 오래된 명령 줄이 포함되어 있다는 것 입니다. 패키지 버전이 일치하지 않아야합니다.


어떻게 든 do-release-upgrade도 막혔습니다.
Evert

6

Ubuntu 16.04와 같은 최신 OS로 방금 설치 / 업그레이드했으며 eth0or 와 같은 전통적인 인터페이스 이름 지정 체계에서 벗어나 eth1시스템이 인터페이스를 시작할 수 없다고 가정합니다.

처럼 또는 대신 /etc/network/interfaces사용하도록 편집 해보십시오ens32ens192eth0

# 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

생명의 은인. 이것이 바로 내 가상 리눅스 호스트가 강제 종료를 위해 강제 커널 업데이트를 수행 한 후 네트워크로 돌아 가지 못하게하는 것입니다. 내 ens3했다 ( ip link show 하고 어떤 ens 당신에게 적용되는 찾을)
패트릭 F

2

이것이 여전히 유용한 지 확실하지 않습니다 : dhclient는 더 이상 "-I"또는 "-df"옵션을 가지고 있지 않은 것으로 보입니다 . 맨 페이지 에 따르면 DDNS는 다음과 같습니다.

-I RFC 4701 및 4702의 표준 DDNS 체계를 사용합니다.

명령 행에서 해당 옵션을 제거하면 dhclient가 eth0을 가져올 수 있습니다.

[편집] : 이제 "-I"옵션이있는 곳을 찾을 수 있다면 ...


1
해당 옵션과 함께 "dhclient"명령이 호출되는 위치를 파악하려고합니다. 이 두 가지 옵션없이 dhclient 명령을 수동으로 실행하여 네트워크를 일시적으로 가동했습니다. -나는 다른 곳에서 언급 할만한 명성을 얻지 못한 것 같아서 여기에 내 자신의 답변을 추가하고 있습니다.
웨이 왕

1
TLin (아래)이 맞습니다. isc-dhcp-client 패키지가 이전 버전에서 멈췄습니다. 잘 잡아! 4.3.3을 설치하기 위해 "apt-get install isc-dhcp-client"를 수행해야했고 그 후에 시스템이 만족 스럽다.
Wei Wang

Wei Wang : 고맙습니다. 제안한 것처럼 'isc-dhcp-client'를 다시 설치하면 트릭을 했어요! 정확히 릴리스되지 않은 do-release 업그레이드 도중에 호스트 (VM 게스트!)를 죽일 수있었습니다. 이제 ssh를 통해이 물건을 수정하고 네트워킹을 다시 시작할 수 있습니다! 감사.
stolsvik

1

옵션으로 ifupdhclient를 실행하려고 시도 했던 OP 및 Wei Wang과 비슷한 문제 가 -I있었지만 dhclient는 지원하지 않는 이전 버전이었습니다. 내 생각에 이것은 시스템을 Trusty (14.04)에 유지하면서 Xenial (16.04) Chromium을 다운로드 / 설치하는 이전의 해키 방법 때문 이었기 때문에 시스템의 다른 부분도 업그레이드해야합니다.

간단히 말해서, 내 수정은 업스트림 Xenial에서 dhclient와 관련된 관련 패키지를 수동으로 다운로드하여 설치하는 것이 었습니다. 세 가지 패키지가 필요하며 다음 순서로 설치해야합니다.

  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 restartifdown... && 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가 데비안 7.11 시스템에서 일어난 일을 동기화하지 못했다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.