ネットワークサービスが起動に失敗する/再起動時に起動しない。
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.
これはちょうど私に起こった。その理由は、信頼性からxenialへのアップグレードを中断するパッケージ依存関係の不整合があったため、一部のパッケージバージョンが不整合だったためです。私の場合、不一致はsquid3とca-certificates-Javaが原因で発生しました。
dhclient eth0
を実行するだけでネットワーク接続を復元しました。問題のあるパッケージを削除してapt-get install -f
を実行してパッケージの不整合を解決した後、apt-get dist-upgrade
とapt-get install ubuntu-standard
を実行しました。これで私の問題は完全に解決しました。
矛盾を疑うようになったのは、/sbin/ifup
バイナリに、サポートされなくなった-I
オプションを持つ古いdhclient
コマンドラインが含まれていたからです。パッケージバージョンの不整合である必要があります。
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/
これがまだ有用かどうかはわかりません:dhclientには、 manページ に従ってDDNSを実行する「-I」または「-df」オプションがなくなったようです。
-I RFC 4701および4702の標準DDNSスキームを使用します。
コマンドラインからこのオプションを削除すると、dhclientはeth0を起動できます。
[編集]:「-I」オプションがどこにあるかを見つけられたら...
OPおよびWei Wangと同様の問題がありました。ifup
は-I
オプションを使用してdhclientを実行しようとしましたが、私のdhclientはそれをサポートしない古いバージョンでした。私の推測では、これはシステムをTrusty(14.04)に保ちながらXenial(16.04)Chromiumをダウンロード/インストールする以前のハッキング方法によるものであり、システムの他の部分もアップグレードされているに違いありません。
簡単に言えば、私の修正は、上流のXenialでdhclientに関連する関連パッケージを手動でダウンロードしてインストールすることでした。必要なパッケージは3つあり、次の順序でインストールする必要があります。
その後、dhclient --version
は、-I
オプションをサポートする4.3.3があり、ifup
を再び使用できることを示しました。
これを試して:-
Sudo ifdown --exclude=lo -a && Sudo ifup --exclude=lo -a
networking restart
をifdown... && ifup....
に置き換えてください
余談ですが:ifconfig
も長い間廃止されています-パッケージのip
を使用してくださいiproute2
あなたも試すことができます
ifconfig eth0 down && ifconfig eth0 up
(またはネットワークインターフェースが呼び出されるもの)を使用して、ネットワークを再起動します。
@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システムで起こっていたことを同期しなくなったと思います。