为什么我在 Ubuntu Server 上收到“网络不可达”错误?

为什么我在 Ubuntu Server 上收到“网络不可达”错误?

我对 Ubuntu 服务器还很陌生,在将服务器连接到互联网时遇到了困难。

我首先运行 ping -n 8.8.8.8

connect:Network is unreachable

然后我运行 ifconfig

Link encap:Local Loopback
inet addr:127.0.0.1 Mask 255.0.0.0
inet6 addr: ::1/28Scope:host
UP LOOPBACK RUNNING MTU:16436
RX packets:192 errors:0 dropped:0 overruns:0 frame:0
TX packets:192 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0 RX bytes:15360 (15.2KB) TX bytes:15360 (15.3KB)

以下是 sudo lspci -n 的输出

00:00.0 0600: 8086:2580 (rev 04)
00:02.0 0300: 8086:2582 (rev 04)
00:1d.0 0c03: 8086:2658 (rev 03)
00:1d.1 0c03: 8086:2659 (rev 03)
00:1d.0 0c03: 8086:265a (rev 03)
00:1d.0 0c03: 8086:265b (rev 03)
00:1d.0 0c03: 8086:265c (rev 03)
00:1e.0 0604: 8086:244e (rev d3)
00:1e.0 0401: 8086:266e (rev 03)
00:1f.0 0601: 8086:2640 (rev 03)
00:1f.0 0101: 8086:2651 (rev 03)
00:1f.0 0c05: 8086:266a (rev 03)
00:0b.0 0200: 8086:1654 (rev 03)

lshw-c 网络回报

WARNING: you should run this program as super-user.
*-network DISABLED
description:Ethernet interface
product: NetXtreme BCM5705_2 Gigabit Ethernet
vender: Broadcom Corporation
physical id:b
bus info:pci@0000:0a:0b.0
logical name: eth0
capabilities: bus_master_cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 

1000bt 1000bt-fd autonegotiation

configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion= 3.121 

firmware=5705-v3.18 latency=32 mingnt=64 multicast=yes port=twister pair

lsmod 代码返回此

Module              Size          Used By
e100                37213           0
dm_crypt            23125           1
ppdev               17113           0
psmouse             87603           0
snd_intel8x0        38570           0
snd_ac97_codec      134826          1 snd_intel8x0
ac97_bus            12730           1  snd_ac97_codec
snd_pcm             97188           2 snd_intel8x0, snd_ac97_codec
serio_raw           13211           0
snd_timer           29990           1  snd_pcm
snd                 78855           4 snd_intel8x0, snd_ac97_codec, snd_pcm,snd_timer
soundcore           15091           1 snd
snd_page_alloc      18529           2  snd_intel8x0, snd_pcm
ext2                73795           1
parport_pc          32866           1
mac_hid             13253           0
lp                  17799           0
parport             46562           3    ppdev, parport_pc,lp
usbhid              47199           0
hid                 99559           1 usbhid
tg3                 152032          0
i915                468651          1
floppy              70365           0
drm_kms_helper      46978           1 i915
drm                 242038 2 i915,drm_kms_helper
i2c_algo_bit        13423 1 i915
video               19596 1 i915

还有更多内容,但它提供了有关驱动程序本身的信息。我知道它可以工作,我已经使用过它。我假设在安装 Ubuntu Server 时我的网络被禁用了。我该如何启用它?

我检查了一下,发现网线已连接到 D-link 路由器。安装 Ubuntu Desktop 后,我也使用同一台计算机访问互联网,因此互联网确实可以正常工作。

答案1

从硬件列表中可以看出,这是一个NetXtreme BCM5705_2 Gigabit Ethernet需要 Linux 驱动程序tg3和固件才能运行的设备。固件不是免费的,因此您需要安装软件包firmware-linux-nonfree才能使其运行。

  • 在一个新的终端中开始查看日志sudo tail -f /var/log/messages /var/log/syslog。在这里您可以看到其他命令发生了什么。查找带有tg3或 的行firmware
  • 安装固件包。需要在后面添加multiverse(Debian 中的 nonfree) ,例如。/etc/atp/sources.listuniverseuniverse multiverse
  • 保存更改后,请执行以下操作sudo apt-get update; sudo apt-get install linux-firmware-nonfree。有关详细信息,请参阅手册:man sources.list
  • 运行sudo modprobe -r tg3以卸载驱动程序,然后sudo modprobe tg3加载驱动程序,查看是否已加载正确的固件。查看您之前使用 -command 查看的日志,看看tail发生了什么。它应该显示设备已安装,固件也已安装。
  • 如果有效,请设置网络/etc/network/interfaces并执行sudo ifup eth1或输入您的设备名称。

简而言之,您没有操作网卡所需的固件。此卡的固件应在firmware-linux-nonfree部分中的软件包中multiverse

祝你使用电脑顺利。

相关内容