ネットワークなし: eth0 の起動に失敗しました

ネットワークなし: eth0 の起動に失敗しました

ネットワーク サービスが起動に失敗する / 再起動時に起動しません。

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

私の /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

これは私に起こったことです。原因は、パッケージの依存関係の不一致により、trusty から xenial へのアップグレードが中断され、一部のパッケージ バージョンに不一致が生じていたことです。私の場合、この不一致は squid3 と ca-certificates-java によって発生しました。

を実行するだけでネットワーク接続を復元しましたdhclient eth0。問題のあるパッケージを削除して を実行してパッケージの不整合を解決した後、と をapt-get install -f実行しました。これで問題は完全に解決しました。apt-get dist-upgradeapt-get install ubuntu-standard

不一致を疑うようになったのは、バイナリに、サポートされなくなったオプションを/sbin/ifup含む古いコマンド ラインが含まれていたためです。パッケージ バージョンの不一致であるに違いありません。dhclient-I

答え2

eth0Ubuntu 16.04 などの新しい OS をインストール/アップグレードしたばかりで、やなどの従来のインターフェース命名スキームから外れたためeth1、システムがインターフェースを起動できないと想定しています。

またはの代わりに/etc/network/interfacesを使用するようens32に編集してみてくださいens192eth0

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

答え3

これがまだ役に立つかどうかはわかりませんが、dhclientには「-I」または「-df」オプションがなくなったようです。マニュアルページDDNS は:

-I RFC 4701 および 4702 の標準 DDNS スキームを使用します。

コマンドラインからそのオプションを削除すると、dhclient は eth0 を起動できるようになります。

[編集]: さて、「-I」オプションがどこにあるか見つけることができれば...

答え4

これを試して:-

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

それでnetworking restartifdown... && ifup....

余談ですが、ifconfigこれも長い間非推奨でした -ipパッケージからの使用iproute2

あなたも試してみることができます

ifconfig eth0 down && ifconfig eth0 up

(またはネットワーク インターフェイスの名前) をクリックして、ネットワークを再起動します。

関連情報