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?
$ 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
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
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ó [.__.]
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.
dmesg | grep eth
bạn sẽ thấy tất cả các trao đổi trạng thái
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
Để 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.
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
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.
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