В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.
![](https://habrastorage.org/r/w780q1/webt/bu/ef/v2/buefv2vz0npbynfhwvqrh13p4ug.jpeg)
В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением
Утилита
Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/879/710/257/87971025701f33286cf51950f53272d5.png)
Использование ping для выяснения IP-адреса сайта по его имени
Утилита
Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:
Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.
Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:
Следующая команда выводит сведения обо всех портах. Для того чтобы ограничиться только TCP-портами, нужно воспользоваться ключом
Для просмотра таблиц маршрутизации воспользуйтесь такой командой:
Вот как выглядит результат выполнения этой команды.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/d64/a61/04b/d64a6104b6989360842aa74ee1a7a6e7.png)
Сведения о таблице маршрутизации
Вот вариант этой команды, выводящий статистику по протоколам:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/19b/b99/6e1/19bb996e1ebc3c8ae6d7ac8653b9d1d2.png)
Статистика по протоколам
Следующий вариант вызова
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/3a4/fe9/4b3/3a4fe94b37174bbbd240e9d7d4c74998.png)
Данные об отправленных и полученных пакетах
Утилита
Вот как с помощью
Так можно вывести информацию по конкретному интерфейсу:
Следующий вариант вызова команды позволяет проверить подключение устройства к сети:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/c37/701/22c/c3770122ca3093465a53c43376f30a33.png)
Примеры использования nmcli
Эта команда позволяет отключить заданный интерфейс:
А эта позволяет включить интерфейс:
Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:
Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.
Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/691/7a0/679/6917a0679120633832b7e45a54601351.png)
Маршруты, настроенные для интерфейсов
Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:
Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.
С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:
Вот примеры использования команды
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/ebb/bc2/90f/ebbbc290f61ca92364c1d22560596d56.png)
Использование команды route
Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:
Взглянем на примеры её использования.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/595/1ae/72c/5951ae72c26d18f80299ab0410757107.png)
Данные, полученные с помощью команды ip neighbor
Вот сведения о команде
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/605/d16/153/605d16153555ddaa7d6ea88befc3516e.png)
Сведения о команде ip neigh
Команда
Вот пример её вызова.
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/c3e/e95/e70/c3ee95e70c5ba7b2ddcd2e5eae061545.png)
Вызов команды arp
Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например,
Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:
Пакеты можно сохранять в файл, воспользовавшись флагом
Вот пример использования
![](https://habrastorage.org/r/w1560/getpro/habr/post_images/4cf/ad7/340/4cfad7340f8226d9bf4181720b29b2fe.png)
Использование tcpdump
Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:
Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:
Вот пример использования
Здесь показано, как с помощью
Утилита
Следующая команда позволяет вывести все существующие правила
Эта команда удаляет все существующие правила:
Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:
Следующие команды разрешают loopback-доступ к системе:
Инструмент
Следующая команда выводит IP-адреса вашего DNS-сервера в поле Server, и, ниже, выдаёт IP-адрес искомого сайта:
Такая команда показывает все доступные записи для заданного веб-сайта или домена:
Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.
В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.
Уважаемые читатели! Чем вы пользуетесь для администрирования сетей и для выяснения причин сетевых неполадок?
![](https://habrastorage.org/r/w780q1/webt/oh/jk/gg/ohjkggjpdnx1daweusetv6o31rm.jpeg)
![](https://habrastorage.org/webt/bu/ef/v2/buefv2vz0npbynfhwvqrh13p4ug.jpeg)
В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением
<fqdn>
(fully qualified domain name, полное доменное имя). Встретив его, замените его, в зависимости от обстоятельств, на адрес интересующего вас сайта или сервера, например, на нечто вроде server-name.company.com
.Ping
Утилита
ping
, как можно судить по её названию, используется для проверки связи между узлами сети, между компьютером, на котором её запускают, и другой системой. Эта утилита использует протокол ICMP, отправляя эхо-запросы, на которые отвечает удалённая система, получающая их. Использование ping
, кроме того — это хороший способ проверки связности сети, проводимой в качестве первого шага диагностики сети при наличии неполадок. Команду ping
можно использовать с адресами IPv4 и IPv6. Тут можно почитать подробности об IP-адресах и о работе с ними.▍Примеры
IPv4: ping <ip address>/<fqdn>
IPv6: ping6 <ip address>/<fqdn>
Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.
![](https://habrastorage.org/getpro/habr/post_images/879/710/257/87971025701f33286cf51950f53272d5.png)
Использование ping для выяснения IP-адреса сайта по его имени
Traceroute
Traceroute
— это приятная утилита, которая позволяет исследовать маршруты передачи данных между компьютерами. В то время как команда ping
направлена на то, чтобы выяснить, можно ли установить связь между двумя узлами сети, traceroute
даёт сведения об IP-адресах маршрутизаторов, через которые проходят данные от вашей системы до конечной, например — до веб-сайта или сервера. Команда traceroute
обычно применяется на втором шаге диагностики сети, после команды ping
.▍Пример
traceroute <ip address>/<fqdn>
Telnet
Утилита
telnet
позволяет связаться с удалённым компьютером по протоколу Telnet и взаимодействовать с ним, используя соответствующие команды.▍Пример
Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:
telnet <ip address>/<fqdn>
Netstat
Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.
▍Примеры
Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:
netstat -l
Следующая команда выводит сведения обо всех портах. Для того чтобы ограничиться только TCP-портами, нужно воспользоваться ключом
-at
, для того, чтобы получить данные об UDP-портах, используйте ключ -au
.netstat -a
Для просмотра таблиц маршрутизации воспользуйтесь такой командой:
netstat -r
Вот как выглядит результат выполнения этой команды.
![](https://habrastorage.org/getpro/habr/post_images/d64/a61/04b/d64a6104b6989360842aa74ee1a7a6e7.png)
Сведения о таблице маршрутизации
Вот вариант этой команды, выводящий статистику по протоколам:
netstat -s
![](https://habrastorage.org/getpro/habr/post_images/19b/b99/6e1/19bb996e1ebc3c8ae6d7ac8653b9d1d2.png)
Статистика по протоколам
Следующий вариант вызова
netstat
позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:![](https://habrastorage.org/getpro/habr/post_images/3a4/fe9/4b3/3a4fe94b37174bbbd240e9d7d4c74998.png)
Данные об отправленных и полученных пакетах
Nmcli
Утилита
nmcli
отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager
и модифицировать сетевые параметры различных устройств.▍Примеры
Вот как с помощью
nmcli
вывести список сетевых интерфейсов:nmcli device
Так можно вывести информацию по конкретному интерфейсу:
nmcli device show <interface>
Следующий вариант вызова команды позволяет проверить подключение устройства к сети:
nmcli connection
![](https://habrastorage.org/getpro/habr/post_images/c37/701/22c/c3770122ca3093465a53c43376f30a33.png)
Примеры использования nmcli
Эта команда позволяет отключить заданный интерфейс:
nmcli connection down <interface>
А эта позволяет включить интерфейс:
nmcli connection up <interface>
Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:
nmcli con add type vlan con-name <connection-name> dev <interface> id <vlan-number> ipv4 <ip/cidr> gw4 <gateway-ip>
Маршрутизация
Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.
▍Примеры
Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:
ip route
![](https://habrastorage.org/getpro/habr/post_images/691/7a0/679/6917a0679120633832b7e45a54601351.png)
Маршруты, настроенные для интерфейсов
Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:
route add default gw <gateway-ip>
Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.
route add -net <network ip/cidr> gw <gateway ip> <interface>
С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:
route del -net <network ip/cidr>
Вот примеры использования команды
route
.![](https://habrastorage.org/getpro/habr/post_images/ebb/bc2/90f/ebbbc290f61ca92364c1d22560596d56.png)
Использование команды route
Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:
ip neighbor
Взглянем на примеры её использования.
![](https://habrastorage.org/getpro/habr/post_images/595/1ae/72c/5951ae72c26d18f80299ab0410757107.png)
Данные, полученные с помощью команды ip neighbor
Вот сведения о команде
ip neigh
![](https://habrastorage.org/getpro/habr/post_images/605/d16/153/605d16153555ddaa7d6ea88befc3516e.png)
Сведения о команде ip neigh
Команда
arp
(ARP — это сокращение от Address Resolution Protocol, протокол определения адреса) похожа на ip neighbor
. Утилита arp
выводит данные о соответствии IP-адресов MAC -адресам. Вот как её использовать:arp
Вот пример её вызова.
![](https://habrastorage.org/getpro/habr/post_images/c3e/e95/e70/c3ee95e70c5ba7b2ddcd2e5eae061545.png)
Вызов команды arp
Tcpdump и Wireshark
Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например,
tcpdump
, wireshark
, tshark
, и другие. Они используются для захвата сетевого трафика в передаваемых системой пакетах или в пакетах, получаемых ей. Это делает их весьма ценным инструментом администратора, помогающим в деле выяснения причин различных сетевых неполадок. Тем, кто предпочитает командную строку всем остальным способам общения с компьютерами, понравится tcpdump
. Тем же, кто любит графические интерфейсы, можно порекомендовать wireshark
— отличный инструмент для захвата и анализа пакетов. Утилита tcpdump
— это встроенное в Linux средство для захвата сетевого трафика. Его можно использовать для захвата и вывода трафика с фильтрацией по портам, протоколам, и по другим признакам.▍Примеры
Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:
tcpdump -i <interface-name>
Пакеты можно сохранять в файл, воспользовавшись флагом
-w
и задав имя файла:tcpdump -w <output-file.> -i <interface-name>
Вот пример использования
tcpdump
.![](https://habrastorage.org/getpro/habr/post_images/4cf/ad7/340/4cfad7340f8226d9bf4181720b29b2fe.png)
Использование tcpdump
Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:
tcpdump -i <interface> src <source-ip>
Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:
tcpdump -i <interface> dst <destination-ip>
Вот пример использования
tcpdump
для захвата пакетов для заданного номера порта, например, это может быть порт 53, 80, 8080, и так далее:tcpdump -i <interface> port <port-number>
Здесь показано, как с помощью
tcpdump
захватывать пакеты заданного протокола, вроде TCP, UDP или других:tcpdump -i <interface> <protocol>
Iptables
Утилита
iptables
похожа на файрвол, она поддерживает фильтрацию пакетов, что позволяет управлять трафиком, пропуская или блокируя его. Диапазон возможностей этой утилиты огромен. Рассмотрим несколько наиболее распространённых вариантов её использования.▍Примеры
Следующая команда позволяет вывести все существующие правила
iptables
:iptables -L
Эта команда удаляет все существующие правила:
iptables -F
Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:
iptables -A INPUT -i <interface> -p tcp –dport <port-number> -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o <interface> -p tcp -sport <port-number> -m state – state ESTABLISHED -j ACCEPT
Следующие команды разрешают loopback-доступ к системе:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Nslookup
Инструмент
nslookup
используется для получения сведений о назначении IP-адресов сетевым ресурсам. Его можно использовать и для получения сведений с DNS-серверов, например таких, как все DNS-записи для некоего веб-сайта (ниже мы рассмотрим соответствующий пример). На nslookup
похожа утилита dig
(Domain Information Groper).▍Примеры
Следующая команда выводит IP-адреса вашего DNS-сервера в поле Server, и, ниже, выдаёт IP-адрес искомого сайта:
nslookup <website-name.com>
Такая команда показывает все доступные записи для заданного веб-сайта или домена:
nslookup -type=any <website-name.com>
Поиск неполадок
Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.
▍Примеры
ss
— утилита для вывода статистической информации о сокетах.nmap <ip-address>
— имя этой команды является сокращением от Network Mapper. Она сканирует сетевые порты, обнаруживает хосты, выясняет MAC-адреса и выполняет множество других задач.ip addr/ifconfig -a
— эта команда предоставляет сведения об IP-адресах и другие данные по всем интерфейсам системы.ssh -vvv user@<ip/domain>
— такая команда позволяет подключиться по SSH к другому компьютеру, используя заданный IP-адрес или доменное имя компьютера и имя пользователя. Флаг-vvv
позволяет получать подробные сведения о происходящем.ethtool -S <interface>
— данная команда позволяет вывести статистические сведения по заданному интерфейсу.ifup <interface>
— эта команда включает указанный интерфейс.ifdown <interface>
— эта команда отключает указанный интерфейс.systemctl restart network
— с помощью этой команды можно перезагрузить системную сетевую подсистему./etc/sysconfig/network-scripts/<interface-name>
— это — файл настройки интерфейсов, используемый для указания IP-адреса, сети, шлюза и других параметров для заданного интерфейса. Здесь можно задать использование интерфейсом DHCP-режима./etc/hosts
— данный файл содержит сведения о соответствии хостов или доменов IP-адресам, настроенные администратором./etc/resolv.conf
— в этом файле хранятся настройки DNS./etc/ntp.conf
— этот файл хранит настройки NTP.
Итоги
В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.
Уважаемые читатели! Чем вы пользуетесь для администрирования сетей и для выяснения причин сетевых неполадок?
![](https://habrastorage.org/webt/oh/jk/gg/ohjkggjpdnx1daweusetv6o31rm.jpeg)