Основные сетевые команды в Linux
Команды для работы с компьютерной сетью – это неотъемлемый инструмент для любого специалиста. Сориентироваться среди многочисленных команд и документации может быть довольно сложно, и иметь единую точку справки играет важную роль при выполнении задач, связанных с сетью.
Эта статья содержит список из 20 важных сетевых команд для Linux.
Предварительный требования
- Доступ к командной строке.
- Учётная запись администратора с правами sudo.
20 сетевых команд для Linux
В Linux имеется множество полезных сетевых команд и инструментов. Эти команды обычно предназначены для выполнения сложных сетевых задач, таких как мониторинг, устранение неполадок и настройка сети. Большинство утилит для работы с сетью включены в состав старого пакета net-tools или более современного iproute2.
В большинстве дистрибутивов Linux доступны как команды net-tools, так и iproute2. Однако рекомендуется использовать инструменты iproute2 из-за их гибкости и скорости.
Несмотря на то, что net-tools считаются устаревшими, они до сих пор широко используются в старых скриптах и конфигурациях.
NETWORK ADMIN
Синтаксис конкретной команды может варьироваться в зависимости от версии команды. Предварительно проверьте синтаксис команды с помощью следующей команды:
man [command]
Команда man выводит на экран руководство для указанной команды в терминале.
Ниже представлена краткая сводка из 20 сетевых команд для Linux.
ip
Команда ip представляет собой интегрированный инструмент для работы с сетями в операционных системах Linux. Она облегчает просмотр и настройку маршрутизации, интерфейсов, сетевых устройств и туннелей.
Эта команда входит в состав пакета iproute2 и заменяет множество старых инструментов для работы с сетью, таких как команды route, ifconfig и netstat.
Синтакстис:
ip [options] object [command]
Каждый компонент команды выполняет следующие функции:
- options – это параметры командной строки, которые влияют на поведение команды.
- object – отображает объекты, которые могут быть настроены.
- command – представляет собой подкоманду, действие, которое выполняется с объектом. Доступные команды зависят от конкретного объекта.
Пример:
При использовании команды ip без параметров, объектов или команд, отображается меню справки.
ip

Для просмотра текущей версии, используйте опцию -V.
ip -V

Результат вывода содержит информацию о версии пакета и библиотеки, используемых утилитой ip.
ip addr
Команда ip addr позволяет управлять и просматривать IP-адреса сетевых интерфейсов. Ее альтернативными названиями являются ip address или ip a.
Синтаксис:
ip addr [subcommand]
Список доступных подкоманд для данного объекта:
- add – Осуществляет добавление нового адреса.
- show – Показывает адреса протокола.
- del – Осуществляет удаление адреса.
- flush – Удаляет адреса в зависимости от заданных критериев.
У каждой подкоманды есть дополнительные параметры и ключевые слова, которые позволяют выполнять конкретные задачи с адресами сетевого интерфейса.
Пример:
Команда ip addr без каких-либо подкоманд показывает информацию о сетевом интерфейсе, включая соответствующие IP-адреса:
ip addr

Результат для команды ip addr show будет такой же.
Для просмотра информации о конкретном сетевом интерфейсе, выполните команду ip addr show с указанием его имени.
ip addr show [interface]

Команда осуществляет фильтрацию вывода команды ip addr, отображая только информацию, связанную с указанным интерфейсом.
ip link
Команда ip link предоставляет возможность управления и отображения информации о сетевых интерфейсах, позволяя просматривать, изменять, включать и выключать их.
Синтаксис:
ip link [subcommand] [options] [interfaces]
С помощью подкоманд можно выполнять следующие операции:
- show – Показывает информацию о сетевом интерфейсе.
- set – Вносит изменения или добавляет информацию к сетевому интерфейсу.
- add – Создает новый сетевой интерфейс.
- del – Осуществляет удаление сетевого интерфейса.
Подкоманды предоставляют дополнительные опции и позволяют выбирать определенные интерфейсы.
Пример:
Команда ip link без дополнительных подкоманд и параметров выводит информацию о всех сетевых интерфейсах.
ip link

Команда ip link show выдает идентичный вывод.
Для выключения интерфейса, выполните следующую команду в роли суперпользователя:
sudo ip link set [interface] down
ip link show

После выполнения команды состояние интерфейса меняется на DOWN.
Чтобы активировать интерфейс, примените ключевое слово up:
sudo ip link set [interface] up

Состояние интерфейса переходит в режим UP.
ip route
Команда ip route предоставляет доступ к таблице IP-маршрутизации и позволяет пользователям настраивать её и выполнять другие важные сетевые задачи, связанные с маршрутизацией.
Синтаксис:
ip route [subcommand] [options] [destination]
В качестве подкоманд доступны следующие действия:
- show – Показывает таблицу маршрутизации.
- add – Осуществляет добавление нового маршрута в таблицу.
- del – Осуществляет удаление маршрута из таблицы.
- change – Вносит изменения в существующий маршрут.
Параметр [destination] указывает, куда направляется сетевой трафик. Дополнительные опции обеспечивают дополнительное управление потоком трафика.
Пример:
ip route show

Каждая строка в выводе соответствует отдельным маршрутам в таблице.
ifconfig
Команда ifconfig (конфигурация интерфейса) управляет и предоставляет информацию о сетевых интерфейсах в системе. Эта команда является частью пакета net-tools.”
Несмотря на ограниченные функции по сравнению с командой ip, команда ifconfig всё еще активно применяется для настройки сетевых интерфейсов.
Синтаксис:
ifconfig [interface] [options]
Структура синтаксиса представляется следующим образом:
- interface – Сетевой интерфейс, для которого требуется настройка или отображение информации. Параметр не является обязательным, и если интерфейс не указан, то будет показан статус всех активных интерфейсов.
- options – Опции командной строки для выполнения конкретных действий или настройки определенных параметров. Также важно отметить, что параметр является необязательным.
Пример:
ifconfig -s

Эта команда предоставляет краткую сводку с важной информацией о текущих интерфейсах.
dig
Команда dig предназначена для выполнения запросов в систему доменных имен (DNS) и поиска информации о DNS-записях. Она собирает информацию о доменных именах и связанных записях.
Для устранения проблем с DNS и проверки настроек DNS в системе Linux используйте команду dig. Она отлично подходит для создания сценариев и автоматизации задач, связанных с анализом сети. Эта мощная команда настолько популярна в решении сетевых проблем, что существует версия dig для Windows.
Синтаксис:
dig [options] [domain] [record type] [DNS server]
Элементы команды включают:
- options – Аргументы, влияющие на функционирование команды.
- domain – Имя домена, которое требуется запросить.
- record type – Тип DNS-записи для запроса. Значение по умолчанию – записи типа A.
- DNS Server – Заданный DNS-сервер для выполнения запроса.
Все параметры необязательны. По умолчанию команда выводит информацию о DNS-разрешителе и статистику запросов без дополнительных опций.
Пример:
dig google.com

Вместо этого, можно предоставить IP-адрес и использовать опцию -x для выполнения обратного DNS-поиска.
dig -x 8.8.8.8

В разделе ANSWER SECTION в выводе отображается запрошенное доменное имя.
nslookup
Команда nslookup схожа с командой dig. Основное отличие между этими командами заключается в том, что nslookup предоставляет интерактивный режим. Он позволяет проводить диагностику и выполнять запросы к DNS-серверам, что полезно при решении задач сетевого анализа и DNS.
Команда поддерживается на большинстве операционных систем, включая Unix-подобные и Windows.
Синтаксис:
nslookup [domain] [DNS server]
Элементы команды включают:
- domain – Имя домена для поиска. Если не указывать имя, то в интерактивном режиме можно выполнять запросы к нескольким доменам.
- DNS server – DNS-сервер, используемый для поиска. По умолчанию используется DNS-сервер системы, если не указан конкретный.
По умолчанию запрос выполняет поиск доменных записей типа A.
Пример:
nslookup google.com

