Есть ли какая-нибудь команда Linux, которую я могу использовать, чтобы показать все сетевые интерфейсы, кроме ifconfig

Я должен установить сетевое соединение при установке Arch Linux (в Virtualbox) и мне нужно знать, какие сетевые интерфейсы я использую. Как я могу сделать это без использования ifconfig?

4 ответа

ifconfig инструмент (от net-tools) осуждается в пользу ip инструмент, который является частью iproute2 люкс.

Это перечислит интерфейсы и их IP-адреса, если они есть:

ip addr

На сайте Linux.com есть следующая статья о замене команды ifconfig на ip:

Первое, что большинство людей узнают с помощью команды ifconfig, это как узнать, какой IP-адрес был назначен интерфейсу. Обычно это делается с помощью команды ifconfig и без флагов или аргументов. Чтобы сделать то же самое с командой ip, она запускается так:

ip a

Эта команда выведет список всех интерфейсов с соответствующей информацией (рисунок 1 выше).

Допустим, вы хотите видеть только информацию IPv4 (для ясности). Для этого выполните команду:

IP-4

Или, если вы хотите видеть только информацию IPv6:

ip -6 a

Что делать, если вы хотите видеть информацию только об определенном интерфейсе? Вы можете получить информацию о беспроводном соединении с помощью команды:

айпи шоу wlan0

Вы даже можете получить более конкретную информацию с помощью этой команды. Если> вы хотите просматривать только IPv4 на интерфейсе wlan0, введите команду:

ip -4 шоу wlan0

Вы даже можете перечислить только работающий интерфейс, используя:

ip link ls up

Есть еще один вариант: использовать предоставленные ядром каталоги (sysfs).

ls /sys/class/net/

Таким образом, легко написать:

for interface in $(ls /sys/class/net/) ; do
   echo $interface
   # ...
done

Обратите внимание, что подкаталоги могут предоставлять некоторую информацию об аспектах уровня канала (например, MAC-адрес Ethernet), но не такие вещи, как IP-адрес.

Если кто-то хочет узнать, что можно найти там, вот документация: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net

Вы также можете выбрать GUI Network Manager с помощью команды для перечисления доступных интерфейсов, их типа, состояния подключения и общего "имени" подключения.

nmcli dev status

Или вы можете пойти дальше с

nmcli dev show

Который даст результат, аналогичный окну ipconfig /all команда:

acejavelin @ BlazingIcicle ~ $ nmcli dev show
GENERAL.DEVICE: enp2s0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: F8: 32: E4: BD: 00: 00
GENERAL.MTU: 1500
GENERAL.STATE: 100 (подключено)
ОБЩАЯ СВЯЗЬ: Проводное соединение 1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
ПРОВОДНЫЕ СВОЙСТВА. КАРЬЕР: на
IP4.ADDRESS [1]: 192.168.1.188/24
IP4.GATEWAY: 192.168.1.1
IP4.ROUTE [1]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP4.DNS [1]: 208,67,220,220
IP4.DNS [2]: 208,67,222,222
IP4.DNS [3]: 192.168.1.1
IP6.АДРЕС [1]: fe80:: 36f1: 930b: 48a: ab0e / 64
IP6.GATEWAY:

GENERAL.DEVICE: вот
GENERAL.TYPE: петля
GENERAL.HWADDR: 00: 00: 00: 00: 00: 00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (неуправляемый)
ОБЩАЯ СВЯЗЬ: -
GENERAL.CON-PATH: -
IP4.ADDRESS [1]: 127.0.0.1/8
IP4.GATEWAY:
IP6.ADDRESS [1]::: 1/128
IP6.GATEWAY:
acejavelin @ BlazingIcicle ~ $

Это также может быть доработано для конкретного интерфейса

nmcli dev show eth0 или же nmcli dev show wl0

Я также нашел полезным использовать псевдоним ipconfig на самом деле быть nmcli dev show на нескольких компьютерах я использую.

Другие вопросы по тегам