Missing eth0 Ethernet interface in Ubuntu — can't connect to router
Solution 1
First of all, your ethernet isn't being managed by Ubuntu. Try ifconfig -a
instead of just ifconfig
, so you can see all your networking devices, managed or not. If you do see ethX in the ifconfig -a
list, the solution should be straightforward, and you seemed to have gotten half of it. The following needs to go into your /etc/network/interfaces
file:
auto ethX
iface ethX inet dhcp
The first line "activates" management of the interface and the second line sets it to DHCP and IP.
However, if you don't even see any ethX interfaces when you do ifconfig -a
, it's a driver issue (Ubuntu isn't even seeing the interface). To solve this, either check from Windows' device manager for the PCI Vendor ID and Device ID of your ethernet card, which you can cross-reference here and see if you can find a driver for that (Vendor ID is the manufacturer, Device ID is the acutal model of the ethernet card). An alternative in-linux way to do this is via lspci
.
In Windows 7, getting the Vendor/Device IDs is through the Device Manager -- open up the Network Interfaces node, double click on your network card, click on 'detail', and select "Hardware IDs" from the drop-down list. The Vendor ID are the 4 hexadecimal digits after the VEN_
prefix, and the device id is the 4 hex digits after the &DEV_
immediately following the vendor.
Solution 2
I had a similar problem. By running ifconfig -a
, I determined that the only network devices on my computer were p4p1
and lo
. There was no eth0
.
So I edited /etc/network/interfaces
, replacing all instances of eth0
with p4p1
. The file's contents are now:
auto lo
iface lo inet loopback
auto p4p1
iface p4p1 inet dhcp
After rebooting, the networking was working fine.
If it matters, I was using Ubuntu 12.04.5 Server edition.
Solution 3
I dont see anything in the comments suggesting that you look into udev and its rules which should install eth0. On my system, in /etc/udev/rules.d/75-network-devices.rules, I have the following;
# 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"
Also, make sure you have udevd running. This is what creates ethx on a Slackware based system.
Solution 4
You may also want to try ls /etc/init.d | grep eth and see if there is anything in the init as an artifact that ETH0 was ever there. The above is what use in Gentoo, I think Ubuntu uses a different mechanism but its worth a shot.
Back in Ubuntu 6.06 I had an issue like this, I ended clearing the CMOS on the MB and somehow it solved my problem. That's a stab in the dark though.
Related videos on Youtube
Kathryn Hallett
Updated on September 18, 2022Comments
-
Kathryn Hallett almost 2 years
I'm having trouble getting my Ubuntu 10.04 machine (Sony Vaio VGN-SR490) to connect to the Internet by way of an Ethernet cable connected directly to my router.
I'm able to connect to the Internet using this same cable using a Windows machine, so there's something wrong with the way Linux is configured.
How do I got about figuring out what the problem is and solving it?
Here are my network settings on 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
Here are my network settings on 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
I censored my IP address from these results. If that information is needed, just let me know.
Here is the content of
/etc/network/interfaces
:auto lo iface lo inet loopback
After adding
auto eth0
, here are the latest results:$ 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.
Here are the results of running a modprobe:
$ sudo modprobe msk FATAL: Module msk not found. $ dmesg | grep eth
I removed Linux from my computer and installed Windows XP, at the request of some of the people commenting on this question. I installed an ran a program to find out details about the network card. Here is that information:
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
It looks like the network adapters list is empty. I will now install both Windows XP and Ubuntu Linux dual-boot. I'm still not able to access the internet, even through Windows. I'm wonder if this could be a hardware problem with the computer or a problem with the router itself. Other computers can connect to this same router, and work fine. (That's how I'm posting this after all!)
-
Gufran over 11 yearsI came across this post while looking for a similar solution, Can you just point out how can I find out the MAC address of my ethernet card even if I cannot see it listed anywhere ?
-
Py Mongo over 10 yearsThanks. This resolved my issue. On ubuntu 12.04 LTS I had /etc/udev/rules.d/70-persistent-net.rules which listed my two interfaces as
eth2
andeth3
, althoughtdmesg | grep eth
listed them aseth0
,eth1
. That happened because system was previously on different hardware, thus different MAC addresses and different identifiers after all. This answer helped me find out the issue. Thanks. -
donquixote over 9 yearsThis file does not even exist for me. What I have is
/etc/udev/rules.d/70-persistent-net.rules
. -
warsong almost 9 yearsWhy doesn't the ethernet device get detected and set up like it would on a desktop Ubuntu install? Why this extra jump through a hoop? Security or something else?
-
TheOsp about 8 yearsFor me it was p2p1, ubuntu 14.04
-
Afrowave over 7 yearsFor me it was
enp0s8
on Ubuntu 16.04. -
yass about 7 yearsOP is asking about Ubuntu not Windows XP
-
Aurimas over 6 yearsHey, the solution doesn't solve my problem and device is not even listed in lspci. Any suggestions on Ubuntu? (don't have Windows install atm)
-
marijnr over 5 yearsThe link in this answer is dead. Is it possible to provide a new link?
-
Nicolas GUILLAUME over 4 yearsYou are the hero we needed. For me, this was ens33, I have no idea what this all means but it worked... I'm running inside of VMWare btw and it was working fine until it suddenly wasn't. Probably an update that caused it.