Как разрешить ping в linux
Блокировка PING на сервер является полезным, если сервер постоянно сталкивается с какой-то DoS атакой с помощью функции PING. При использовании IPTables мы можем просто остановить запретить прохождение ICMP пакетов (собственно, запретить PING) на сервер. Перед началом этого необходимо иметь представление о том, что такое Iptables в Linux. Iptables это система межсетевого экрана с набором правил, которые контролирует входящие и исходящие пакеты. По-умолчанию в Iptables работает без каких-либо правил, вы можете создавать, добавлять, редактировать правила.
Отключения Ping используя iptables
Обьяснение некоторых параметров в iptables, которые необходимы для создания правил управления ICMP пакетами:
Ниже, я приведу наглядные примеры.
Заблокирует все входящие и исходящие ICMP пакеты на сервере.
Разрешить Ping используя iptables
Если заблокировали ping на сервере и не знаете как вернуть назад. То я сейчас расскажу как это сделать. А делается это, добавлением следующего правила в IPtables:
Данные правила разрешат прохождения ICMP пакетов с сервера и на него.
Мы также можем блокировать пинг ответы непосредственно параметрами ядра. Можно заблокировать ответы на пинг временно или постоянно и внизу показано как это сделать.
Временная блокировка Ping
Вы можете заблокировать временно ответы на пинг используя следующую команду
Чтобы разблокировать эту команду, выполните следующую:
Запретить Ping вообще
Вы можете заблокировать пинг ответы добавляя следующий параметр в конфигурационный файл:
-w флаг используется, если вы хотите изменить некоторые настройки.
Теперь выполните следующую команду, чтобы немедленно применить настройки без перезагрузки системы:
Вот мой полный конфиг:
и потом можно выполнить:
Но так же, можно его просто прочитать тут:
sysctl.conf
Блокировка PING на сервер является полезным, если сервер постоянно сталкивается с какой-то DoS атакой с помощью функции PING. При использовании IPTables мы можем просто остановить запретить прохождение ICMP пакетов (собственно, запретить PING) на сервер. Перед началом этого необходимо иметь представление о том, что такое Iptables в Linux. Iptables это система межсетевого экрана с набором правил, которые контролирует входящие и исходящие пакеты. По-умолчанию в Iptables работает без каких-либо правил, вы можете создавать, добавлять, редактировать правила.
Отключения Ping используя iptables
Обьяснение некоторых параметров в iptables, которые необходимы для создания правил управления ICMP пакетами:
-A : Добавляет правила.
-D : Удаляет правило с таблицы.
-p : Опция чтобы указать протокол (где ‘icmp’).
—icmp-type : Опция для указания типа.
-J : Перейти к цепочке.
Ниже, я приведу наглядные примеры.
Для этого, используем команду для ИПтейбелс:
Заблокирует все входящие и исходящие ICMP пакеты на сервере.
Разрешить Ping используя iptables
Если заблокировали ping на сервере и не знаете как вернуть назад. То я сейчас расскажу как это сделать. А делается это, добавлением следующего правила в IPtables:
Данные правила разрешат прохождения ICMP пакетов с сервера и на него.
Мы также можем блокировать пинг ответы непосредственно параметрами ядра. Можно заблокировать ответы на пинг временно или постоянно и внизу показано как это сделать.
Временная блокировка Ping
Вы можете заблокировать временно ответы на пинг используя следующую команду
Чтобы разблокировать эту команду, выполните следующую:
Запретить Ping вообще
Вы можете заблокировать пинг ответы добавляя следующий параметр в конфигурационный файл:
sysctl используется для изменения параметров ядра во время выполнения, один из этих параметров может быть «ping daemon» (демон пинга), если вы хотите отключить пинг, то вы просто должны выполнить что-то вроде:
-w флаг используется, если вы хотите изменить некоторые настройки.
Теперь выполните следующую команду, чтобы немедленно применить настройки без перезагрузки системы:
Вот мой полный конфиг:
и потом можно выполнить:
Но так же, можно его просто прочитать тут:
Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.
Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.
В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.
Команда ip
Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.
Синтаксис этой команды выглядит так:
Самое важное тут — это <OBJECT> (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:
- address — адрес протокола (IPv4 или IPv6) на устройстве.
- tunnel — IP-туннель.
- route — запись таблицы маршрутизации.
- rule — правило в базе данных политики маршрутизации.
- vrf — управление виртуальными устройствами маршрутизации и перенаправления трафика.
- xfrm — управление IPSec-политикой.
Вывод IP-адресов, назначенных интерфейсу на сервере:
Назначение IP-адреса интерфейсу, например — enps03 :
Удаление IP-адреса из интерфейса:
Изменение статуса интерфейса, в данном случае — включение eth0 :
Изменение статуса интерфейса, в данном случае — выключение eth0 :
Изменение статуса интерфейса, в данном случае — изменение MTU eth0 :
Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:
Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0 :
Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:
Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0 :
Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:
Вывод маршрута к IP 10.10.1.4:
Команда ifconfig
Команда ifconfig до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip , о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный материал.
Команда mtr
MTR (Matt's traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping и traceroute . Она, как traceroute , может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.
Синтаксис команды выглядит так:
Рассмотрим несколько распространённых способов применения mtr .
Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:
Вот — вариант использования mtr , когда вместо имён хостов выводятся их IP-адреса (речь идёт о ключе -g , благодаря которому вместо имён выводятся числовые IP-адреса):
А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:
А так можно получить отчёт, содержащий результаты работы mtr :
Вот — ещё один вариант получения такого отчёта:
Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:
А вот так можно использовать UDP вместо ICMP:
Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:
Так можно настроить размер пакета:
Для вывода результатов работы mtr в формате CSV используется такая команда:
Вот — команда для вывода результатов работы mtr в формате XML:
Команда tcpdump
Утилита tcpdump предназначена для захвата и анализа пакетов.
Установить её можно так:
Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.
Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:
Или — такой, с указанием (через ключ -c ) количества пакетов, которые нужно захватить:
▍ Захват трафика, идущего к некоему хосту и от него
Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:
Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:
Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:
▍ Захват трафика, идущего в некую сеть и из неё
Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:
Ещё можно поступить так:
Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.
Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):
Вот — захват трафика с фильтрацией по сети, в которую он направляется:
▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
Вот пример захвата трафика только для DNS-порта по умолчанию (53):
Захват трафика для заданного порта:
Захват трафика для всех портов кроме 80 и 25:
Команда netstat
Инструмент netstat используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig , частью пакета net-tools . В новом пакете iproute2 для достижения тех же целей используется утилита ss .
Если в вашей системе netstat отсутствует, установить эту программу можно так:
Ей, в основном, пользуются, вызывая без параметров:
В более сложных случаях её вызывают с параметрами, что может выглядеть так:
Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:
Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:
Для вывода сведений обо всех TCP-портах применяется такой вариант команды:
Если нужны данные по UDP-портам — утилиту вызывают так:
Список портов любых протоколов, ожидающих соединений, можно вывести так:
Список TCP-портов, ожидающих соединений, выводится так:
Так выводят список UDP-портов, ожидающих соединений:
А так — список UNIX-портов, ожидающих соединений:
Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:
Так выводятся статистические сведения по TCP-портам:
Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:
Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:
Команда nslookup
Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.
Рассмотрим распространённые примеры использования этой команды.
Получение A-записи домена:
Просмотр NS-записей домена:
Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:
Обнаружение всех доступных DNS-записей домена:
Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:
Команда ping
Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:
В данном случае работу команды ping можно остановить, воспользовавшись сочетанием клавиш CTRL+C . В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:
- Min — минимальное время, которое требуется на получение ответа от пингуемого хоста.
- Avg — среднее время, которое требуется на получение ответа.
- Max — максимальное время, которое требуется на получение ответа.
Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:
А для того чтобы увидеть лишь итоговый отчёт работы ping — можно воспользоваться ключом -q :
В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping . Например, есть компьютер, имеющий интерфейсы eth0 и eth1 . Если нужно, чтобы команда ping использовала бы интерфейс eth0 — надо запустить её так:
Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:
Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:
▍ Destination Host Unreachable
Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.
▍ Request timed out
▍ Unknown host/Ping Request Could Not Find Host
Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.
О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).
Итоги
Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.
Команда PING Linux, или Packet Internet Groper — популярная утилита. Её основная цель — управление состоянием сетевого подключения между источником и устройством с помощью IP-сети. В этом руководстве вы узнаете, как она работает и чем может быть полезна вашему проекту.
Что Такое Команда Ping в Linux?
Будь то локальная (LAN) или глобальная вычислительная сеть (WAN), ping предоставляет точные сведения о подключении. Вы также получаете статистические сводки, которые включают информацию о минимальных и максимальных раундах, количестве переданных и полученных пакетов, процент потерянных пакетов и стандартное отклонение от среднего значения. Таким образом, пользователь может полностью проверить качество сетевого соединения между двумя устройствами. Здорово, не так ли?
Проверка пинга между вашим компьютером и целевым хостом позволит вам определить:
- Статус целевого хоста: доступен ли он
- Измерение времени соединения (хост-компьютер-хост)
- Процент потерянных пакетов.
Как Установить Команду Ping в Linux
Помните, что сначала мы должны подключиться к нашему VPS по SSH. Вы можете обратиться к нашему руководству по PuTTY, если у вас возникли проблемы.
В большинстве версий Linux ping установлена по умолчанию. Вы можете проверить это, выполнив команду:
Если ping отсутствует, быстрое обновление системы должно помочь:
Как Пользоваться Командой Linux Ping?
В Linux есть разные варианты, как можно проверить соединение между двумя сетями:
1. Проверка Соединения
Вы можете запустить в своей системе простую и быструю команду, чтобы проверить состояние целевого хоста и сервера или компьютера.
Если вы не знаете домен, вы также можете использовать IP-адрес. Здесь IP-адрес Google отображается в скобках вместе с полной статистической сводкой.
- min — минимальное время ответа
- avg — показывает среднее время ответа
- max — максимальное время ответа
Чтобы остановить команду ping в Linux, используйте Ctrl + C. Это остановит отправку пакетов на целевой хост. Также команда остановит все процессы в терминале.
2. Указание Количества ECHO_REQUEST
Параметр команды -c используется для указания количества пакетов или запросов, которые хочет выполнить пользователь.
Синтаксис будет выглядеть так:
Здесь * — количество пингов, которые вы хотите выполнить.
3. Звуковой Пинг
Опция команды Linux ping -a создаёт звуковой сигнал, чтобы проверить, является ли хост активным или нет, таким образом сообщая вам об этом.
Команда будет выглядеть так:
Помните, чтобы завершить пинг, нажмите Ctrl+C.
4. Установка Интервалов
Опция –i в Linux позволяет пользователю устанавливать интервалы в секундах между каждым пакетом.
Команда имеет ту же структуру, что и предыдущие:
Цифры, которые вы видите в команде могут быть изменены по вашему желанию.
5. Получать Только Сводку Команды Ping
Чтобы получить только сводную информацию о сети, используйте параметр -q в командной строке терминала Linux:
Опять же, мы по-прежнему указываем -c 7 для выполнения семи запросов, но получаем только сводку, поскольку добавили -q.
6. Тестируем Нагрузку на Сеть с Помощью Команды Linux Ping
Команда ping позволяет отправлять 100 или более пакетов в секунду с помощью следующей команды:
Это отличный вариант, если вы хотите проверить, как ваш сайт или сервер справляется с нагрузкой на сеть — большим количеством запросов.
Итоги
Команда Ping в Linux — это популярная утилита для устранения проблем доступности хостов в сети. Она помогает нам понять причину, по которой сайт может не загружаться.
Нам нужно найти причину проблемы, ведь это может быть что угодно: подключение к интернету, потеря сети или сайт больше недоступен. Ping — команда, которая помогает определить доступность сетевого устройства.
Это очень быстрая и понятная команда, поэтому многие пользователи предпочитают использовать именно её для устранения неполадок. Теперь вы тоже знаете, как она работает!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Читайте также: