
В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением
<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-адресов сайтов на основе их имён. Вот как это выглядит.

Использование 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
Вот как выглядит результат выполнения этой команды.

Сведения о таблице маршрутизации
Вот вариант этой команды, выводящий статистику по протоколам:
netstat -s

Статистика по протоколам
Следующий вариант вызова
netstat
позволяет узнать сведения об отправленных и полученных пакетах (transmission/receive, TX/RX) по каждому интерфейсу:
Данные об отправленных и полученных пакетах
Nmcli
Утилита
nmcli
отлично подходит для управления сетевыми соединениями, для выполнения настроек и для решения других подобных задач. С её помощью можно управлять программой NetworkManager
и модифицировать сетевые параметры различных устройств.?Примеры
Вот как с помощью
nmcli
вывести список сетевых интерфейсов:nmcli device
Так можно вывести информацию по конкретному интерфейсу:
nmcli device show <interface>
Следующий вариант вызова команды позволяет проверить подключение устройства к сети:
nmcli connection

Примеры использования 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

Маршруты, настроенные для интерфейсов
Эта команда позволяет добавить в таблицу маршрутизации шлюз, используемый по умолчанию:
route add default gw <gateway-ip>
Следующая команда добавляет в таблицу маршрутизации новый сетевой маршрут. Существует и множество других её параметров, позволяющих выполнять такие операции, как добавление маршрута и шлюза, используемых по умолчанию, и так далее.
route add -net <network ip/cidr> gw <gateway ip> <interface>
С помощью такой команды можно удалить запись о заданном маршруте из таблицы маршрутизации:
route del -net <network ip/cidr>
Вот примеры использования команды
route
.
Использование команды route
Вот команда, которая применяется для вывода текущей таблицы соседей. Кроме того, её можно использовать для добавления, изменения или удаления сведений о соседях:
ip neighbor
Взглянем на примеры её использования.

Данные, полученные с помощью команды ip neighbor
Вот сведения о команде
ip neigh

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

Вызов команды arp
Tcpdump и Wireshark
Linux даёт в распоряжение администратора множество инструментов для захвата и анализа пакетов. Среди них, например,
tcpdump
, wireshark
, tshark
, и другие. Они используются для захвата сетевого трафика в передаваемых системой пакетах или в пакетах, получаемых ей. Это делает их весьма ценным инструментом администратора, помогающим в деле выяснения причин различных сетевых неполадок. Тем, кто предпочитает командную строку всем остальным способам общения с компьютерами, понравится tcpdump
. Тем же, кто любит графические интерфейсы, можно порекомендовать wireshark
— отличный инструмент для захвата и анализа пакетов. Утилита tcpdump
— это встроенное в Linux средство для захвата сетевого трафика. Его можно использовать для захвата и вывода трафика с фильтрацией по портам, протоколам, и по другим признакам.?Примеры
Такая команда показывает, в режиме реального времени, пакеты с заданного интерфейса:
tcpdump -i <interface-name>
Пакеты можно сохранять в файл, воспользовавшись флагом
-w
и задав имя файла:tcpdump -w <output-file.> -i <interface-name>
Вот пример использования
tcpdump
.
Использование 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, предназначенных для системных администраторов. Надеемся, вам эти инструменты пригодятся.
Уважаемые читатели! Чем вы пользуетесь для администрирования сетей и для выяснения причин сетевых неполадок?