Результат выводит информацию о DNS-разрешении для предоставленного домена.
netstat
Команда netstat (сетевая статистика) представляет собой сетевую утилиту, отображающую различные сетевые статистические данные. Она предоставляет информацию о статусе сетевых портов и их доступности.
Команда входит в состав пакета net-tools и считается устаревшей. Рекомендуется использовать команду ss, которая входит в состав iproute2. Другие функциональности команды netstat доступны с помощью команды ip.
Синтаксис:
netstat [options]
С помощью команды можно комбинировать различные опции, чтобы настроить вывод и отобразить конкретные типы сетевой информации. Без дополнительных опций команда перечисляет открытые сокеты для всех настроенных семейств адресов.
Пример:
netstat -at

Результат отображает все активные TCP-соединения в системе.
traceroute
Команда traceroute – это инструмент сетевой диагностики, который поддерживается в Linux, macOS и Windows. С её помощью можно отслеживать маршрут, по которому пакеты идут к заданной цели в сети TCP/IP.
С помощью этой команды можно обнаруживать проблемы с маршрутизацией и узкими местами, отображая промежуточные узлы, через которые проходят пакеты при перемещении от отправителя к получателю.
По умолчанию выполнение трассировки составляет 30 прыжков с размером пакета 60 байтов для IPv4 (80 байтов для IPv6).
Синтаксис:
traceroute [options] [hostname/IP]
Для работы требуется параметр [hostname/IP], а дополнительные опции определяют, выполнять ли DNS-запросы, значение TTL и тип пакета.
Пример:
Для отслеживания маршрута пакета с использованием протокола TCP выполните команду traceroute от имени администратора с опцией -T.
sudo traceroute -T 184.95.56.34

Результат показывает последовательный маршрут от источника до места назначения.
tracepath
Командаtracepathаналогична командеtraceroute. Она выявляет маршруты и задержки от отправителя до получателя, отображая маршрутизаторы и сетевые переходы.
Несмотря на то, чтоtraceroute– известная команда с обширными опциями,tracepathпредставляет собой простой инструмент для отображения сети, доступный на большинстве систем Linux. Для более подробной информации, сравнитеtracepathиtraceroute.
Синтаксис:
tracepath [options] [hostname/IP]
Дополнительные [options] определяют поведение запроса, включая количество переходов и опцию выполнения обратного DNS-поиска для адресов. Поле [hostname/IP] обязательно и указывает место назначения.
Пример:
tracepath [hostname/IP]

В результатах видно номер шага, IP-адрес или определенное имя хоста и время задержки туда и обратно (RTT) для каждого шага.
host
Командаhost– это простой инструмент для проведения DNS-запросов. Она выполняет разрешение IP-адресов в доменные имена и наоборот.
Используйте эту команду для выполнения запросов DNS и базового поиска и устранения проблем DNS.
Синтаксис:
host [options] [hostname/IP]
Различные [options] управляют поведением команды, такими как тип запроса или стартовая запись (SOA) для указанного домена.
Пример:
host google.com

Вывод отображает разрешенные IPv4 и IPv6 адреса для предоставленного имени хоста.
hostname
Командаhostnameпредназначена для отображения и изменения имени хоста и домена системы, а также идентификации устройств в сетевой среде.
Воспользуйтесь командой для вывода, изменения или поиска имен хостов.
Синтаксис:
hostname [options] [name]
Параметр [options] определяет, что отображается в результате выполнения команды, в то время как параметр [name] временно устанавливает имя хоста в предоставленное имя.
Пример:
Для временного изменения имени системы выполните команду без параметров и укажите имя:
sudo hostname [name]
При выполнении команды не выводится результат. Для проверки текущего имени хоста выполните:
hostname
На экран выводится текущее имя хоста.
ping
Командаping– это сетевая утилита для проверки доступности хоста. Она отправляет ICMP-запросы к хосту (компьютеру или серверу) и измеряет время, затраченное на возврат ответа (RTT).
Пинг помогает оценить сетевую задержку между двумя узлами и проверить, доступна ли сеть.
Синтаксис:
ping [options] [hostname/IP]
Укажите [hostname/IP] хоста, к которому выполняется пинг. Дополните команду опциями для управления её поведением, такими как количество запросов пинга, интервалы или размер пакета.
Пример:
ping -c 5 google.com

