Thiếu giao diện Ethernet eth0 trong Ubuntu - không thể kết nối với bộ định tuyến


20

Tôi gặp sự cố khi để máy Ubuntu 10.04 của mình (Sony Vaio VGN-SR490) kết nối với Internet bằng cáp Ethernet được kết nối trực tiếp với bộ định tuyến của tôi.

Tôi có thể kết nối Internet bằng chính cáp này bằng máy Windows, do đó, có gì đó không đúng với cách cấu hình Linux.

Làm thế nào để tôi nhận ra vấn đề là gì và giải quyết nó?

Dưới đây là cài đặt mạng của tôi trên 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

Dưới đây là cài đặt mạng của tôi trên 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

Tôi đã kiểm duyệt địa chỉ IP của tôi từ những kết quả này. Nếu thông tin đó là cần thiết, chỉ cần cho tôi biết.

Đây là nội dung của /etc/network/interfaces:

auto lo
iface lo inet loopback

Sau khi thêm auto eth0, đây là kết quả mới nhất:

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

Dưới đây là kết quả của việc chạy một modprobe:

$ sudo modprobe msk

FATAL: Module msk not found.

$ dmesg | grep eth

Tôi đã gỡ bỏ Linux khỏi máy tính của mình và cài đặt Windows XP, theo yêu cầu của một số người bình luận về câu hỏi này. Tôi đã cài đặt một chương trình đã chạy để tìm hiểu chi tiết về card mạng. Đây là thông tin:

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

Có vẻ như danh sách các bộ điều hợp mạng trống. Bây giờ tôi sẽ cài đặt cả Windows XP và Ubuntu Linux dual-boot. Tôi vẫn không thể truy cập internet, thậm chí thông qua Windows. Tôi tự hỏi nếu điều này có thể là một vấn đề phần cứng với máy tính hoặc một vấn đề với chính bộ định tuyến. Các máy tính khác có thể kết nối với cùng bộ định tuyến này và hoạt động tốt. (Đó là cách tôi đăng bài này sau tất cả!)


Cảm ơn đã gắn bó với tôi. Tôi đã cố gắng rút ngắn bài viết của bạn một chút để chúng tôi có thể thấy mọi thứ rõ ràng hơn (Bạn cũng có thể xóa một vài bình luận nếu bạn muốn). Lỗi bạn dường như rất phổ biến với Ubuntu và VMware. Bạn có thực sự chạy Ubuntu bản thân như là một máy ảo? Hay là Ubuntu được cài đặt trên máy tính? Tìm kiếm trên web cho SIOCSIFADDR: Không có thiết bị nào như vậy xuất hiện một chút, nhưng dường như nó có liên quan đến Ubuntu như một máy ảo.
slhck

Bạn có thể đăng kết quả của dmesg | grep eth và cũng xem liệu có bất kỳ giao diện mạng nào được liệt kê bằng lspci
Linker3000

@slhck Không, Ubuntu không chạy như một máy ảo. Tôi đã cài đặt Ubuntu làm hệ điều hành trên máy tính của mình. VMware đã được cài đặt, nhưng hiện không chạy. Thật thú vị, tôi vừa khởi động máy tính của mình từ Ubuntu LiveCD và đang gặp vấn đề chính xác tương tự, ngay cả sau khi làm theo hướng dẫn của bạn trên LiveCD. Tôi bắt đầu nghi ngờ đó là một vấn đề phần cứng.
Kathryn Hallett

1
@ Linker3000 Kết quả chạy dmesg | grep eth trống rỗng và tôi không thấy bất kỳ giao diện mạng nào được liệt kê bằng lspci
Kathryn Hallett

Bạn có thể đăng mke / model của máy không hoặc nếu đó là DIY bo mạch chủ tạo và tạo mô hình HOẶC nếu bạn có thể khởi động Windows, hãy xem giao diện mạng nào được liệt kê trong trình quản lý thiết bị
Linker3000

Câu trả lời:


16

Trước hết, ethernet của bạn không được Ubuntu quản lý. Hãy thử ifconfig -athay vì chỉ ifconfigđể bạn có thể thấy tất cả các thiết bị mạng của mình, được quản lý hay không. Nếu bạn làm thấy ethX trong ifconfig -adanh sách, các giải pháp cần được đơn giản, và bạn dường như đã nhận được một nửa của nó. Những điều sau đây cần phải đi vào /etc/network/interfacestập tin của bạn :

auto ethX
iface ethX inet dhcp

Dòng đầu tiên "kích hoạt" quản lý giao diện và dòng thứ hai đặt nó thành DHCP và IP.

Tuy nhiên, nếu bạn thậm chí không nhìn thấy bất kỳ giao diện ethX nào khi thực hiện ifconfig -athì đó là sự cố trình điều khiển (Ubuntu thậm chí không nhìn thấy giao diện). Để giải quyết vấn đề này, hãy kiểm tra từ trình quản lý thiết bị của Windows để biết ID nhà cung cấp PCI và ID thiết bị của thẻ ethernet của bạn, bạn có thể tham khảo chéo ở đây và xem liệu bạn có thể tìm thấy trình điều khiển cho điều đó không (ID nhà cung cấp là nhà sản xuất, ID thiết bị là mô hình chính của thẻ ethernet). Một cách khác trong linux để làm điều này là thông qua lspci.

