Я хочу проверить, является ли указанный ethX физически вверх или вниз. Как мне это сделать с помощью командной строки?
Я хочу проверить, является ли указанный ethX физически вверх или вниз. Как мне это сделать с помощью командной строки?
Ответы:
$ ethtool <eth?>
Например:
$ ethtool eth0
обеспечивает:
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
Проверьте /sys/class/net/eth0/operstateи другие файлы в этом каталоге.
Насколько я знаю, это специфично для Linux 2.6+, но обеспечивает чистый интерфейс для драйвера ядра.
Полная документация для этой части sysфайловой системы может быть найдена здесь:
https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
ethtool [interface]
последняя строка показывает, что вы хотите:
# ethtool eth0
Настройки для eth0:
Поддерживаемые порты: [TP]
Поддерживаемые режимы связи: 10baseT / Half 10baseT / Full
100baseT / половина 100baseT / полный
1000baseT / Full
Поддерживает автосогласование: да
Рекламируемые режимы связи: 10baseT / Half 10baseT / Full
100baseT / половина 100baseT / полный
1000baseT / Full
Объявленные автосогласования: Да
Скорость: 1000 Мб / с
Дуплекс: Полный
Порт: витая пара
PHYAD: 0
Трансивер: внутренний
Авто-переговоры: вкл
Поддерживает Wake-On: г
Пробуждение: d
Текущий уровень сообщения: 0x00000037 (55)
Ссылка обнаружена: да
ip link show
Другой. Старый добрый
ifconfig dev_name
или же
ifconfig -a
также скажет вам, если интерфейс работает. ПРИМЕЧАНИЕ. Будьте осторожны с этими методами, поскольку они могут отображать устаревшую информацию о состоянии ссылки.
Link detected: noвместо Link detected: yes, а ip link show показывает <NO-CARRIER,BROADCAST,MULTICAST,UP>вместо <BROADCAST,MULTICAST,UP,LOWER_UP>, но показывает ifconfig -aUP BROADCAST MULTICAST MTU:1500 Metric:1 , что аналогично подключению NIC.
dmesg | grep eth
вы должны увидеть все статусы
eth0устройстве, но не на eth2устройстве.
Вы также можете использовать mii-tool, чтобы увидеть, работает ли ссылка, и проверить согласованную скорость.
# mii-tool
eth0: согласовано 100baseTx-FD, ссылка в порядке
# mii-tool eth0: negotiated 1000baseT-FD flow-control, link ok
Вы можете получить полную информацию с помощью команды ниже
ethtool eth0
И если вы просто хотите увидеть статус ссылки, введите команду ниже
mii-tool eth0
netplugd - это сервис, который может запускать программы, когда кабель подключен или кабель отключен. Таким образом, командная строка будет выглядеть как grep / var / log / messages или dmesg для вывода netplugd.
Чтобы быстро добавить ответ @ goo , вы должны интерпретировать ip linkили ip link show INTERFACEследующим образом.
Это порт, который административно работает, но физически отключен:
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
Другими словами, UPвы можете видеть, что система настроена на попытку использовать сетевой адаптер для работы в сети. NO-CARRIERЗдесь говорит вам , что проблема предотвращения сети от работы есть.
Это порт, который административно отключен (его физический уровень «вверх», технически - это виртуальная машина):
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
Наконец, этот порт работает нормально:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000
Это в административном UP, то LOWER_UPуказывает на физический уровень работает (то есть является носителем), а второй UPподтверждает (в сущности) слой IP - вверх.