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

Brakujący interfejs ethernetowy eth0 w Ubuntu - nie można połączyć się z routerem

Mam problem z połączeniem mojej maszyny Ubuntu 10.04 (Sony Vaio VGN-SR490) z Internetem za pomocą kabla Ethernet podłączonego bezpośrednio do routera.

Jestem w stanie połączyć się z Internetem za pomocą tego samego kabla używając maszyny z systemem Windows, więc coś jest nie tak ze sposobem, w jaki Linux jest skonfigurowany.

Jak mam się dowiedzieć, na czym polega problem i jak go rozwiązać?

Oto moje ustawienia sieciowe w Linuksie:

$ 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

Oto moje ustawienia sieciowe w 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

Ocenzurowałem mój adres IP z tych wyników. Jeśli ta informacja jest potrzebna, proszę dać mi znać.

Oto zawartość /etc/network/interfaces:

auto lo
iface lo inet loopback

Po dodaniu auto eth0, oto ostatnie wyniki:

$ 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.

Oto wyniki po uruchomieniu modprobe:

$ sudo modprobe msk

FATAL: Module msk not found.

$ dmesg | grep eth

Usunąłem Linuksa z mojego komputera i zainstalowałem Windows XP, na prośbę niektórych osób komentujących to pytanie. Zainstalowałem i uruchomiłem program, aby dowiedzieć się szczegółów na temat karty sieciowej. Oto te informacje:

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

Wygląda na to, że lista adapterów sieciowych jest pusta. Zainstaluję teraz zarówno Windows XP jak i Ubuntu Linux dual-boot. Nadal nie mogę uzyskać dostępu do Internetu, nawet poprzez Windows. Zastanawiam się, czy to może być problem sprzętowy z komputerem lub problem z samym routerem. Inne komputery mogą się podłączyć do tego samego routera i działają poprawnie. (To jest jak jestem post to po wszystkim!)

Odpowiedzi (7)

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

Przede wszystkim, twój ethernet nie jest zarządzany przez Ubuntu. Spróbuj ifconfig -a zamiast po prostu ifconfig, dzięki czemu można zobaczyć wszystkie urządzenia sieciowe, zarządzane lub nie. Jeśli do zobaczyć ethX w ifconfig -a listy, rozwiązanie powinno być proste, i wydawało się, że masz połowę z tego. Do pliku /etc/network/interfaces należy wpisać następujące dane:

auto ethX
iface ethX inet dhcp

Pierwsza linia “aktywuje” zarządzanie interfejsem, a druga ustawia go na DHCP i IP.

Jednakże, jeśli nie widzisz żadnego interfejsu ethX po wykonaniu ifconfig -a, jest to problem ze sterownikami (Ubuntu nie widzi nawet interfejsu). Aby rozwiązać ten problem, sprawdź w menedżerze urządzeń Windows PCI Vendor ID i Device ID twojej karty ethernetowej, które możesz porównać tutaj i zobacz, czy możesz znaleźć dla nich sterownik (Vendor ID to producent, Device ID to aktualny model karty ethernetowej). Alternatywnym sposobem w linuxie jest lspci.

W Windows 7, uzyskanie Vendor/Device IDs jest poprzez Menedżera Urządzeń – otwórz węzeł Interfejsy Sieciowe, kliknij dwukrotnie na kartę sieciową, kliknij na “szczegóły” i wybierz “Hardware IDs” z rozwijanej listy. Vendor ID to 4 cyfry szesnastkowe po prefiksie VEN_, a device id to 4 cyfry szesnastkowe po &DEV_ bezpośrednio po vendorze.

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

Miałem podobny problem. Po uruchomieniu ifconfig -a ustaliłem, że jedynymi urządzeniami sieciowymi na moim komputerze były p4p1 i lo. Nie było żadnego eth0.

Wyedytowałem więc plik /etc/network/interfaces, zastępując wszystkie przypadki eth0 przez p4p1. Zawartość pliku jest teraz następująca:

auto lo
iface lo inet loopback

auto p4p1
iface p4p1 inet dhcp

Po ponownym uruchomieniu sieci działały poprawnie.

Jeśli to ma znaczenie, używałem Ubuntu 12.04.5 Server edition.

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

Nie widzę nic w komentarzach sugerującego, abyś przyjrzał się udev i jego regułom, które powinny zainstalować eth0. W moim systemie, w /etc/udev/rules.d/75-network-devices.rules, mam następujące;

# 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"

Upewnij się również, że masz uruchomiony udevd. To jest to co tworzy ethx w systemie opartym na Slackware.

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

Możesz również spróbować ls /etc/init.d | grep eth i zobaczyć, czy jest coś w init jako artefakt, że ETH0 był tam kiedykolwiek. Powyższe jest tym, czego używamy w Gentoo, myślę, że Ubuntu używa innego mechanizmu, ale warto spróbować.

Jeszcze w Ubuntu 6.06 miałem taki problem, skończyło się na wyczyszczeniu CMOS w MB i jakoś rozwiązało to mój problem. To jest jednak strzał w ciemno.

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

Rozwiązałem problem dla siebie po miesiącach ciągnięcia za włosy:

  1. Przejdź do menadżera aktualizacji na górze kliknij na widok.
  2. Wybierz wersję kernela na dole listy (u mnie była to 4.4.0-78, ale dla niektórych będzie to wersja powyżej 4.8).
  3. Kliknij na zainstaluj.

Odłączyłem WiFi dongle, i oto mam teraz przewodowy internet. Z bezprzewodowym kluczem sprzętowym oczywiście nie ma teraz 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.

Musisz tylko zmienić nazwę pliku 70-persistent-net.rules w /etc/udev/rules.d.

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

Ogólnie rzecz biorąc, jeśli nie widzisz swojego interfejsu sieciowego, to albo ma on inną nazwę (np. eth1 zamiast eth0), albo nie ma załadowanego sterownika. Kiedy miałem podobne problemy, byłem w stanie je rozwiązać poprzez dostosowanie /etc/interfaces lub przez modprobe .