Я должен установить сетевое соединение при установке 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
Вы также можете выбрать 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
на нескольких компьютерах, которые я использую.
Есть еще один вариант: использовать предоставленные ядром каталоги (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