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


20

我无法通过直接连接到路由器的以太网电缆使Ubuntu 10.04计算机(Sony Vaio VGN-SR490)连接到Internet。

我可以使用Windows机器使用相同的电缆连接到Internet,因此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,我仍然无法访问Internet。我想知道这可能是计算机的硬件问题还是路由器本身的问题。其他计算机可以连接到同一路由器,并且工作正常。(毕竟这就是我发布此信息的方式!)


感谢您的支持。我尝试将您的帖子缩短一些,以便我们能看得更清楚(如果您愿意,还可以删除一些评论)。您遇到的错误在Ubuntu和VMware中似乎很常见。您实际上是否将Ubuntu 本身作为虚拟机运行?还是在计算机上安装了Ubuntu?在Web上搜索SIOCSIFADDR:几乎没有这种设备能带来什么,但它似乎与Ubuntu作为虚拟机有关。
slhck

您会发布dmesg的结果吗?grep eth 并查看是否使用lspci
Linker3000

@slhck不,Ubuntu没有作为虚拟机运行。我已经在计算机上安装了Ubuntu作为操作系统。VMware已安装,但当前未运行。有趣的是,即使按照LiveCD上的说明进行操作,我也只是从Ubuntu LiveCD启动计算机,并且遇到了完全相同的问题。我开始强烈怀疑这是硬件问题。
凯思琳·哈莱特

1
@ Linker3000运行dmesg的结果| grep eth是空的,我看不到使用lspci列出的任何网络接口
Kathryn Hallett

您可以发布mke /机器型号,还是DIY主板制造商和型号,或者可以启动Windows,查看设备管理器中列出了哪些网络接口
Linker3000,2011年

Answers:


16

首先,您的以太网不受Ubuntu的管理。尝试ifconfig -a而不是仅尝试ifconfig,这样您就可以查看所有网络设备(受管与否)。如果您确实ifconfig -a列表中看到ethX ,则解决方案应该很简单,而且您似乎已经获得了一半。需要将以下内容放入您的/etc/network/interfaces文件:

auto ethX
iface ethX inet dhcp

第一行“激活”接口的管理,第二行将其设置为DHCP和IP。

但是,如果您这样做时甚至看不到任何ethX接口ifconfig -a,那是驱动程序问题(Ubuntu甚至看不到该接口)。要解决此问题,请从Windows的设备管理器中检查您的以太网卡的PCI供应商ID和设备ID,您可以在此处进行交叉引用并查看是否可以找到该驱动程序(供应商ID是制造商,设备ID是以太网卡的原始模型)。在Linux中执行此操作的另一种方法是通过lspci

在Windows 7中,通过设备管理器获取供应商/设备ID-打开“网络接口”节点,双击您的网卡,单击“详细信息”,然后从下拉列表中选择“硬件ID”。供应商ID是VEN_前缀后面的4个十六进制数字,而设备ID是&DEV_紧随供应商之后的4个十六进制数字。


1
为什么没有像在台式机Ubuntu安装上那样检测到以太网设备并进行设置?为什么这种额外的跳跃穿过铁环?安全还是其他?
战歌

嘿,该解决方案无法解决我的问题,lspci中甚至没有列出该设备。关于Ubuntu的任何建议?(没有Windows安装atm)
Aurimas

该答案中的链接已死。是否可以提供新链接?
marijnr

6

我在评论中没有看到任何暗示您研究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的原因。


我在寻找类似解决方案时碰到了这篇文章,您能指出我如何找到我的以太网卡的MAC地址吗?
古弗兰

谢谢。这解决了我的问题。在ubuntu 12.04 LTS上,我有/etc/udev/rules.d/70-persistent-net.rules,其中将我的两个接口都列为eth2eth3,尽管dmesg | grep eth将它们列为eth0eth1。发生这种情况是因为系统以前在不同的硬件上,因此毕竟是不同的MAC地址和不同的标识符。这个答案帮助我找出了问题所在。谢谢。
Janis Veinbergs 2013年

这个档案对我来说根本不存在。我所拥有的是/etc/udev/rules.d/70-persistent-net.rules
donquixote

6

我有一个类似的问题。通过运行ifconfig -a,我确定计算机上仅有的网络设备是p4p1lo。没有eth0

所以我编辑/etc/network/interfaces,替换的所有实例eth0p4p1。该文件的内容现在是:

auto lo
iface lo inet loopback

auto p4p1
iface p4p1 inet dhcp

重新启动后,网络运行正常。

如果有关系,我正在使用Ubuntu 12.04.5 Server版本。


对我来说是p2p1,ubuntu 14.04
TheOsp

1
对我来说,它是enp0s8在Ubuntu 16.04上。
Afrowave

你是我们需要的英雄。对我来说,这是ens33,我不知道这一切意味着什么,但它能正常工作...我正在VMWare btw内部运行,并且工作正常,直到突然不工作为止。可能是导致它的更新。
Nicolas GUILLAUME

1

您可能还想尝试ls /etc/init.d | grep eth,查看初始化中是否有任何东西作为ETH0曾经存在过的工件。上面是在Gentoo中使用的东西,我认为Ubuntu使用了不同的机制,但是值得一试。

回到Ubuntu 6.06,我遇到了这样的问题,我结束了MB上的CMOS的清除工作,并以某种方式解决了我的问题。那是在黑暗中的一击。


0
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


0

经过数月的拔头发,我为自己解决了这个问题:

  1. 转到顶部的更新管理器,单击视图。
  2. 在列表底部选择内核版本(对我来说是4.4.0-78,但对于某些版本,则是4.8以上的某个版本)。
  3. 点击安装。

我拔下了WiFi加密狗,瞧,我现在有了有线互联网。随着无线加密狗的发展,现在已经没有了wlan0


1
OP询问的是Ubuntu,而不是Windows XP
yass,

-1

通常,如果您看不到网络接口,则可能是它具有不同的名称(例如eth1而不是eth0)或未加载驱动程序。当我遇到类似的问题时,我可以通过调整/ etc / interfaces或modprobe来修复它们。


您能详细说明如何实现吗?谢谢。
fixer1234
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.