it-swarm-vi.tech

Làm cách nào để kiểm tra trạng thái vật lý của cổng ethernet trong Linux?

Tôi muốn kiểm tra xem một ethX được chỉ định là lên hay xuống. Làm thế nào để tôi làm điều đó với dòng lệnh?

67
Jader Dias

$ ethtool <eth?>

Ví dụ:

$ ethtool eth0

cung cấp:

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000001 (1)
        Link detected: yes
70
Brooks

Kiểm tra /sys/class/net/eth0/operstate và các tệp khác trong thư mục này.

Theo tôi biết điều này là dành riêng cho Linux 2.6+, nhưng nó cung cấp giao diện sạch cho trình điều khiển kernel.

Tài liệu đầy đủ cho phần này của hệ thống tệp sys có thể được tìm thấy ở đây:

https://www.kernel.org/doc/Documentation/ABI/testing/sysfs- class-net

48
Linuxtraveler

ethtool [interface]

dòng cuối cùng cho thấy những gì bạn muốn:

[.__.] # ethtool eth0 [.__.] Cài đặt cho eth0: [.__.] Các cổng được hỗ trợ: [TP] [.__.] Các chế độ liên kết được hỗ trợ: 10baseT/Nửa 10baseT/Đầy đủ [.__.] 100baseT/Nửa 100baseT/Đầy đủ [.__.] 1000baseT/Đầy đủ [.__.] Hỗ trợ tự động đàm phán: Có [.__ .__.] 1000baseT/Đầy đủ [.__.] Thương lượng tự động được quảng cáo: Có [.__.] Tốc độ: 1000Mb/s [.__.] Song công: Đầy đủ [.__.] Cổng: Cặp xoắn [.__.] PHYAD: 0 [.__.] Transceiver: Internal [.__.] Tự động đàm phán: on [.__.] Hỗ trợ Wake-on: g [.__.] Wake-on: d [.__.] Mức tin nhắn hiện tại : 0x00000037 (55) [.__.] Liên kết được phát hiện: có [.__.]
34
Kurt
ip link show

là một cái khác. Tốt tuổi

ifconfig dev_name

hoặc là

ifconfig -a

cũng sẽ cho bạn biết nếu giao diện được bật lên. LƯU Ý : Hãy thận trọng với các phương pháp này vì chúng có thể hiển thị thông tin lỗi thời liên quan đến trạng thái của liên kết.

25
goo
dmesg | grep eth

bạn sẽ thấy tất cả các trao đổi trạng thái

16
lepole

Bạn cũng có thể sử dụng mii-tool để xem liên kết có hoạt động không và kiểm tra tốc độ thương lượng.

# mii-tool
[.__.] eth0: đã thương lượng 100baseTx-FD, liên kết ok

9
Alakdae

Để nhanh chóng thêm vào câu trả lời của @ goo , bạn sẽ diễn giải ip link hoặc là ip link show INTERFACE như sau.

Đây là một cổng được quản lý lên, nhưng về thể chất:

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000

Nói cách khác, UP bạn có thể thấy cho biết hệ thống được định cấu hình để thử và sử dụng NIC để kết nối mạng. NO-CARRIER ở đây cho bạn biết vấn đề ngăn mạng không hoạt động là gì.

Đây là một cổng bị ngừng hoạt động (lớp vật lý của nó là 'lên', về mặt kỹ thuật - đó là một VM):

3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000

Cuối cùng, cổng này hoạt động bình thường:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000

Đó là hành chính UP, LOWER_UP cho biết lớp vật lý đang hoạt động (nghĩa là có một sóng mang) và lớp thứ hai UP xác nhận (có hiệu lực) lớp IP đang hoạt động.

4
iwaseatenbyagrue

Bạn có thể có đầy đủ chi tiết với lệnh dưới đây

ethtool eth0

Và nếu bạn chỉ muốn xem trạng thái liên kết, lệnh đưa ra bên dưới

mii-tool eth0
3
Nikunj Ranpura

netplugd là một dịch vụ có thể chạy (các) chương trình khi cắm cáp hoặc rút cáp ra. Vì vậy, dòng lệnh sẽ là grep/var/log/message hoặc dmesg cho đầu ra netplugd.

2
rjt

Nếu hệ thống của bạn đang sử dụng ifplugd (ví dụ: trên Raspberry Pi với Raspbian) thì bạn có thể sử dụng công cụ trạng thái được liên kết ifplugstatus để lấy trạng thái liên kết của tất cả các giao diện:

ifplugstatus

hoặc một giao diện cụ thể (ví dụ: eth0):

ifplugstatus eth0
2
Pierz