22 сетевые команды Linux для системного администратора

В обязанности системного администратора входит настройка, обслуживание, устранение неполадок и управление серверами и сетями в центрах обработки данных. В Linux существует множество инструментов и утилит, предназначенных для административных целей.
В этой статье мы рассмотрим некоторые из наиболее часто используемых инструментов командной строки и утилит для управления сетью в Linux, разделив их на категории. Мы приведём несколько примеров использования, которые значительно упростят управление сетью в Linux.
Этот список будет одинаково полезен сетевым инженерам, работающим с Linux на постоянной основе.
Настройка сети, устранение неполадок и инструменты отладки
1. Команда ifconfig
ifconfig — это инструмент командной строки для настройки сетевых интерфейсов, который также используется для инициализации интерфейсов во время загрузки системы. После запуска сервера с его помощью можно назначить IP-адрес интерфейсу, а также включить или отключить интерфейс по запросу.
Он также используется для просмотра IP-адреса, аппаратного/MAC-адреса, а также размера MTU (максимальной единицы передачи) активных в данный момент интерфейсов. Таким образом, команда ifconfig полезна для отладки или настройки системы.
Вот пример отображения состояния всех активных сетевых интерфейсов.
$ ifconfig enp1s0 Link encap:Ethernet HWaddr 28:d2:44:eb:bd:98 inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::8f0c:7825:8057:5eec/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:169854 errors:0 dropped:0 overruns:0 frame:0 TX packets:125995 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:174146270 (174.1 MB) TX bytes:21062129 (21.0 MB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:15793 errors:0 dropped:0 overruns:0 frame:0 TX packets:15793 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:2898946 (2.8 MB) TX bytes:2898946 (2.8 MB)
Чтобы вывести список всех доступных в данный момент интерфейсов, будь то вверх или вниз, используйте флаг -a
.
$ ifconfig -a
Чтобы назначить IP-адрес интерфейсу, используйте следующую команду.
$ sudo ifconfig eth0 192.168.56.5 netmask 255.255.255.0
Чтобы активировать сетевой интерфейс, введите.
$ sudo ifconfig up eth0
Чтобы отключить сетевой интерфейс, введите команду.
$ sudo ifconfig down eth0
Примечание: хотя ifconfig — отличный инструмент, сейчас он устарел (deprecated), его заменяет команда ip, о которой мы расскажем ниже.
2. Команда IP
Команда ip — ещё одна полезная утилита командной строки для отображения и управления маршрутизацией, сетевыми устройствами и интерфейсами. Она заменяет ifconfig и многие другие сетевые команды. (Чтобы узнать больше, прочтите нашу статью «В чём разница между ifconfig и командой ip».)
Следующая команда покажет IP-адрес и другую информацию о сетевом интерфейсе.
$ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 28:d2:44:eb:bd:98 brd ff:ff:ff:ff:ff:ff inet 192.168.0.103/24 brd 192.168.0.255 scope global dynamic enp1s0 ...
Чтобы временно назначить IP-адрес определённому сетевому интерфейсу (eth0), введите.
$ sudo ip addr add 192.168.56.1 dev eth0
Чтобы удалить назначенный IP-адрес из сетевого интерфейса (eth0), введите команду.
$ sudo ip addr del 192.168.56.15/24 dev eth0
Чтобы отобразить текущую таблицу соседей в ядре, введите команду.
$ ip neigh 192.168.0.1 dev enp1s0 lladdr 10:fe:ed:3d:f3:82 REACHABLE
3. Команды ifup, ifdown и ifquery
ifup активирует сетевой интерфейс, делая его доступным для передачи и получения данных.
$ sudo ifup eth0
ifdown отключает сетевой интерфейс, переводя его в состояние, в котором он не может передавать или получать данные.
$ sudo ifdown eth0
ifquery используется для анализа конфигурации сетевого интерфейса, что позволяет получать ответы на запросы о текущей конфигурации.
$ sudo ifquery eth0
4. Команда Ethtool
ethtool — это утилита командной строки для запроса и изменения параметров контроллера сетевого интерфейса и драйверов устройств. В примере ниже показано использование ethtool и команды для просмотра параметров сетевого интерфейса.
$ sudo ethtool enp0s3 Settings for enp0s3: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Supports Wake-on: umbg Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes
5. Команда Ping
ping (Packet Internet Groper) — это утилита, обычно используемая для проверки связи между двумя системами в сети (Локальная сеть (LAN) или Глобальная сеть (WAN)). Она использует ICMP (Internet Control Message Protocol) для связи с узлами в сети.
Чтобы проверить подключение к другому узлу, просто укажите его IP-адрес или имя хоста.
$ ping 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=0.191 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.156 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.179 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.182 ms 64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=0.207 ms 64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=0.157 ms ^C --- 192.168.0.103 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5099ms rtt min/avg/max/mdev = 0.156/0.178/0.207/0.023 ms
Вы также можете указать ping завершить работу после отправки заданного количества пакетов ECHO_REQUEST с помощью флага -c
$ ping -c 4 192.168.0.103 PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data. 64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=1.09 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.157 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.163 ms 64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.190 ms --- 192.168.0.103 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3029ms rtt min/avg/max/mdev = 0.157/0.402/1.098/0.402 ms
6. Команда Traceroute
Traceroute — это утилита командной строки для отслеживания полного пути от вашей локальной системы до другой сетевой системы. Она выводит количество переходов (IP-адреса маршрутизаторов) на пути к конечному серверу. Это простая в использовании утилита для устранения неполадок в сети, которая работает после команды ping.
В этом примере мы отслеживаем маршрут, по которому пакеты данных передаются из локальной системы на один из серверов Google с IP-адресом 216.58.204.46.
$ traceroute 216.58.204.46 traceroute to 216.58.204.46 (216.58.204.46), 30 hops max, 60 byte packets 1 gateway (192.168.0.1) 0.487 ms 0.277 ms 0.269 ms 2 5.5.5.215 (5.5.5.215) 1.846 ms 1.631 ms 1.553 ms 3 * * * 4 72.14.194.226 (72.14.194.226) 3.762 ms 3.683 ms 3.577 ms ...
7. Средство диагностики сети MTR
MTR — это современный инструмент для диагностики сети в командной строке, который объединяет функции ping и traceroute в одном диагностическом инструменте. По умолчанию его вывод обновляется в режиме реального времени до тех пор, пока вы не закроете программу, нажав q
.
Самый простой способ запустить mtr — указать в качестве аргумента имя хоста или IP-адрес, как показано ниже.
$ mtr google.com ИЛИ $ mtr 216.58.223.78
Вы можете ограничить количество пингов определенным значением и завершить mtr после выполнения этих пингов, используя флаг -c
$ mtr -c 4 google.com
8. Команда маршрута
route — это утилита командной строки для отображения или изменения таблицы IP-маршрутизации в системе Linux. В основном она используется для настройки статических маршрутов к определённым хостам или сетям через интерфейс.
Вы можете просмотреть таблицу IP-маршрутизации ядра, введя команду.
$ route Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 enp0s3 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Существует множество команд, которые можно использовать для настройки маршрутизации. Вот некоторые из них:
Добавьте шлюз по умолчанию в таблицу маршрутизации.
$ sudo route add default gw <ip-адрес шлюза>
Добавьте сетевой маршрут в таблицу маршрутизации.
$ sudo route add -net <ip-адрес сети/cidr> gw <ip-адрес шлюза> <интерфейс>
Удалите определённую запись о маршруте из таблицы маршрутизации.
$ sudo route del -net <сетевой IP-адрес/CIDR>
9. Команда Nmcli
Nmcli — это простой в использовании инструмент командной строки с поддержкой сценариев, который позволяет получать информацию о состоянии сети, управлять сетевыми подключениями и контролировать NetworkManager.
Чтобы просмотреть все сетевые устройства, введите.
$ nmcli dev status DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 enp0s3 ethernet connected Wired connection 1
Чтобы проверить сетевые подключения в вашей системе, введите команду.
$ nmcli con show Wired connection 1 bc3638ff-205a-3bbb-8845-5a4b0f7eef91 802-3-ethernet enp0s3 virbr0 00f5d53e-fd51-41d3-b069-bdfd2dde062b bridge virbr0
Чтобы отображались только активные подключения, добавьте флаг -a
.
$ nmcli con show -a
Инструменты для сканирования сети и анализа производительности
10. Команда Netstat
netstat — это инструмент командной строки, который отображает полезную информацию, такую как сетевые подключения, таблицы маршрутизации, статистику интерфейсов и многое другое, касающееся сетевой подсистемы Linux. Он полезен для устранения неполадок в сети и анализа производительности.
Кроме того, это основной инструмент для отладки сетевых служб, который используется для проверки того, какие программы прослушивают какие порты. Например, следующая команда покажет все TCP-порты, работающие в режиме прослушивания, и программы, которые их прослушивают.
$ sudo netstat -tnlp
Чтобы просмотреть таблицу маршрутизации ядра, используйте флаг -r
(что эквивалентно выполнению команды route, указанной выше).
$ netstat -r
Примечание: несмотря на то, что Netstat — отличный инструмент, он устарел (deprecated). Его заменой является команда ss, о которой рассказывается ниже.
11. Команда ss
ss (статистика сокетов) — это мощная утилита командной строки для анализа сокетов. Она выводит статистику сокетов и отображает информацию, аналогичную netstat. Кроме того, она показывает больше информации о TCP и состоянии по сравнению с другими аналогичными утилитами.
В следующем примере показано, как вывести список всех TCP портов (сокетов), открытых на сервере.
$ ss -ta
Чтобы отобразить все активные TCP соединения вместе с их таймерами, выполните следующую команду.
$ ss -to
12. Команда NC
NC (NetCat) также называют «сетевым швейцарским армейским ножом». Это мощная утилита, которая используется практически для любых задач, связанных с сокетами TCP, UDP или доменами UNIX. Она используется для открытия TCP-соединений, прослушивания произвольных TCP- и UDP-портов, сканирования портов и многого другого.
Вы также можете использовать его в качестве простого TCP-прокси для тестирования сетевых демонов, проверки доступности удалённых портов и многого другого. Кроме того, вы можете использовать nc вместе с командой pv для передачи файлов между двумя компьютерами.
В следующем примере показано, как просканировать список портов.
$ nc -zv server2.andreyex.lan 21 22 80 443 3000
Вы также можете указать диапазон портов, как показано на рисунке.
$ nc -zv server2.andreyex.lan 20-90
В следующем примере показано, как с помощью nc открыть TCP-соединение с портом 5000 на server2.andreyex.lan, используя порт 3000 в качестве исходного порта, с таймаутом 10 секунд.
$ nc -p 3000 -w 10 server2.andreyex.lan 5000
13. Команда Nmap
Nmap (Network Mapper) — это мощный и чрезвычайно универсальный инструмент для системных и сетевых администраторов Linux. Он используется для сбора информации об одном хосте или для исследования всей сети. Nmap также используется для проверки безопасности, аудита сети, поиска открытых портов на удалённых хостах и многого другого.
Например, вы можете просканировать хост, используя его имя хоста или IP-адрес.
$ nmap yandex.ru
В качестве альтернативы используйте IP-адрес, как показано ниже.
$ nmap 192.168.0.103
Ознакомьтесь с нашими полезными статьями о команде nmap.
- Как использовать скрипты Nmap Script Engine (NSE) в Linux
- Практическое руководство по Nmap (сканеру сетевой безопасности) в Kali Linux
- Узнайте IP-адреса всех активных хостов, подключенных к сети в Linux
Утилиты поиска DNS
14. Команда хоста
Команда host — это простая утилита для выполнения DNS-запросов, которая преобразует имена хостов в IP-адреса и наоборот.
$ host yandex.ru
15. Команда dig
dig (поиск информации о домене) — это ещё одна простая утилита для поиска DNS-записей, которая используется для запроса информации, связанной с DNS, такой как A-запись, CNAME, MX-запись и т. д., например:
$ dig yandex.ru
16. Команда NSLookup
Nslookup — это также популярная утилита командной строки для интерактивного и неинтерактивного запроса DNS-серверов. Она используется для запроса записей ресурсов DNS (RR). Вы можете узнать «A» запись (IP-адрес) домена, как показано на рисунке.
$ nslookup yandex.ru
Вы также можете выполнить обратный поиск домена, как показано на рисунке.
$ nslookup 216.58.208.174
Анализаторы сетевых пакетов Linux
17. Команда Tcpdump
Tcpdump — это очень мощный и широко используемый сетевой сниффер с интерфейсом командной строки. Он используется для захвата и анализа пакетов TCP/IP, передаваемых или принимаемых по сети через определённый интерфейс.
Чтобы перехватывать пакеты с определённого интерфейса, укажите его с помощью опции -i
.
$ tcpdump -i eth1
Чтобы перехватить определённое количество пакетов, используйте опцию -c
и введите нужное число.
$ tcpdump -c 5 -i eth1
Вы также можете перехватывать и сохранять пакеты в файл для последующего анализа. Используйте флаг -w
для указания выходного файла.
$ tcpdump -w captured.pacs -i eth1
18. Утилита Wireshark
Wireshark — популярный, мощный, универсальный и простой в использовании инструмент для захвата и анализа пакетов в сети с коммутацией пакетов в режиме реального времени.
Вы также можете сохранить собранные данные в файл для последующего анализа. Этот инструмент используется системными администраторами и сетевыми инженерами для мониторинга и анализа пакетов в целях обеспечения безопасности и устранения неполадок.

Мониторинг Трафика Локальной Сети
19. Инструмент Bmon
bmon — это мощная утилита для мониторинга и отладки сети на основе командной строки для Unix-подобных систем. Она собирает статистику, связанную с сетью, и выводит её в удобном для восприятия формате. Это надёжный и эффективный инструмент для мониторинга пропускной способности в реальном времени и оценки скорости.
Инструменты Управления Брандмауэром Linux
20. Брандмауэр Iptables
iptables — это инструмент командной строки для настройки, обслуживания и проверки таблиц фильтрации IP-пакетов и набора правил NAT. Он используется для настройки брандмауэра Linux (Netfilter) и управления им. Он позволяет выводить список существующих правил фильтрации пакетов, добавлять, удалять или изменять правила фильтрации пакетов, а также выводить счетчики правил фильтрации пакетов.
Вы можете узнать, как использовать Iptables для различных целей, из наших простых, но подробных руководств.
- Базовое руководство по IPTables (брандмауэр Linux) Советы / команды
- 25 полезных правил брандмауэра IPtable, которые должен знать каждый администратор Linux
- Как настроить брандмауэр Iptables для обеспечения удалённого доступа к службам
- Как заблокировать ICMP-запросы Ping в системах Linux
21. Брандмауэр
Firewalld — это мощный и динамичный демон для управления межсетевым экраном Linux (Netfilter), как и iptables. Он использует «зоны сетей» вместо цепочек INPUT, OUTPUT и FORWARD в iptables. В современных дистрибутивах Linux, таких как RHEL/CentOS 7 и Fedora 21+, iptables активно заменяется на firewalld.
Чтобы начать работу с firewalld, ознакомьтесь с приведёнными ниже руководствами:
- Полезные правила FirewallD для настройки брандмауэра и управления им в Linux
- Как настроить FirewallD в RHEL/CentOS 7 и Fedora 21
- Как запустить/остановить и включить/отключить брандмауэры FirewallD и Iptables в Linux
- Настройка Samba и FirewallD, а также SELinux для обеспечения общего доступа к файлам в Linux/Windows
Важно: Iptables по-прежнему поддерживается и может быть установлен с помощью менеджера пакетов YUM. Однако вы не можете одновременно использовать Firewalld и iptables на одном сервере — вам нужно выбрать что-то одно.
22. UFW (простой брандмауэр)
UFW — это широко известный инструмент для настройки брандмауэра по умолчанию в дистрибутивах Linux Debian и Ubuntu. Он используется для включения/отключения системного брандмауэра, добавления/удаления/изменения/сброса правил фильтрации пакетов и многого другого.
Чтобы проверить состояние брандмауэра UFW, введите команду.
$ sudo ufw status
Если брандмауэр UFW не активен, вы можете активировать его с помощью следующей команды.
$ sudo ufw enable
Чтобы отключить брандмауэр UFW, используйте следующую команду.
$ sudo ufw disable
Прочитайте нашу статью Как настроить брандмауэр UFW в Ubuntu и Debian.
Если вы хотите получить дополнительную информацию о конкретной программе, вы можете обратиться к её справочным страницам, как показано на рисунке.
$ man programs_name
На этом пока всё! В этом подробном руководстве мы рассмотрели некоторые из наиболее часто используемых инструментов командной строки и утилит для управления сетью в Linux в различных категориях. Они будут полезны как системным администраторам, так и сетевым администраторам/инженерам.
Вы можете поделиться своими мыслями об этой статье в форме для комментариев ниже. Если мы упустили какие-то часто используемые и важные сетевые инструменты/утилиты для Linux или какую-то полезную сопутствующую информацию, сообщите нам об этом.
Редактор: AndreyEx