2011-08-27 19:01:10 +0000 2011-08-27 19:01:10 +0000
20
20

在Ubuntu中缺少eth0以太网接口--无法连接路由器

我的Ubuntu 10.04机器(Sony Vaio VGN-SR490)通过直接连接到路由器的以太网电缆连接到互联网时遇到了麻烦。

我可以用同样的电缆用Windows机器连接到互联网,所以Linux的配置方式有问题。

我如何找出问题所在并解决它?

以下是我在Linux上的网络设置:

$ ifconfig

lo Link encap:Local Loopback  
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1

vmnet1 Link encap:Ethernet HWaddr 00:50:56:c0:00:01  
          inet addr:192.168.79.1 Bcast:192.168.79.255 Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

vmnet8 Link encap:Ethernet HWaddr 00:50:56:c0:00:08  
          inet addr:192.168.192.1 Bcast:192.168.192.255 Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

以下是我在Windows(Vista)上的网络设置:

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix . : [removed by me].
   Link-local IPv6 Address . . . . . : [removed by me]
   IPv4 Address. . . . . . . . . . . : 192.168.1.103
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

我从这些结果中删去了我的IP地址。如果需要这些信息,请告诉我。

这是/etc/network/interfaces的内容。

auto lo
iface lo inet loopback

加入auto eth0后,这是最新的结果。

$ sudo ifup eth0

Internet Systems Consortium DHCP Client V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
eth0: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up eth0.

下面是运行modprobe的结果。

$ sudo modprobe msk

FATAL: Module msk not found.

$ dmesg | grep eth

应一些评论这个问题的人的要求,我从电脑上删除了Linux,并安装了Windows XP。我安装并运行了一个程序来了解网卡的详细信息。以下是这些信息。

Network
    You are not connected to the internet
        Computer Name
            NetBIOS Name JOE-LAPTOP
            DNS Name joe-laptop
            Domain Name joe-laptop
        Remote Desktop
                Console
                    State Active
                    Domain joe-laptop
                RDP-Tcp
                    State Listen
        WinInet Info
            An internal error occurred.
        Wi-Fi Info
            Wi-Fi not enabled
        WinHTTPInfo
            WinHTTPSessionProxyType No proxy
            Session Proxy
            Session Proxy Bypass
            Connect Retries 5
            Connect Timeout 60000
            HTTP Version HTTP 1.1
            Max Connects Per 1.0 Servers INFINITE
            Max Connects Per Servers INFINITE
            Max HTTP automatic redirects 10
            Max HTTP status continue 10
            Send Timeout 30000
            IEProxy Auto Detect No
            IEProxy Auto Config
            IEProxy
            IEProxy Bypass
            Default Proxy Config Access Type No proxy
            Default Config Proxy
            Default Config Proxy Bypass
        Adapters List
        Network Shares
            No network shares

看起来网络适配器列表是空的。现在我将同时安装Windows XP和Ubuntu Linux双启动。我还是无法上网,即使通过Windows也无法上网。我在想,这可能是电脑的硬件问题还是路由器本身的问题。其他电脑可以连接到这个同一个路由器上,而且工作正常。(毕竟我是这样发帖的!)。

答案 (7)

16
16
16
2011-08-30 18:08:59 +0000

首先,你的以太网没有被Ubuntu管理,试试ifconfig -a而不是ifconfig,这样你就可以看到你所有的网络设备,是否被管理。试试ifconfig -a而不是仅仅/etc/network/interfaces,这样你就可以看到所有的网络设备,不管是否被管理。如果你在ifconfig -a列表中确实看到了ethX,那么解决方法应该很简单,而且你似乎已经得到了一半。以下内容需要进入你的lspci文件中。

auto ethX
iface ethX inet dhcp

第一行 “激活 "接口的管理 第二行设置为DHCP和IP。

然而,如果你在做VEN_的时候甚至没有看到任何ethX接口,那就是驱动的问题(Ubuntu甚至没有看到接口)。要解决这个问题,可以从Windows的设备管理器中查看你的以太网卡的PCI Vendor ID和Device ID,你可以对照这里,看看是否能找到相应的驱动(Vendor ID是制造商,Device ID是以太网卡的真实型号)。另一种在linux下的方法是通过&DEV_来实现。

在Windows 7中,通过设备管理器获取供应商/设备ID – 打开网络接口节点,双击网卡,点击 "详细信息",从下拉列表中选择 "硬件ID"。Vendor ID是0x6&前缀后的4位十六进制数字,Device ID是紧跟在Vendor后面的0x6&后的4位十六进制数字。

6
6
6
2015-03-20 22:16:56 +0000

我也遇到了类似的问题。通过运行ifconfig -a,我确定我的电脑上的网络设备只有p4p1lo。没有eth0

于是我编辑了/etc/network/interfaces,将eth0的所有实例替换为p4p1。现在文件的内容是

auto lo
iface lo inet loopback

auto p4p1
iface p4p1 inet dhcp

重启后,网络工作正常。

如果重要的话,我使用的是Ubuntu 12.04.5服务器版。

6
6
6
2011-08-28 20:55:51 +0000

我在评论中没有看到任何建议你查看udev和它的规则,应该安装eth0。在我的系统中,在/etc/udev/rules.d/75-network-devices.rules中,我有以下内容:

# Local network rules to name your network cards.
#
# These rules were generated by nethelper.sh, but you can
# customize them.
#
# You may edit them as needed.
# (If, for example, your machine has more than one network
# card and you need to be sure they will always be given
# the same name, like eth0, based on the MAC address)
#
# If you delete this file, /lib/udev/nethelper.sh will try to
# generate it again the next time udev is started.

KERNEL=="eth?", ATTR{address}=="original has my MAC address here", NAME="eth0"

另外,确保你有udevd在运行。这就是在基于Slackware的系统上创建ethx的原因。

1
1
1
2011-09-03 04:20:42 +0000

你也可以试试ls /etc/init.d | grep eth,看看init中是否有ETH0曾经存在的痕迹。以上是在Gentoo中使用的方法,我想Ubuntu使用的是不同的机制,但值得一试。

在Ubuntu 6.06的时候我就遇到过这样的问题,我最后清除了MB上的CMOS,不知怎么的就解决了我的问题。不过这只是在黑暗中的尝试。

0
0
0
2017-05-18 18:09:42 +0000

我经过几个月的拔毛,自己解决了这个问题。

1.进入更新管理器,在顶部点击查看。 2. 选择列表底部的内核版本(对我来说是4.4.0-78,但对某些人来说可能是4.8以上的版本)。 3. 点击安装。

我拔掉了WiFi加密狗,瞧,我现在有有线网络了。当然拔掉无线加密狗后,现在没有wlan0

0
0
0
2013-03-19 03:18:19 +0000
SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
eth0: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up eth0.

你只需要在70-persistent-net.rules中重命名/etc/udev/rules.d文件。

-1
-1
-1
2015-12-09 18:55:15 +0000

一般来说,如果你看不到你的网络接口,要么是它的名字不同(比如eth1而不是eth0),要么是它没有加载驱动。当我遇到类似的问题时,我可以通过调整/etc/interfaces或通过modprobe .NET来解决。