Эта команда посылает пять ICMP-пакетов на указанный хост и выводит статистику.
ss
Командаss– это инструмент командной строки для отображения сетевой статистики. Этот инструмент включен в пакетiproute2и является более быстрой альтернативой командеnetstat.
Для изучения сетевых сокетов и просмотра различных сетевых данных используйте командуss.
Синтаксис:
ss [options] [filter]
Параметр [options] дает возможность фильтровать сокеты по протоколу, в то время как параметр [filter] помогает упорядочивать сокеты по состоянию, чтобы сузить результаты.
Пример:
Для примера, чтобы показать все прослушивающие TCP-сокеты с помощью командыss, введите опции -lt:
ss -lt

Результат показывает все TCP-сокеты в состоянии LISTEN, готовые к принятию входящих подключений.
route
Командаrouteв Linux предназначена для отображения и настройки таблицы маршрутизации. Она изменяет таблицы маршрутизации IP в ядре и помогает устанавливать статические маршруты к определенным хостам или сетям.
Примените эту команду после настройки сетевого интерфейса с помощью инструмента, например, командыifconfig.
Заметьте: более предпочтительной альтернативой команде
NETWORK ADMINrouteявляется командаip route.
Синтаксис:
route [options] [subcommand] [arguments]
Включает следующие компоненты:
- options – Опциональные параметры командной строки, которые управляют видом вывода, семейством адресов и IP-протоколом.
- subcommand – Действие, которое нужно выполнить, такое как добавление или удаление.
- arguments – Дополнительные аргументы, которые различаются в зависимости от подкоманды.
Пример:
route

Чтобы установить шлюз по умолчанию, используйте указанный формат:
sudo route add default gw [gateway]

Эта команда создает маршрут по умолчанию, который используется, если не существует других подходящих маршрутов. Указанный шлюз должен быть непосредственно доступным маршрутом.
arp
Командаarpпоказывает и настраивает кэш ARP (протокола разрешения адресов). Протокол ARP сопоставляет IP-адреса с физическими MAC-адресами в локальной сети. Кэш хранит такие соответствия для всех устройств в локальной сети.
Синтаксис:
arp [options] [hostname/IP]
- Параметр [options] влияет на поведение команды, позволяя, например, настраивать и удалять действия или контролировать вывод.
- Параметр [hostname/IP] является необязательным идентификатором для удаленной системы, для которой нужно разрешить MAC-адрес. Если не указан, команда проверяет локальный кэш ARP.
Пример:
Чтобы вывести кэш ARP, выполните командуarpбез дополнительных параметров:
arp

Вывод представляет собой таблицу с кэшем ARP (IP и MAC-адреса).
iwconfig
Командаiwconfigпозволяет отображать и настраивать информацию о беспроводных сетевых интерфейсах и пригодится при решении проблем в беспроводных сетях.
Используйте эту команду для просмотра или изменения имени беспроводной сети, настроек управления питанием и других настроек беспроводной связи.
Синтаксис:
iwconfig [interface] [options]
Параметр [interface] позволяет фильтровать беспроводный сетевой интерфейс по имени, а параметр [options] управляет различными настройками, такими как режим работы, ограничение скорости и ключ шифрования беспроводной сети.
Пример:
Для просмотра доступных беспроводных интерфейсов на системе и их текущей настройки выполните команду без дополнительных параметров:
iwconfig