Trong Windows 7, nhận ID nhà cung cấp / thiết bị thông qua Trình quản lý thiết bị - mở nút Giao diện mạng, nhấp đúp vào thẻ mạng của bạn, nhấp vào 'chi tiết' và chọn "ID phần cứng" từ danh sách thả xuống. ID nhà cung cấp là 4 chữ số thập lục phân sau VEN_tiền tố và id thiết bị là 4 chữ số hex sau &DEV_ngay sau nhà cung cấp.


1
Tại sao thiết bị ethernet không được phát hiện và thiết lập như trên thiết bị Ubuntu trên máy tính để bàn? Tại sao điều này thêm nhảy qua một cái vòng? Bảo mật hay cái gì khác?
Warsong

Này, giải pháp không giải quyết được vấn đề của tôi và thiết bị thậm chí không được liệt kê trong lspci. Có gợi ý nào về Ubuntu không? (không cài đặt Windows atm)
Aurimas

Liên kết trong câu trả lời này là chết. Có thể cung cấp một liên kết mới?
marijnr

6

Tôi không thấy bất cứ điều gì trong các ý kiến ​​cho thấy rằng bạn nhìn vào udev và các quy tắc của nó sẽ cài đặt eth0. Trên hệ thống của tôi, trong /etc/udev/rules.d/75-network-devices.rules, tôi có những điều sau đây;

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

Ngoài ra, hãy chắc chắn rằng bạn có udevd đang chạy. Đây là những gì tạo ra ethx trên hệ thống dựa trên Slackware.


Tôi đã xem qua bài đăng này trong khi tìm kiếm một giải pháp tương tự, Bạn có thể chỉ ra làm thế nào tôi có thể tìm ra địa chỉ MAC của thẻ ethernet của tôi ngay cả khi tôi không thể thấy nó được liệt kê ở bất cứ đâu?
Gufran

Cảm ơn. Điều này giải quyết vấn đề của tôi. Trên Ubuntu 12.04 LTS tôi đã có /etc/udev/rules.d/70-persistent-net.rules liệt kê hai giao diện của tôi là eth2eth3mặc dù dmesg | grep ethliệt kê chúng là eth0, eth1. Điều đó đã xảy ra bởi vì hệ thống trước đây trên các phần cứng khác nhau, do đó, tất cả các địa chỉ MAC khác nhau và các mã định danh khác nhau. Câu trả lời này đã giúp tôi tìm ra vấn đề. Cảm ơn.
Janis Veinbergs

Tập tin này thậm chí không tồn tại đối với tôi. Những gì tôi có là /etc/udev/rules.d/70-persistent-net.rules.
donquixote

6

Tôi đã có một vấn đề tương tự. Bằng cách chạy ifconfig -a, tôi xác định rằng các thiết bị mạng duy nhất trên máy tính của tôi là p4p1lo. Không có eth0.

Vì vậy, tôi chỉnh sửa /etc/network/interfaces, thay thế tất cả các trường hợp eth0với p4p1. Nội dung của tệp hiện là:

auto lo
iface lo inet loopback

auto p4p1
iface p4p1 inet dhcp

Sau khi khởi động lại, mạng đã hoạt động tốt.

Nếu có vấn đề, tôi đã sử dụng phiên bản Ubuntu 12.04.5 Server.


Đối với tôi, đó là p2p1, ubfox 14.04
TheOsp

1
Đối với tôi đó là enp0s8trên Ubuntu 16.04.
Afiances

Bạn là anh hùng chúng tôi cần. Đối với tôi, đây là 33, tôi không biết tất cả điều này có nghĩa là gì nhưng nó hoạt động ... Tôi đang chạy bên trong VMWare btw và nó hoạt động tốt cho đến khi nó đột nhiên không hoạt động. Có lẽ là một bản cập nhật gây ra nó.
Nicolas GUILLAUME

1

Bạn cũng có thể muốn thử ls /etc/init.d | grep eth và xem nếu có bất cứ điều gì trong init như một vật phẩm mà ETH0 đã từng ở đó. Trên đây là những gì sử dụng trong Gentoo, tôi nghĩ Ubuntu sử dụng một cơ chế khác nhưng nó đáng để thử.

Quay trở lại Ubuntu 6.06 Tôi gặp một vấn đề như thế này, tôi đã kết thúc việc xóa CMOS trên MB và bằng cách nào đó nó đã giải quyết được vấn đề của tôi. Đó là một vết đâm trong bóng tối.


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.

Bạn chỉ cần đổi tên 70-persistent-net.rulestập tin trong /etc/udev/rules.d.


0

Tôi đã giải quyết vấn đề cho bản thân sau nhiều tháng nhổ tóc:

  1. Đi đến trình quản lý cập nhật ở đầu nhấp vào xem.
  2. Chọn phiên bản kernel ở cuối danh sách (đối với tôi là 4.4.0-78 nhưng đối với một số phiên bản sẽ là một số phiên bản trên 4.8).
  3. Bấm vào cài đặt.

Tôi đã rút phích cắm WiFi, và lo và bây giờ tôi có internet có dây. Với dongle không dây tất nhiên bây giờ không có wlan0.


1
OP đang hỏi về Ubuntu chứ không phải Windows XP
vào

-1

Nói chung, nếu bạn không thấy giao diện mạng của mình, thì nó có tên khác (như eth1 thay vì eth0) hoặc không tải trình điều khiển. Khi tôi gặp vấn đề tương tự, tôi có thể khắc phục chúng bằng cách điều chỉnh / etc / giao diện hoặc bằng modprobe.


Bạn có thể giải thích làm thế nào để thực hiện điều đó? Cảm ơn.
fixer1234
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.