Лучшие сетевые утилиты linux
Сеть, это один из самых важных компонентов администрирования серверов или просто компьютеров с операционной системой Linux. Пользователям домашнего компьютера вряд ли понадобятся все эти утилиты. Но вот для администраторов серверов или даже сетей, это вещь незаменимая. Особенно когда нужно понять почему не работает сеть или выяснить на каком сетевом узле прерывается передача пакетов.
В этой статье мы рассмотрим лучшие сетевые утилиты linux, это самые основные команды, которые можно использовать для администрирования сети в Linux. Эта статья не научит вас всем тонкостями использования таких команд, это всего лишь небольшой список с кратким описанием. Если у вас уже есть небольшой опыт их использования, то вы можете использовать статью как шпаргалку, для лучшего запоминания.
Возможность подключения
ping — отправляет один эхо запрос по протоколу ICMP на удалённый хост. Пакеты будут отправляется непрерывно, пока вы не нажмете Ctrl+C. Когда пакет будет отправлен, хост должен отправить ответное ICMP сообщение, это и будет означать, что другой хост работает.
telnet хост — проверить доступность определенного порта на хосте. По умолчанию telnet использует порт 23, но также можно использовать и другие. Например, 7 — эхо порт, 25 — SMTP, почтовый сервер, 79 — Finger, предоставляет информацию о других пользователях сети. Нажмите Ctrl+] чтобы завершить работу telnet.
ARP используется для преобразования IP-адресов в адреса физической сети, к которой подключен компьютер, например, Ethernet или Wifi. Суперпользователь может добавлять и удалять Arp записи. Их удаление может быть полезно, если arp запись была подделана или просто неверная. Явно добавленные записи — постоянные и система может им доверять. Таблица ARP хранится в ядре и может изменяться динамически. Полученные от других компьютеров ARP записи кэшируются и удаляются по истечении таймаута в 20 минут.
arp –a — вывести таблицу ARP
arp -s — добавить запись в таблицу маршрутизации
arp –a –d — удалить все записи из таблицы ARP
Маршрутизация
Эти утилиты позволяют выполнять администрирование сети linux, а также настраивать маршрутизацию между узлами.
netstat –r — вывести таблицу маршрутизации
Таблица маршрутизации хранится в ядре и используется для маршрутизации IP пакетов за пределами локальной сети.
route add — эта команда используется для установки статических (нединамических) маршрутов вручную. Все пакеты, отправляемые с этого компьютера в определенную сеть должны пройти через определенный шлюз. Этот шлюз мы и устанавливаем командой route. Мы можем задать маршрут по умолчанию, чтобы все отправляемые пакеты, для которых не определен шлюз отправлялись через него, для этого используйте в качестве целевого адреса 0.0.0.0.
routed — BSD демон, который выполняет динамическую маршрутизацию. Он работает по протоколу RIP. Запускать программу можно только с правами суперпользователя.
gated — это альтернатива для routed, может использовать протоколы RIP, OSPF, EGP одновременно. Тоже нужны права root.
traceroute — очень полезная утилита, для отслеживания маршрута пакетов. Чаще всего с помощью этой команды выполняется проверка сети linux. Пакет отправляет сообщение на компьютер со всех шлюзов между источником и пунктом назначения.
netstat –rnf inet — отображает таблицу маршрутизации ipv4
sysctl net.inet.ip.forwarding=1 — разрешает прохождение пакетов через этот компьютер.
route flush — удалить все маршруты
route add -net 0.0.0.0 192.168.10.2 — добавить маршрут по умолчанию
routed -Pripv2 –Pno_rdisc –d [-s|-q] — запустить демон routed по протоколу RIP2 без поддержки ICMP автообнаружения и подробном (s) или минимальном (q) режиме вывода информации.
route add 224.0.0.0/4 127.0.0.1 — добавить маршрут, используемый RIP2
rtquery –n — попросить RIP демона отправить запрос на другой хост (ручное обновление таблицы маршрутизации.
Другое
Иногда нужно не только управление сетью linux, но и работа с другими протоколами, такими как DNS или FTP.
nslookup — отправить запрос DNS серверу, на преобразование доменного имени в IP. Например, nslookup facebook.com вернет ip адрес сервера facebook.com.
ftp хост — передать файлы на хост. Часто нужно использовать также логин и пароль.
rlogin -l — подключиться к виртуальному терминалу с помощью telnet. Не рекомендуется использовать эту конструкцию, лучше используйте защищенное соединение по ssh.
Важные файлы
/etc/hosts — локальные имена для ip адресов
/etc/networks — имена сетей относительно ip адресов
/etc/protocols — имена протоколов для номеров протоколов
/etc/services — tcp/udp сервисы для номеров портов
Анализ сети
ifconfig интерфейс адрес [up] — запустить интерфейс
ifconfig интерфейс [down|delete] — остановить интерфейс
ethereal & — позволяет запустить ethereal в фоновом режиме
tcpdump –i -vvv — инструмент для записи и анализа пакетов
netstat –w секунды –I интерфейс — отобразить настройки сети и статистику
udpmt –p порт –s байт целевой_хост — генерирует UDP трафик
udptarget –p порт — получать UDP трафик
tcpmt –p порт –s байт целевой_хост — генерировать TPC трафик
tcptarget –p порт — получать TCP трафик
ifconfig — посмотреть состояние сетевых интерфейсов
netmask [up] — позволят посмотреть подсети
Свитчинг
ifconfig sl0 srcIP dstIP — настроить серийный интерфейс( сначала выполните slattach –l /dev/ttyd0 а затем sysctl net.inet.ip.forwarding=1
telnet 192.168.0.254 — подключится к свитчу из этой подсети
sh ru или show running-configuration — отобразить текущую конфигурацию
configure terminal — перейти в режим настройки
exit — выйти из режима настройки
vlan n — создать VLAN с ID n
no vlan N — удалить VLAN с ID N
untagged Y — добавить порт Y к VLAN N
ifconfig vlan0 create — создать интерфейс vlan0
ifconfig vlan0 vlan ID vlandev em0 — соединить vlan0 с em0
ifconfig vlan0 up — активировать виртуальный интерфейс
UDP / TCP
Это программы для работы с сетью linux, которые позволяют передавать пакеты между машинами.
socklab udp — запустить socklab по протоколу udp.
sock — создать udp соект
sendto ид_сокета хост — порт передача пакетов данных
recvfrom ид_сокета размер_байт — получить данные из сокета
socklab tcp — запустить socklab по протоколу tcp
passive — создать сокет в пассивном режиме.
accept — разрешает входящие соединения
connect хост порт — эквивалент socklab
clase — закрывает соединение
read размер_байт — прочитать несколько байт из сокета
write — записать несколько байт в сокет
NAT/Фаервол
rm /etc/resolv.conf — отключает разрешение доменных имен, что гарантирует правильную фильтрацию по правилам фаервола.
ipnat –f имя_файла -записывает правила фаервола в файл
ipnat –l — получить список активных правил
ipnat –C –F — Очистить таблицу правил
map em0 192.168.1.0/24 -> 195.221.227.57/32 em0 — привязать IP адреса к интерфейсу
map em0 192.168.1.0/24 -> 195.221.227.57/32 portmap tcp/udp 20000:50000 — привязка IP адреса вместе с портом.
ipf –f имя_файла — записать правила в файл
ipf –F –a — очистить таблицу правил
ipfstat –I — информация о фильтрации, отфильтрованных пакетах и правилах.
Выводы
В этой статье мы рассмотрели самые полезные сетевые утилиты linux, с помощью них вы можете выполнять тестирование сети linux, проверить сеть на работоспособность и обнаружить неполадки сети. Более подробную информацию по каждой из них вы можете найти в официальной документации.
linux-notes.org
Топ-10 Основных сетевых команд в Linux
Сеть является неотъемлемой частью Linux и предлагает множество инструментов и команд для диагностики любой сетевой проблемы.
Сетевые команды в примерах в Linux
• Найти хост / доменное имя и IP-адрес — hostname
• Сделать тест сетевого соединения — ping-
• Получение конфигурации сети — Ifconfig
• Сетевые соединения, таблицы маршрутизации, статистики интерфейсов — NETSTAT
• Поиск имени DNS запрос — Nslookup
• Подключение к другим хостам — Telnet
• Получить сетевой хост — информация для пользователя трассировку
• Сделать трассировку — traceroute
• Просмотр информации пользователя – finger
• Проверка статуса хоста назначения — Telnet
Примеры использования сетевых команд в Linux
Давайте посмотрим некоторые примеры различных сетевых команд в Linux. Некоторые из них довольно элементарные например пинг и телнет, а некоторые являются более мощными, например Nslookup и NetStat. Когда вы использовали эти команды в комбинации вы можете получить все, что вы ищете , например, имя хоста , конечные соединения точек , состояние соединения и т.д.
hostname — Имя хоста
Имя хоста (hostname) без вариантов отображает хозяина машины. По этому чтобы проверить кто владелец выполните команду:
Эта команда отображает доменное имя машины. Чтобы увидеть IP -адрес для текущей машины выполните эту же команду с ключом «i»:
ping — пинг
Он посылает пакеты информации в определенный пользователем источник. Если будут получены пакеты , устройство назначает и посылает пакеты обратно . Ping можно использовать для двух целей
1 . Чтобы гарантировать, что сетевое соединение может быть установлено.
2 . Timing соединения. Если у вас пинг www.linux-notes.org он покажет IP -адрес сайта и время. Используйте Ctrl + C , чтобы остановить тест. Выполнить команду можно так:
Можно задать время перед отправкой пакета, например подождать 3 секунды перед отправкой следующего пакета.
Чтобы проверить локальный интерфейс существует несколько способов:
Можно так же посылать N количество пакетов и после чего завершить работу, для этого:
Так же можно узнать версию самого пинга, для этого выполните команду:
Вы запустили утилиту пинг, а ответа от вашего хоста вовсе нет, вы начинаете выяснять в чем же дело, и как решите эту проблему то удаленный хост выдаст звуковое предупреждение.
С опцией «-q» Вы сможете пропустить ответы от вашего удаленного хоста и показать полученную статистику:
Можно изменить размер передаваемого пакета (допустим с 56 на 120), а сделать это можно так:
Мы так же можем изменять длительность выполнение команды пинг, например нам нужно пинговать сервис 15 секунд, то для этого выполните:
Не прервав команду пинг, вы сможете увидеть статистику выполнения, нужно нажать CTRL + |
Ifconfig
Посмотреть конфигурацию сети , он отображает текущую конфигурацию сетевого адаптера . Это удобно, чтобы определить, если вы transmit (ТХ ) или receive (RX) ошибки.
traceroute
Удобная программа для просмотра количества количество прыжков и время отклика , чтобы добраться до удаленной системы или веб-сайта. Но вам нужно подключение к интернету , чтобы использовать этот инструмент. Но ее возможно будет Вам установить, чтобы воспользоватся.
Можно вывести информацию о всех сетевых картах что подключены, для этого выполните:
netstat
Самая полезная и очень универсальная для нахождения подключений к и от хозяина. Вы можете узнать все о многоадресной группы (multicast groups) сети выполнив:
Чтобы увидеть кто «сидит» на порту (допустим на 21) выполните команду:
Чтобы увидеть все соединения в том числе TCP и UDP выполните команду:
Параметр что выполнена программа будет отображать только соединение TCP:
Параметр что выполнена программа будет отображать только соединение UDP:
nslookup
Если вы знаете IP-адрес он будет отображать как имя хоста. Чтобы найти все IP-адреса для данного доменного имени, команда Nslookup используется. Вы должны быть подключение к Интернету для этой утилиты. Пример использования:
Вы также можете использовать Nslookup преобразовать имя хоста в IP-адрес и с IP-адреса из имени хоста.
finger
Посмотреть информацию о пользователях, отображает имя пользователя логин, настоящее имя, имя терминала и статус записи. это довольно старая команда для Linux и редко используемые в настоящее время.
telnet
Подключается хозяина назначения по протоколу Telnet, если телнет соединение установить на любом порту означает соединения между двумя хостами работает нормально.
Обычно он используется для того чтобы узнать жив ли хост или сетевое соединение в порядке.
Тема «Топ-10 Основных сетевых команд в Linux» завершена, но если я не упомянул о более хороших команд на Ваш взгляд, то пишите в комментарии и я дополню эту статью. Если есть вопросы и предложения, пишите все в комментарии. Спасибо.
One thought on “ Топ-10 Основных сетевых команд в Linux ”
Ну что прикольная статься. Норм короче. Автор красавчик.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.