Эта команда выводит полную информацию о беспроводных интерфейсах в системе.
curl or wget
Командыwgetиcurlпредставляют собой инструменты командной строки для загрузки файлов из Интернета. Оба инструмента схожи, но имеют некоторые различия в способе работы и доступных опциях.
- Команда
wgetпредназначена для загрузки файлов из Интернета с использованием протоколов HTTP, HTTPS или FTP. Этот инструмент легок в использовании для скачивания файлов. - Команда
curlуниверсальна и поддерживает различные сетевые протоколы, включая SCP, IMAP, POP3, SMTP и другие. Этот инструмент также отправляет HTTP-запросы и взаимодействует с веб-сервисами.
Для проверки скорости загрузки по сети используйтеcurlилиwget.
Синтаксис:
wget [options] [URL]
curl [options] [URL]
Параметр [options] управляет различными параметрами загрузки и вывода, а параметр [URL] представляет собой URL-адрес файла для загрузки. Командаcurlобладает более продвинутыми опциями и методами использования по сравнению с командойwget.
Пример:
Для скачивания файла с помощью командыwgetиспользуйте этот формат:
wget -O [file name] [URL]
Или же, чтобы сделать то же самое с помощью curl, выполните:
curl -o [file name] [URL]
Файл загружается с указанного URL и сохраняется с указанным именем файла.
mtr
Командаmtr(my traceroute) – это инструмент для диагностики, который объединяет функции командpingиtraceroute. Этот инструмент предоставляет актуальную информацию о качестве сети, что делает его отличным средством для устранения проблем с высокой задержкой и потерей пакетов.
Синтаксис:
mtr [options] [hostname/IP]
Параметр [options] позволяет настраивать количество и размер пакетов, а параметр [hostname/IP] указывает на место назначения.
Пример:
mtr google.com

Для выхода из окна, нажмите “q”.
whois
Командаwhoisпредназначена для запроса информации о доменных именах, IP-адресах и других сетевых данных. Используйте эту команду для получения данных о владельце домена, дате регистрации и дате истечения срока действия домена.
Синтаксис:
whois [options] [query]
- Параметр [options] дает возможность указать конкретный сервер WHOIS для запроса, изменить протокол и добавить дополнительные параметры запроса.
- Параметр [query] может быть доменным именем, IP-адресом или номером автономной системы (ASN) для поиска информации.
Пример:
Чтобы выполнить простой запрос для указанного доменного имени, выполните команду без дополнительных опций. Например:
whois google.com

Вывод представляет результаты основного поиска WHOIS для указанного доменного имени.
iftop
Командаiftop– это утилита мониторинга сети. С ее помощью можно отслеживать сетевые соединения и использование пропускной способности в режиме реального времени.
Синтаксис:
iftop [options]
Параметр [options] регулирует отображаемую информацию. Кроме того, для мониторинга всего трафика на сетевом интерфейсе необходимы соответствующие права доступа.
Пример:
Основное использованиеiftopне предполагает дополнительных опций:
sudo iftop

При выполнении команды открывается новый экран мониторинга, который обновляется при передаче данных через сетевой интерфейс.
С интерфейса можно управлять отображением на экране мониторинга, например, переключать вид на источник (s) или назначение (d). Для выхода из экрана, нажмите “q”.
tcpdump
Командаtcpdumpпредставляет собой инструмент для сниффинга пакетов и обеспечения сетевой безопасности, который захватывает информацию о сетевых пакетах в реальном времени. Используйте эту команду для анализа трафика, устранения проблем и мониторинга сетевой безопасности.
Синтаксис:
tcpdump [options] [filter]
Параметр [options] управляет различными параметрами отображения, контролирует количество захваченных пакетов и позволяет работать с файлами. Для установки критериев захвата пакетов используйте параметр [filter].
Пример:
Для захвата пакетов на конкретном порту используйте следующий формат:
sudo tcpdump port 80

Фильтрport 80используется для захвата пакетов на определенном порту с целью мониторинга HTTP-трафика.
ifplugstatus
Командаifplugstatus– это простая утилита для проверки статуса сетевого интерфейса. Она помогает определить, подключен ли сетевой кабель к интерфейсу Ethernet.
Для проверки физической связи в сети, особенно после внесения изменений в сетевой интерфейс, используйтеifplugstatus.
Синтаксис:
ifplugstatus [options] [interface]
Параметр [options] позволяет установить конкретный файл конфигурации или запустить команду в пакетном режиме для скриптов. Укажите параметр [interface], чтобы проверить статус указанного сетевого интерфейса.
Пример:
Для отображения статуса всех сетевых интерфейсов выполните команду без дополнительных параметров:
ifplugstatus

Если в выводе указано “link beat detected”, это свидетельствует о наличии активной физической связи у интерфейса.
Заключение
После прочтения этого руководства вы освоите основные команды для настройки сети в Linux. Обращайтесь к этой статье, когда вам понадобится определенная команда.