eth0 NO-CARRIER,ifconfig 显示无 IP 地址

eth0 NO-CARRIER,ifconfig 显示无 IP 地址

我离开 Ubuntu 一段时间后又回来了,所以我记不太清楚了。现在我正试图获取我的 IP 地址。我运行后得到的结果ifconfig只有

eth0      Link encap:Ethernet  HWaddr 3c:97:0e:11:22:0d  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:f2500000-f2520000 

(顺便说一句,我真的不明白这是什么UP BROADCAST MULTICAST意思。)

 $ sudo ifdown eth0 
 ifdown: interface eth0 not configured 

然后

$ sudo ifup eth0
Ignoring unknown interface eth0=eth0

最后还有2点:

$ ip addr show eth0
eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN   
group default qlen 1000 link/ether 3c:97:0e:11:22:0d brd ff:ff:ff:ff:ff:ff

答案1

出现此问题的一个很小的可能性是以太网接口配置错误。

使用ethtool eth0命令获取现有配置。
在某些情况下,您可能会发现

# ethtool eth0
Settings for eth0:
    ...
    Speed: Unknown!
    Duplex: Unknown! (255)
    ...

如果是,请使用以下命令设置速度和双工:

ethtool -s eth0 speed 100 duplex full

对于现代网络,此配置应该有效。
设置速度和双工后,dhclient eth0如果仍然没有获取 IP,请执行此操作。


注意:上述设置将在重启时重置。因此,如果上述解决方案解决了您的问题,请将以下几行添加到/etc/rc.local

ethtool -s eth0 speed 100 duplex full
dhclient eth0

答案2

这个问题是在虚拟机上出现的吗?如果是,请在高级网络设置中,在虚拟机管理程序上查看“电缆已连接”复选框是否已勾选。可能只是虚拟机未连接到网络

答案3

您可以尝试将 IP 地址设置为子网中的某个地址。假设您使用的是 192.168.1.255 网络,请尝试以下操作:

ifconfig address 192.168.1.50 netmask 255.255.255.0 gateway 192.168.1.1

将 192.168.1.50 替换为您想要获取的 IP,将 192.168.1.1 替换为您的路由器/网关的 IP 地址。

我遇到过类似的问题,这个帮我解决了。

答案4

我已经通过以下方式解决了这个问题:

  1. 复制ifcfg当前运行的文件
  2. 将所需的正确 IP 号码及其子网放入新 IP 号码中。例如ifcfg-eth0ifcfg-eth1
  3. 重新启动桌面。

对我来说它工作正常。

相关内容