MNorin.com
Блог про Linux, Bash и другие информационные технологии
Как в linux посмотреть сетевые интерфейсы?
Вопрос: Как в linux посмотреть сетевые интерфейсы?
Ответ: одной из этих команд:
ip a
/sbin/ifconfig
nestat -i
Похожие посты:
- Как в linux посмотреть пользователей?
- Как в linux посмотреть размер папки (директории)?
- Как посмотреть открытые порты?
- Маленькая особенность настройки сети в Solaris’е
- Как в linux изменить часовой пояс?
- Подключение принтера KYOCERA ECOSYS FS-1060DN в Linux
- Как узнать версию операционной системы на основе ядра Linux
- Как в linux сделать файл исполняемым?
- Как очистить кэш памяти в linux?
- whereami — автоматическая реконфигурация
- Нажмите здесь, чтобы поделиться контентом на Facebook. (Открывается в новом окне)
- Нажмите, чтобы поделиться на LinkedIn (Открывается в новом окне)
- Нажмите, чтобы поделиться на Reddit (Открывается в новом окне)
- Нажмите, чтобы поделиться на Twitter (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Tumblr (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pinterest (Открывается в новом окне)
- Нажмите, чтобы поделиться записями на Pocket (Открывается в новом окне)
- Нажмите, чтобы поделиться в Telegram (Открывается в новом окне)
- Нажмите, чтобы поделиться в WhatsApp (Открывается в новом окне)
- Нажмите, чтобы поделиться в Skype (Открывается в новом окне)
Имя сетевого интерфейса в переменной bash
Задача стоит написать скрипт,который будет вносить изменения в сетевые настройки.Не могу понять как получить имя сетевого интерфейса в переменную.Т.к. нужно будет раскинуть данный скрипт по многим машинам,что бы не вводить каждый раз интерфейс вручную.Все это нужно сделать на bash Из вариантов которые есть — это брать команду ifconfig -a и с нее пытаться вытащить название интерфейса
Отслеживать
задан 29 ноя 2018 в 12:29
55 5 5 бронзовых знаков
ls /sys/class/net ; for iface in `ls /sys/class/net`; do echo $iface; done
29 ноя 2018 в 12:42
если у вас больше чем 2 сервера смотрите в сторону Ansible/Pupe/Chef/Salt и им подобным системам 21 век ведь.
29 ноя 2018 в 21:44
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
1: (Thanks to @nobody)
ls /sys/class/net
2:
ip -o link show | awk ''
3:
nmcli dev status
4:
nmcli --terse --fields DEVICE,STATE dev status
5:
ifconfig | cut -d ' ' -f1| tr ':' '\n' | awk NF
Выбирайте тот вариант, который вам нравится больше всего.
Источники: AskUbuntu, Unix&Linux
Отслеживать
ответ дан 29 ноя 2018 в 16:06
69 420 1970 69 420 1970
1,951 1 1 золотой знак 14 14 серебряных знаков 33 33 бронзовых знака
Кусок рабочего скрипта:
#!/usr/bin/env bash IPv4_RE="[0-9]\.[0-9]\.[0-9]\.[0-9]" MAC_RE="([0-9A-Fa-f][:-])([0-9A-Fa-f])" UP=$'\e[32m▲ UP\e[39m' DOWN=$'\e[31m▼ DOWN\e[39m' _net_if() < # Return a list of avaialable physical network interfaces ls "/sys/class/net" \ -I "bon*" \ -I "lo*" \ -I "vir*" \ -I "vnet*" \ -I "macvtap*" \ -I "br-*" \ -I "docker*" >_net_str() < # Return a string information of a physical inteface local interface="$1" # < echo "$interface" ip a show "$" \ | grep -oP ".*(?= brd )" \ | grep -oP "$IPv4_RE" cat "/sys/class/net/$/address" if [[ "$(cat "/sys/class/net/$/operstate")" = up ]]; then printf "%s" "$" else printf "%s" "$" fi > | paste -sd " " - > chk_net_inf() < # local num num=0 for net in $(_net_if); do printf "NET-$\t: %s\n" "$(_net_str "$net")" let "num++" done > main() < chk_net_inf >main "$@"
~$ ./interfaces.sh NET-0 : enp2s0 192.168.1.69 bc:5f:f4:ee:1d:b2 ▲ UP
Каждую функцию можно привязать к переменной-массиву в Bash
_net_if — фильтрует все возможные интерфейсы от «виртуальных» и выдает только «железные»
Как найти доступные сетевые интерфейсы в системах Linux

Мануал
Автор cryptoparty На чтение 8 мин Опубликовано 19.10.2021
Мы можем настроить сетевые интерфейсы в Linux во время установки.
Но некоторые из вас могут предпочесть сделать это после установки или изменить существующие настройки.
Как вы уже знаете, для настройки сетевых параметров из командной строки необходимо сначала узнать, сколько интерфейсов доступно в системе.
В этом подробном руководстве рассматриваются все возможные способы перечисления и поиска доступных сетевых интерфейсов в операционных системах Linux и Unix.
1. Отображение сетевых интерфейсов с помощью команды ifconfig
Наиболее часто используемый метод поиска информации о сетевом интерфейсе – команда ifconfig.
Я полагаю, что некоторые пользователи Linux все еще используют ее.
$ ifconfig -a
enp5s0: flags=4098 mtu 1500 ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 171420 bytes 303980988 (289.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 171420 bytes 303980988 (289.8 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlp9s0: flags=4163 mtu 1500 inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255 inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0 inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20 ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet) RX packets 564574 bytes 628671925 (599.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 299706 bytes 60535732 (57.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Как видно из приведенного выше вывода, у меня есть два сетевых интерфейса, а именно enp5s0 (встроенный адаптер проводной сети Ethernet) и wlp9s0 (адаптер беспроводной сети) на моей Linux-машине.
Также lo – это интерфейс loopback, который используется для локального доступа ко всем сетевым сервисам.
Он имеет IP-адрес 127.0.0.1.
Мы также можем использовать ту же команду ‘ifconfig’ во многих вариантах UNIX , например, во FreeBSD , для получения списка доступных сетевых карт.
2. Вывод списка сетевых интерфейсов с помощью команды ip
Команда ‘ifconfig’ устарела в последних версиях Linux.
Поэтому вы можете использовать команду ‘ip’ для отображения сетевых интерфейсов, как показано ниже.
$ ip link show
Пример вывода:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp5s0: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff 3: wlp9s0: mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff
Вы также можете использовать следующие команды:
$ ip addr
$ ip -s link
Заметили ли вы, что эта команда также показывает состояние подключения сетевых интерфейсов?
Если вы внимательно посмотрите на приведенный выше вывод, вы заметите, что моя карта Ethernet не подключена сетевым кабелем (см. слово “DOWN” в приведенном выше выводе).
А беспроводная сетевая карта подключена (см. слово “UP”). Для получения более подробной информации ознакомьтесь с нашим предыдущим руководством по поиску подключенного состояния сетевых интерфейсов в Linux.
Этих двух команд ( ifconfig и ip ) достаточно, чтобы найти доступные сетевые карты в ваших системах Linux.
Однако в Linux существует несколько других способов составления списка сетевых интерфейсов.
3. Выводим список сетевых интерфейсов с помощью каталога /sys/class/net/
Ядро Linux сохраняет информацию о сетевых интерфейсах в каталоге /sys/class/net.
Вы можете проверить список доступных интерфейсов, заглянув в этот каталог.
$ ls /sys/class/net
Вывод:
enp5s0 lo virbr0 wlp9s0
4. Смотрим список сетевых интерфейсов с помощью файла /proc/net/dev
В операционных системах Linux файл /proc/net/dev содержит статистику о сетевых интерфейсах.
Чтобы просмотреть доступные сетевые карты, просто просмотрите его содержимое с помощью команды:
$ cat /proc/net/dev
Вывод:
Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 2836 30 0 0 0 0 0 0 2836 30 0 0 0 0 0 0 enp5s0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wlp9s0: 557664882 402062 0 0 0 0 0 0 20087136 165358 0 0 0 0 0 0 virbr0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5. Строим список сетевых интерфейсов с помощью команды netstat
Команда netstat отображает различные детали, такие как сетевые соединения, таблицы маршрутизации, статистику интерфейсов, маскарадные соединения и многоадресные членства.
$ netstat -i
Вывод:
Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp5s0 1500 0 0 0 0 0 0 0 0 BMU lo 65536 30 0 0 0 30 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU wlp9s0 1500 402063 0 0 0 165361 0 0 0 BMRU
Пожалуйста, имейте в виду, что netstat устарел.
Заменой для “netstat -i” является “ip -s link”.
Также обратите внимание, что этот метод выведет список только активных интерфейсов, а не всех доступных интерфейсов.
6. Находим список сетевых интерфейсов с помощью команды nmcli
nmcli – это инструмент командной строки для управления NetworkManager и составления отчетов о состоянии сети.
Он используется для создания, отображения, редактирования, удаления, активации и деактивации сетевых соединений и отображения состояния сети.
Если у вас установлена система Linux с Network Manager, вы можете перечислить доступные сетевые интерфейсы с помощью инструмента nmcli, используя следующие команды:
$ nmcli device status
Вывод:
DEVICE TYPE STATE CONNECTION wlp9s0 wifi connected JioFi4_12E9FE virbr0 bridge connected (externally) virbr0 p2p-dev-wlp9s0 wifi-p2p disconnected -- enp5s0 ethernet unavailable -- lo loopback unmanaged --
Вы также можете использовать эту команду для отображения сетевых интерфейсов в вашей системе Linux:
$ nmcli connection show
Большинство вышеупомянутых утилит предустановлены в большинстве систем Linux и Unix.
Существует еще несколько внешних утилит для отображения списка сетевых карт.
7. Как показать список сетевых интерфейсов с помощью hwinfo
Hwinfo – это утилита командной строки для просмотра информации об аппаратном обеспечении в системе Linux.
Она проверяет наличие аппаратного обеспечения в системе Linux и отображает подробную информацию о каждом аппаратном устройстве.
Hwinfo доступна в официальных репозиториях многих дистрибутивов Linux.
Чтобы установить hwinfo в системах на базе RPM, выполните команду:
$ sudo dnf install hwinfo
На системах на базе Deb вы можете установить hwinfo с помощью следующей команды:
$ sudo apt install hwinfo
После установки выполните следующую команду, чтобы перечислить имена сетевых интерфейсов с помощью утилиты hwinfo:
$ sudo hwinfo --short --network
Вывод:
network interface: enp5s0 Ethernet network interface virbr0 Ethernet network interface wlp9s0 Ethernet network interface lo Loopback network interface
8. Как показать сетевые интерфейсы с помощью lshw
Lshw (Hardware Lister) – это утилита CLI, которая предоставляет подробную информацию об аппаратной конфигурации системы Linux.
Чтобы показать список сетевых карт в Linux с помощью утилиты lshw, выполните следующие действия:
$ sudo lshw -class network -short
Вывод:
H/W path Device Class Description =============================================================== /0/100/1c.1/0 enp5s0 network RTL810xE PCI Express Fast Ethernet controller /0/100/1c.3/0 wlp9s0 network AR9285 Wireless Network Adapter (PCI-Express)
9. Просмотр сетевых интерфейсов с помощью inxi
Inxi – это еще один инструмент для получения системной информации из командной строки, такой же, как hwinfo и lshw.
Он показывает аппаратное обеспечение системы, процессор, драйверы, Xorg, рабочий стол, ядро, версию(и) GCC, процессы, использование оперативной памяти и множество другой полезной информации.
Чтобы показать информацию о сетевых картах, включая производителя, драйвер карты и количество доступных сетевых интерфейсов в системе Linux, запустите inix с опцией -N:
$ inxi -N Network: Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169 Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter driver: ath9k
- Как найти скрытые каталоги, файлы и папки Linux / Unix
- Как найти все файлы, принадлежащие определенному пользователю в Unix / Linux
- Как найти все файлы с правами 777 на Linux
- Как найти текущий рабочий каталог процесса, используя Pwdx на Linux
10. Отображение сетевых интерфейсов с помощью команды lspci
Команда lspci выводит список всех PCI-устройств в системе Linux.
Чтобы просмотреть список доступных сетевых интерфейсов в системе Linux, используйте lspci с командой egrep, как показано ниже:
$ lspci | egrep -i 'network|ethernet|wireless|wi-fi'
Вывод:
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 05) 09:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Как вывести только имена доступных сетевых интерфейсов
До сих пор мы рассматривали различные методы поиска доступных сетевых интерфейсов в Linux.
Во всех вышеупомянутых методах мы отображали доступные сетевые интерфейсы вместе с некоторыми дополнительными деталями, такими как данные RX/TX, Mac-адрес, состояние подключения, режим, тип сети и некоторые другие.
Если вы хотите убрать ненужные детали и перечислить только название сетевых интерфейсов, вы можете использовать одну из следующих команд.
$ ifconfig -a | sed 's/[ \t].*//;/^$/d'
Вывод:
enp5s0: lo: virbr0: wlp9s0:
Чтобы исключить устройство loopback (lo) из вывода, выполните эту команду:
$ ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'
Как было сказано ранее, команда ifconfig устарела.
Если команда ifconfig недоступна, используйте команду ip для отображения только имен сетевых интерфейсов с флагом -o, как показано ниже:
$ ip -o link show | awk -F': ' '' lo enp5s0 wlp9s0 virbr0
Вы также можете использовать следующую команду:
$ ip addr show | awk '/^[1-9]/ '
Заключение
В этом руководстве мы рассмотрели десять различных методов поиска и вывода списка доступных сетевых интерфейсов в Linux и Unix
. Мы также рассмотрели несколько способов отображения только имени сетевых интерфейсов в системах Linux.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий Отменить ответ

Поддержать нас
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (110)
- Книги (27)
- Мануал (2 359)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (831)
- Обход запретов (34)
- Опросы (3)
- Скрипты (116)
- Статьи (360)
- Философия (124)
- Юмор (18)
Наш Telegram

Социальные сети
Поделиться
Anything in here will be replaced on browsers that support the canvas element
- Каковы различные форматы сертификатов? 27.10.2023
Цифровые сертификаты могут использоваться для различных целей. Они могут использоваться для защиты соединений с веб-сайтами, для шифрования сообщений электронной почты или для проверки личности пользователя. Выбор правильного формата сертификата необходим для обеспечения безопасности и сохранности данных. Когда речь идет о различных форматах сертификатов, важно выбрать тот, который соответствует вашим потребностям Выберите формат сертификата, совместимый с […]
Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах. В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Что такое файл PFX? PFX (также PKCS#12) – это формат файла, содержащего сертификат(ы) и закрытый(ые) ключ(ы), […]
Одним из основных нововведений, появившихся в Podman, стала возможность запуска контейнеров без прав root. С точки зрения безопасности это было существенным улучшением, поскольку потенциально скомпрометированный контейнер, запущенный от имени root, представляет собой угрозу безопасности для хост-системы. Чтобы добиться аналогичного поведения, последние версии Docker поддерживают запуск демона docker в пользовательском контексте. Почему процессы в контейнерах […]
Small Form Factor Pluggable (SFP) – это компактный приёмопередатчик, который устанавливается в SFP порт коммутатора Ethernet. Модуль используется для присоединения платы сетевого устройства к оптическому волокну или витой паре. Модули SFP заменили устаревшие модули GBIC благодаря своим миниатюрным размерам. Это преимущество в размерах позволяет им эффективно работать в ограниченных сетевых средах, обеспечивая быстрый обмен данными […]
Давайте поговорим о классификации вредоносных программ. Когда антивирусная программа или средство защиты от вредоносного ПО обнаруживает что-то потенциально вредоносное, она использует определенный формат, чтобы помочь вам или другим специалистам понять, с какой именно угрозой вы имеете дело. Формат может выглядеть примерно так: Type:Platform/Family.Variant!Suffixes Это не всегда будет выглядеть именно так, поскольку, как вы помните, не […]
Как узнать имя сетевого интерфейса?
subj.
Писать в коде «eth0» не путь настоящих джедаев.

UVV ★★★★★
27.11.13 11:13:18 MSK

yoghurt ★★★★★
( 27.11.13 11:14:33 MSK )
cinyflo ★★★★★
( 27.11.13 11:15:26 MSK )
Ответ на: комментарий от yoghurt 27.11.13 11:14:33 MSK

UVV ★★★★★
( 27.11.13 11:16:29 MSK ) автор топика
Ответ на: комментарий от yoghurt 27.11.13 11:14:33 MSK

vasily_pupkin ★★★★★
( 27.11.13 11:27:01 MSK )
Ответ на: комментарий от yoghurt 27.11.13 11:14:33 MSK

А если более интересная задача — по открытому сокету узнать с какого интерфейса он открыт?
Dark_SavanT ★★★★★
( 27.11.13 15:36:25 MSK )
Ответ на: комментарий от Dark_SavanT 27.11.13 15:36:25 MSK

Задействовать getsockname() в дополнение к.