ifup 升级到 16.04 后无法调出 eth0

ros*_*euz 9 upgrade server networking dhclient 16.04

我已将服务器从 14.04 升级到 16.04。我可以在 syslog 上看到以下错误:

ifup[478]: Internet Systems Consortium DHCP Client 4.2.4
ifup[478]: Copyright 2004-2012 Internet Systems Consortium.
ifup[478]: All rights reserved.
ifup[478]: For info, please visit https://www.isc.org/software/dhcp/
ifup[478]: Usage: dhclient [-4|-6] [-SNTP1dvrx] [-nw] [-p <port>] [-D LL|LLT]
ifup[478]:             [-s server-addr] [-cf config-file] [-lf lease-file]
ifup[478]:             [-pf pid-file] [--no-pid] [-e VAR=val]
ifup[478]:             [-sf script-file] [interface]
ifup[478]: Failed to bring up eth0.
systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Raise network interfaces.
systemd[1]: networking.service: Unit entered failed state.

systemd[1]: networking.service: Failed with result 'exit-code'.
Run Code Online (Sandbox Code Playgroud)

如果我尝试手动执行,我也会遇到同样的错误

# 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
Usage: dhclient [-4|-6] [-SNTP1dvrx] [-nw] [-p <port>] [-D LL|LLT]
             [-s server-addr] [-cf config-file] [-lf lease-file]
             [-pf pid-file] [--no-pid] [-e VAR=val]
             [-sf script-file] [interface]
Failed to bring up eth0.
Run Code Online (Sandbox Code Playgroud)

我可以 ping 8.8.8.8。但无法解析任何域名。

我该怎么做才能恢复网络连接?

Cer*_*rin 6

我在 Raspberry Pi 上全新安装服务器 16.04 时遇到了这个问题。出于某种原因,默认情况下没有安装网络管理器,在运行 dist-upgrade 然后重新启动后,我没有网络。

我按照此博客中的步骤使其再次运行。本质上,eth0 的映射已损坏。通常,网络管理器可以自动修复此问题,但没有它,您必须自己解决。为此,我首先运行:

sudo networkctl
Run Code Online (Sandbox Code Playgroud)

它向我展示了我所有的网络接口,比如 lo、wlan0 和一个叫做 enc238897s9879c3 的东西,它实际上应该是 eth0。

为了更正映射,我运行:

sudo ip link set enc238897s9879c3 name eth0
sudo systemctl restart networking
Run Code Online (Sandbox Code Playgroud)

并修复了它。跑步ifconfig显示我有IP,跑步ping google.com显示我有互联网。


ros*_*euz 2

看起来升级在某种程度上弄乱了与网络相关的软件包。我做了以下工作,最终解决了问题。我不确定哪些是必要的。

# apt install network-manager
# systemctl enable systemd-networkd
# systemctl enable systemd-resolved
# systemctl start systemd-networkd
# systemctl start systemd-resolved
# apt install isc-dhcp-client
# dpkg-reconfigure resolvconf
Run Code Online (Sandbox Code Playgroud)


小智 2

我遇到了同样的问题。@rosencreuz 给出的答案是正确的,但我将其范围缩小到只有这个命令。

# apt install isc-dhcp-client
Run Code Online (Sandbox Code Playgroud)

  • 那么解决互联网连接不可用的方法是从互联网下载软件包吗? (3认同)