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

4 ответа4

4

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

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

ip addr
2

На сайте 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

0

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

nmcli dev status

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

nmcli dev show

Который выдаст результат, похожий на команду Windows 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.АДРЕС [1]: 192.168.1.188/24
IP4.Шлюз: 192.168.1.1
IP4.МАРШРУТ [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.АДРЕС [1]: 127.0.0.1/8
IP4.GATEWAY:
IP6.АДРЕС [1]::: 1/128
IP6.GATEWAY:
acejavelin @ BlazingIcicle ~ $

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

nmcli dev show eth0 или nmcli dev show wl0

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

0

Есть еще один вариант: использовать предоставленные ядром каталоги (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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .