[Перевод] [в закладки] Шпаргалка системного администратора по сетевым инструментам Linux

В повседневные задачи системных администраторов входит работа с сетями и с подключённым к ним оборудованием. Нередко роль рабочего места администратора играет компьютер, на котором установлен какой-нибудь дистрибутив Linux. Утилиты и команды Linux, о которых пойдёт речь в материале, перевод которого мы публикуем сегодня, включают в себя список инструментов различной сложности — от простых, до продвинутых, которые предназначены для решения широкого спектра задач по управлению сетями и по диагностике сетевых неполадок.

buefv2vz0npbynfhwvqrh13p4ug.jpeg

В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением (fully qualified domain name, полное доменное имя). Встретив его, замените его, в зависимости от обстоятельств, на адрес интересующего вас сайта или сервера, например, на нечто вроде server-name.company.com.

Ping


Утилита ping, как можно судить по её названию, используется для проверки связи между узлами сети, между компьютером, на котором её запускают, и другой системой. Эта утилита использует протокол ICMP, отправляя эхо-запросы, на которые отвечает удалённая система, получающая их. Использование ping, кроме того — это хороший способ проверки связности сети, проводимой в качестве первого шага диагностики сети при наличии неполадок. Команду ping можно использовать с адресами IPv4 и IPv6. Тут можно почитать подробности об IP-адресах и о работе с ними.

▍Примеры

IPv4: ping /
IPv6: ping6 /


Ping, кроме того, можно использовать для выяснения IP-адресов сайтов на основе их имён. Вот как это выглядит.

87971025701f33286cf51950f53272d5.png
Использование ping для выяснения IP-адреса сайта по его имени

Traceroute


Traceroute — это приятная утилита, которая позволяет исследовать маршруты передачи данных между компьютерами. В то время как команда ping направлена на то, чтобы выяснить, можно ли установить связь между двумя узлами сети, traceroute даёт сведения об IP-адресах маршрутизаторов, через которые проходят данные от вашей системы до конечной, например — до веб-сайта или сервера. Команда traceroute обычно применяется на втором шаге диагностики сети, после команды ping.

▍Пример

traceroute /


Telnet


Утилита telnet позволяет связаться с удалённым компьютером по протоколу Telnet и взаимодействовать с ним, используя соответствующие команды.

▍Пример


Для организации сеанса Telnet-связи с другим компьютером используется следующая команда:

telnet /


Netstat


Эта команда позволяет собирать сведения о сети и используется в ходе поиска и исправления сетевых неполадок, применяется для проверки данных о работе интерфейсов и портов, для исследования таблиц маршрутизации, для изучения информации о работе протоколов. Эта команда непременно должна присутствовать в арсенале системного администратора.

▍Примеры


Для того чтобы получить список всех портов, находящихся в режиме прослушивания, воспользуйтесь такой командой:

netstat -l


Следующая команда выводит сведения обо всех портах. Для того чтобы ограничиться только TCP-портами, нужно воспользоваться ключом -at, для того, чтобы получить данные об UDP-портах, используйте ключ -au.

netstat -a


Для просмотра таблиц маршрутизации воспользуйтесь такой командой:

netstat -r


Вот как выглядит результат выполнения этой команды.

d64a6104b6989360842aa74ee1a7a6e7.png
Сведения о таблице маршрутизации

Вот вариант этой команды, выводящий статистику по протоколам:

netstat -s


19bb996e1ebc3c8ae6d7ac8653b9d1d2.png
Статистика по протоколам

Следующий вариант вызова netstat позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:

3a4fe94b37174bbbd240e9d7d4c74998.png
Данные об отправленных и полученных пакетах

Nmcli


Утилита nmcli отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager и модифицировать сетевые параметры различных устройств.

▍Примеры


Вот как с помощью nmcli вывести список сетевых интерфейсов:

nmcli device


Так можно вывести информацию по конкретному интерфейсу:

nmcli device show 


Следующий вариант вызова команды позволяет проверить подключение устройства к сети:

nmcli connection


c3770122ca3093465a53c43376f30a33.png
Примеры использования nmcli

Эта команда позволяет отключить заданный интерфейс:

nmcli connection down 


А эта позволяет включить интерфейс:

nmcli connection up 


Вот пример команды, которая добавляет VLAN-интерфейс с заданным VLAN-номером, IP-адресом и шлюзом к указанному интерфейсу:

nmcli con add type vlan con-name  dev  id  ipv4  gw4 


Маршрутизация


Существует множество команд, которые можно использовать для проверки правил маршрутизации и их настройки. Рассмотрим самые полезные из них.

▍Примеры


Следующая команда показывает все текущие маршруты, настроенные для соответствующих интерфейсов:

ip route


6917a0679120633832b7e45a54601351.png
Маршруты, настроенные для интерфейсов

Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:

route add default gw 


Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.

route add -net  gw  


С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:

route del -net 


Вот примеры использования команды route.

ebbbc290f61ca92364c1d22560596d56.png
Использование команды route

Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:

ip neighbor


Взглянем на примеры её использования.

5951ae72c26d18f80299ab0410757107.png
Данные, полученные с помощью команды ip neighbor

Вот сведения о команде ip neigh

605d16153555ddaa7d6ea88befc3516e.png
Сведения о команде ip neigh

Команда arp (ARP — это сокращение от Address Resolution Protocol, протокол определения адреса) похожа на ip neighbor. Утилита arp выводит данные о соответствии IP-адресов MAC -адресам. Вот как её использовать:

arp


Вот пример её вызова.

c3ee95e70c5ba7b2ddcd2e5eae061545.png
Вызов команды arp

Tcpdump и Wireshark


Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например, tcpdump, wireshark, tshark, и другие. Они используются для захвата сетевого трафика в передаваемых системой пакетах или в пакетах, получаемых ей. Это делает их весьма ценным инструментом администратора, помогающим в деле выяснения причин различных сетевых неполадок. Тем, кто предпочитает командную строку всем остальным способам общения с компьютерами, понравится tcpdump. Тем же, кто любит графические интерфейсы, можно порекомендовать wireshark — отличный инструмент для захвата и анализа пакетов. Утилита tcpdump — это встроенное в Linux средство для захвата сетевого трафика. Его можно использовать для захвата и вывода трафика с фильтрацией по портам, протоколам, и по другим признакам.

▍Примеры


Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:

tcpdump -i 


Пакеты можно сохранять в файл, воспользовавшись флагом -w и задав имя файла:

tcpdump -w  -i 


Вот пример использования tcpdump.

4cfad7340f8226d9bf4181720b29b2fe.png
Использование tcpdump

Следующий вариант команды используется для захвата пакетов, приходящих с заданного IP системы-источника:

tcpdump -i  src 


Так можно захватить пакеты, идущие на заданный адрес системы-приёмника:

tcpdump -i  dst 


Вот пример использования tcpdump для захвата пакетов для заданного номера порта, например, это может быть порт 53, 80, 8080, и так далее:

tcpdump -i  port 


Здесь показано, как с помощью tcpdump захватывать пакеты заданного протокола, вроде TCP, UDP или других:

tcpdump -i  


Iptables


Утилита iptables похожа на файрвол, она поддерживает фильтрацию пакетов, что позволяет управлять трафиком, пропуская или блокируя его. Диапазон возможностей этой утилиты огромен. Рассмотрим несколько наиболее распространённых вариантов её использования.

▍Примеры


Следующая команда позволяет вывести все существующие правила iptables:

iptables -L


Эта команда удаляет все существующие правила:

iptables -F


Следующие команды разрешают прохождение трафика с заданного номера порта к заданному интерфейсу:

iptables -A INPUT -i  -p tcp –dport  -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o  -p tcp -sport  -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 


Такая команда показывает все доступные записи для заданного веб-сайта или домена:

nslookup -type=any 


Поиск неполадок


Вот набор команд и список важных файлов, используемых для идентификации сетевых неполадок.

▍Примеры


  • ss — утилита для вывода статистической информации о сокетах.
  • nmap  — имя этой команды является сокращением от Network Mapper. Она сканирует сетевые порты, обнаруживает хосты, выясняет MAC-адреса и выполняет множество других задач.
  • ip addr/ifconfig -a — эта команда предоставляет сведения об IP-адресах и другие данные по всем интерфейсам системы.
  • ssh -vvv user@ — такая команда позволяет подключиться по SSH к другому компьютеру, используя заданный IP-адрес или доменное имя компьютера и имя пользователя. Флаг -vvv позволяет получать подробные сведения о происходящем.
  • ethtool -S  — данная команда позволяет вывести статистические сведения по заданному интерфейсу.
  • ifup  — эта команда включает указанный интерфейс.
  • ifdown  — эта команда отключает указанный интерфейс.
  • systemctl restart network — с помощью этой команды можно перезагрузить системную сетевую подсистему.
  • /etc/sysconfig/network-scripts/ — это — файл настройки интерфейсов, используемый для указания IP-адреса, сети, шлюза и других параметров для заданного интерфейса. Здесь можно задать использование интерфейсом DHCP-режима.
  • /etc/hosts — данный файл содержит сведения о соответствии хостов или доменов IP-адресам, настроенные администратором.
  • /etc/resolv.conf — в этом файле хранятся настройки DNS.
  • /etc/ntp.conf — этот файл хранит настройки NTP.


Итоги


В этой небольшой шпаргалке мы рассказали о сетевых инструментах Linux, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.

Уважаемые читатели! Чем вы пользуетесь для администрирования сетей и для выяснения причин сетевых неполадок?

ohjkggjpdnx1daweusetv6o31rm.jpeg

© Habrahabr.ru