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


12

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

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
システムはup、にあるスクリプトを1つずつ実行することにより、ネットワークインターフェイスを表示しようとします/etc/network/if-up.d。これらの1つには、dhclient失敗するコマンドが含まれています。だから何かをgrep -R dhclient /etc/network/if-up.d/*して、あなたが得るものを見てください。
ジョス

この情報をありがとう。if-up.d以上にはないdhclientコマンドはありません。
カティア・スス

マニュアルsudo ifup --verbose eth0を作成して、問題の発生箇所を確認できますか?
ジョス

#sudo ifup --verbose eth0の出力を質問に追加しました。
カーチャSUSS

「Usage:...」行があると、パラメータにエラーがあるためにdhclientコマンドが失敗したように見えます。しかし、私が知る限り、コマンドは正しいと言えます。さらに、に同じ「使用法」の行があります/var/log/syslogdhclientコマンドを単独で手動で実行してみてください。エラーメッセージが後に表示されない場合、問題はありませんdhclient
ジョス

回答:


7

これはちょうど私に起こった。理由は、信頼性からxenialへのアップグレードを中断するパッケージ依存関係の不整合があり、そのため一部のパッケージバージョンが不整合だったためです。私の場合、不一致はsquid3とca-certificates-javaが原因で発生しました。

を実行するだけでネットワーク接続を復元しましたdhclient eth0。怒らパッケージを削除し、実行することにより、パッケージの矛盾を解決した後apt-get install -f、私は走ったapt-get dist-upgradeapt-get install ubuntu-standard。これで私の問題は完全に解決しました。

矛盾を疑うようになったのは、/sbin/ifupバイナリに、dhclientサポートされなくなった-Iオプション付きの古いコマンドラインが含まれていたことです。パッケージバージョンの不整合である必要があります。


どういうわけか、私のリリースアップグレードも行き詰まってしまいました。
エバート

6

Ubuntu 16.04などの新しいOSにインストール/アップグレードしたばかりで、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/



なんて命の恩人。これはまさに、仮想Linuxホストがメルトダウンのために強制的にカーネルを更新した後にネットワークに戻らないようにするためのものでした。私はens3(ip link show どのensがあなたに当てはまるか を見つけてください)
パトリックF

2

これはまだ有益であればわからない:あるdhclientはもはやによる「-I」または「-df」オプション、持っていると思われていないmanページ DDNSをしました:

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

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

[編集]:その「-I」オプションがどこにあるかを見つけられたら...


1
これらのオプションを使用して「dhclient」コマンドがどこで呼び出されるかを把握しようとしています。これらの2つのオプションなしでdhclientコマンドを手動で実行することにより、一時的にネットワークを立ち上げました。-私は他の場所でコメントするのに十分な評判がないようですので、ここで自分の答えを追加します。

1
TLin(下)が正しい。isc-dhcp-clientパッケージは古いバージョンでスタックしていました。良いキャッチ!4.3.3をインストールするために「apt-get install isc-dhcp-client」を実行する必要がありましたが、その後システムは満足です。
We王

Wei Wang:ありがとね、「isc-dhcp-client」を再インストールして、あなたが提案したようにトリックをやった!do-release-upgradeの途中でホスト(VMゲスト!)を強制終了しましたが、これは正確ではありませんでした。これで、sshを介してこの問題を修正し、再びネットワークを利用することができます!ありがとう。
-stolsvik

1

OPおよびWei Wangと同様の問題があり、そこでifupdhclientを-Iオプション付きで実行しようとしましたが、dhclientはそれをサポートしていない古いバージョンでした。私の推測では、これはシステムをTrusty(14.04)に維持したままXenial(16.04)Chromiumをダウンロード/インストールする以前のハッキング方法によるものであり、システムの他の部分もアップグレードされているに違いありません。

簡単に言えば、私の修正は、上流のXenialでdhclientに関連する関連パッケージを手動でダウンロードしてインストールすることでした。必要なパッケージは3つあり、次の順序でインストールする必要があります。

  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-Iオプションをサポートする4.3.3があり、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が私のDebian 7.11システムで起こっていたことを同期しなくなったと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.