Комментарии (28)
click0
19.07.2018 13:01Не увидел команд:
mtr
iftop
nload
curl
whois
host
dig
Тема команд ethtool, arp и nmap не раскрыты полностью.
zenches
19.07.2018 13:08А к чему тут netstat? Он же уже выпиливается в пользу ss. ethtool туда же.
Админ, который эти утилиты не знает, скорее всего и не сможет их поставить без гугла, а с гуглом и так обойдётся.
И до кучи — зачем указывать специфичные для дистрибутивов пути? С тем же Debian'ом предложенные решения не прокатят.maxzhurkin
19.07.2018 15:19route туда же, уступает пальму (не первенства, но всё же) ip route
ilyakruchinin
20.07.2018 07:53Туда же и ifup/ifdown -> ip link
netstat,route,ifconfig -> deprecated (legacy), причем давно
onix74
19.07.2018 13:14+3telnet позволяет, кроме прочего, проверить доступность порта. И, по-моему, это его чуть ли не основное назначение на текущий момент.
nmcli — сомнительный инструмент, который, к тому же, может быть и не установлен.FlashHaos
20.07.2018 01:02Telnet тоже может быть не установлен.
onix74
20.07.2018 06:34Согласен. Однако, не припоминаю, когда в последний раз я устанавливал его дополнительно в linux-системах. В windows — да, по-умолчанию его нет. Но этот инструмент хоть прост и понятен, как пятак. В отличии от nmcli. :-)
FlashHaos
20.07.2018 09:02У нас корпоративный стандарт не включает телнет, но включает nc. Не знаю почему (не админю ось), но тем не менее.
EvilMan
19.07.2018 13:56+2Для команды пинг можно добавить пример с запретом фрагментации и указанием размера полезной нагрузки — позволяет удобно диагностировать проблемы с MTU.
Было бы полезнее добавить пример использования команды traceroute для трейса с помощью tcp-syn пакетов, что позволит посмотреть более полный путь в случае хитрых файерволлов.
Почему-то в примерах сначала идёт команда
ip route
для просмотра маршрутов, а вот примеры по управлению маршрутами (добавление и удаление) приведены уже с использованием комадыroute
, которая как deprecated, а в некоторых дистрибутивах уже и отсутствует. Хотя даже краткая справка по утилите ip займёт несколько статей. Тоже самое касается и netstat, вместо которой сейчас принятно использовать более продвинутыеss
(для просмотра информации по открытым сокетам) иnstat
(для просмотра различных счётчиков сетевого стека).
Для просмотра правил iptables лучше использовать команду
iptables-save -c
, которая выведет все правила со счётчиками во всех таблицах (а не только в таблице filter, какiptables -L
). Для изменения правил безопаснее использоватьiptables-apply
, которая откатывает правила, если изменения не подтвердить в течение тайм-аута. Приведённая команда очистки правил (iptables -F
) в большинстве случаев приведёт к полной недоступности сервера, если в политике filter/INPUT стоит DROP, а в подавляющем большинстве случаев это именно так.
В общем, шпаргалка устарела на несколько лет, содержит обрывочные сведения, и вряд ли будет полезна новичкам в Linux. Вместо этого для новичков (и не только) был бы более полезен пошаговый алгоритм диагностики и устранения проблем с сетью в Linux. На крайний случай, даже просто перечень ссылок на учебники и хаутушки окажется более полезен.
AlePil
19.07.2018 15:41+1Очень странно видеть такое содержание пот таким заголовком. Больше подходит «в помощь начинающему линуксоиду», но естественно это не претензия к переводчику…
Вообще когда на ресурсе оригинальном видишь такое название (да и авторство как бы намекает) ожидаешь увидеть простыню в 10 000 строк действительно комманд с разборами кейсов, которые начинающий врядли может узнать с wiki, но никак не вот это…
027
19.07.2018 19:52В закладки? Вот этот мусор? Удивительно видеть такое в блоге крупного хостера. За что вы так не любите своих пользователей?
khanid
19.07.2018 21:09Ну такой себе материал. Какие-то обрывки, но самого важного, при этом, нет.
Man.
Важная ремарка. Telnet для своего основного функционала используется только там, где иного нет — небезопасно. Сейчас это слово очень много за собой тянет. Чаще всего сейчас используют как простая утилита для проверки доступности порта.
В свою очередь, всем, кому требуются справочники, могу порекомендовать приложение Linux Command Library. На андроиде есть, на другие платформы — не знаю.
Ernillgeek
20.07.2018 15:251. netstat — deprecated, отсутствует по дефолту во всех дистрибутивах, нужно использовать lsof или ss
2. nmcli — часть NetworkManager, само собой отсутствует в серверных инсталяциях, встречается только на десктопах, да и то не у всех
3. route — deprecated, отсутствует по дефолту в свежих дистрибутивах, нужно использовать ip r(ip route) из iproute2
4. arp — deprecated, нужно использовать ip neigh
5. iptables — deprecated, новичку стоит сразу учить nft
6. nslookup — вы будете смеяться, но тоже deprecated, о чем много лет показывала предупреждение, нужно использовать dig
7. /etc/sysconfig/network-scripts/<interface-name> — это — файл настройки интерфейсов — справедливо только для RH и его детишек, для Debian-based будет /etc/network/interfaces(для Ubuntu 18.04 вообще /etc/netplan/*.yml)
8. /etc/ntp.conf — этот файл может хранит, а может и не хранит настройки не NTP(то есть Network Time Protocol), а настройки ntpd, а может их хранит /etc/ntp/ntpd.conf, а может еще что-то, спросите у мэйнтейнера своего дистрибутива.
Это я так, прошелся по вершкам, детальней лень разбирать.
Это не шпаргалка, это — целенаправленное вредительство какое-то, детей учат командам которых нет или которых скоро не будет, мешают в кучу коней и людей. За такие «шпаргалки» нужно отрывать ложноножки.
turbotankist
это что за системный администратор, которому нужна шпаргалка по пингу и трейсроуту, да и всему остальному описанному здесь?
Henry7
Каждый второй, кто работает за 30 т.р. в месяц.
webviktor
Если такому «админу» нужна такая шпаргалка, я бы ему даже калькулятор не доверил.
fpir
Ну, 30 -это уже вполне себе, а вот тем, кто на 12.5 идёт, тем можно даже и рекомендовать такую шпаргалку, а работодателю можно смело нанимать на такую зарплату того, кто знает хотя-бы одну команду из этой шпаргалки.
DaemonGloom
Вы сейчас расстроили множество администраторов в разных регионах нашей страны, где 30 т.р. — вполне неплохая зарплата.
Henry7
Не хотел никого обидеть, однако, среднестатистически в бедных регионах навыки ИТ-специалистов пониже. Исключения всегда есть, куда же без них.
zenches
Дело, на мой взгляд, не в конкретных навыках, а в потребностях бизнеса.
Зачастую вдали от региональных центров отсутствуют работодатели, которые нуждаются (и могут себе позволить) в сложных системах, требующих высококвалифицированного персонала для развёртывания и сопровождения на постоянной основе.
В таких условиях специалисты могут либо развиваться с прицелом на переезд в места, где их квалификация может быть востребована и соответственно оплачена, либо заниматься низкоквалифицированной работой с соответствующей оплатой.
GhOsT_MZ
Подскажите, а где можно посмотреть такую статистику?
fpir
Для научных целей я затрудняюсь порекомендовать источник, а для удовлетворения любопытства попробуйте поискать вакансию сисадмина в Брянске, Орле, Калуге и т.д.
GhOsT_MZ
Ну тут небольшая поправка. В Бранске, Орле, Калуге и т.д. наверняка нет понятия эникейщик. Эникейщиков там называют сисадминами, поэтому и получается подобная статистика.
fpir
В общем-то да, так и есть, хорошо если не программист. Но этому эникейщику вменяется держать домен на 2003м сервере, рулить политиками, и, как правило, ещё и внешние обработчики для 1с писать. А чё, всё равно ничего не делает, за что своих 15к получает-непонятно.
rzerda
У меня на столе лежит красная папка, в которой, помимо прочего, есть шпаргалки по команде ip и приоритетам переменных в Ansible, список IP-адресов DNS-серверов в нескольких ДЦ и таблица времени в четырёх зонах.
Ибо когда это всё срочно понадобится, я не хочу надеяться только на собственную память или умение считать в уме. Надежда — это не тактика.