Introduction
The ping command is a network tool for checking whether a remote system is up and running. In other words, the command determines if a certain IP address or a host are accessible. Ping uses a network layer protocol called Internet Control Message Protocol (ICMP) and is available on all operating systems.
On the other hand, port numbers belong to transport layer protocols, such as TCP and UDP. Port numbers help identify where an Internet or other network message is forwarded when it arrives.
In this tutorial, you will learn how to ping a port in Windows and Linux using different tools.
Prerequisites
- A Linux or Windows system
- Access to the command line
- An account with sudo/admin privileges
Can You Ping a Specific Port?
Network devices use ICMP to send error messages and information on whether communication with an IP address is successful or not. ICMP differs from transport protocols as ICMP is not used to exchange data between systems.
Ping uses ICMP packets, and ICMP does not use port numbers which means a port can’t be pinged. However, we can use ping with a similar intention – to check if a port is open or not.
Some network tools and utilities can simulate an attempt to establish a connection to a specific port and wait to see if the target host responds. If there is a response, the target port is open. If not, the target port is closed, or the host is unable to accept a connection because there is no service configured to listen for connections on that port.
You can use three tools to ping a port in Linux:
- Telnet
- Netcat (nc)
- Network Mapper (nmap)
See our tutorial on how to use the ping command in Linux to learn about additional ping options and variations in Linux.
Ping a Specific Port Using Telnet
Telnet is a protocol used for interactive communication with the target host via a virtual terminal connection.
1. To check whether telnet is already installed, open a terminal window and enter telnet
.
2. If telnet is not installed, install it using the following command
- For CentOS/Fedora:
yum -y install telnet
- For Ubuntu:
sudo apt install telnet
3. To ping a port using telnet, enter the following command in the terminal:
telnet <address> <port_number>
The <address>
syntax is the domain or the IP address of the host, while <port_number>
is the port you want to ping.
telnet google.com 443
If the port is open, telnet establishes a connection. Otherwise, it states a failure.
4. To quit telnet, press Ctrl + ] and run the q
command.
Ping a Specific Port Using Netcat
Netcat (nc) reads and writes from connections using TCP and UDP protocols. This command-line tool can perform many network operations.
1. To check if netcat is installed:
- For Debian, Ubuntu, and Mint: enter
netcat -h
- For Fedora, Red Hat Enterprise Linux, and CentOS:
ncat -h
2. If netcat is not installed, run the following command in the terminal:
sudo apt install netcat
3. To ping a port using netcat enter the following:
nc -vz <address> <port_number>
The output informs the user if the connection to the specified port is successful or not. If it is successful, the port is open.
Ping a Specific Port Using Nmap
Nmap is a network tool used for vulnerability scanning and network discovery. The utility is also useful for finding open ports and detecting security risks.
Important: Be aware of legal ramifications regarding improper Nmap use, for example, flooding a network or crashing a system.
1. Check if you have Nmap installed by entering nmap -version
in the terminal.
If Nmap is installed, the output informs the user about the app version and platform it runs on.
2. If there is no Nmap on your system, enter the following command:
- For CentOS or RHEL Linux:
sudo yum install nmap
- For Ubuntu or Debian Linux:
sudo apt install nmap
3. Once Nmap is installed on the system, use the following command to ping a specific port:
nmap -p <port_number> <address>
The output informs the user about the port’s state and service type, latency, and the time elapsed until the completion of the task.
4. To ping more than one port, enter nmap -p <number-range> <address>
.
The <number-range>
syntax is the range of port numbers you want to ping, separated by a hyphen.
For example:
nmap -p 88-93 google.com
Learn in-depth how to use nmap to scan ports with our guide How To Scan & Find All Open Ports With Nmap.
How to Ping a Specific Port in Windows?
There are two ways to ping a port in Windows:
- Telnet
- PowerShell
Ping a Port Using Telnet
Before using telnet, make sure it is activated:
1. Open the Control Panel.
2. Click Programs, and then Programs and Features.
3. Select Turn Windows features on or off.
4. Find Telnet Client and check the box. Click OK.
You activated the Telnet Client on the system.
After completing the activation, you are ready to ping a port using telnet.
Follow these steps:
1. Search for “cmd” in the start menu. Click the Command Prompt.
2. In the command prompt window, enter
telnet <address> <port_number>
The <address>
syntax is the domain or the IP address of the host, while <port_number>
is the port number you want to ping.
The output lets you know if the port is open and reachable. Alternatively, a connection failure message is shown.
Ping a Port Using PowerShell
PowerShell is a text-based shell that comes with Windows by default.
To ping a port using PowerShell, follow these steps:
1. Search for “PowerShell” in the start menu. Click the Windows PowerShell app.
2. In the PowerShell prompt window enter
Test-NetConnection <address> -p <port_number>
If the port is open and the connection passes, the TCP test is successful. Otherwise, a warning message appears saying the TCP connection failed.
Conclusion
Now you know how to ping and check if a port is open by using several network tools and utilities on Linux and Windows.
Bear in mind that you should not do TCP probing or scan a system unless you have the owner’s permission. Otherwise your actions may be interpreted as an attempt to compromise security.
Диагностика и логи
В этой статье мы расскажем:
- что такое порт,
- как проверить доступность порта через telnet,
- для чего нужны команды ping и traceroute,
- как диагностировать сеть с помощью MTR,
- как посмотреть журнал сайта.
Что такое порт
Когда решено обменяться данными по локальной сети, устройства связываются друг с другом. Для этого каждому устройству нужно иметь свой IP-адрес и открыть порты для взаимодействия.
Порт — это числовой идентификатор приложения или процесса в диапазоне от 0 до 65 535. На устройстве может находиться сразу несколько сетевых приложений, которые привязаны к разным портам, при этом за сеанс нужно подключиться только к одному приложению. Поэтому порт открывает соединение с конкретным приложением и обслуживает его, пока сеанс не завершится.
Проверить порт сервера на доступность можно следующими способами:
- с помощью сервиса Проверка доступных портов,
- с помощью консольных команд: telnet, ping, traceroute,
- с помощью программы MTR.
Как проверить, открыт ли порт, командой Telnet
Telnet — это утилита, с помощью которой можно соединиться с удалённым портом любого компьютера и установить канал связи. Это реализация клиентской части протокола с тем же названием (стандартный порт telnet — 23). Для использования telnet нужно знать, какой порт использует искомое приложение, а также имя или IP-адрес сервера. Если при работе с telnet не указать порт, утилита проверит доступность сервера аналогично команде ping.
Рассмотрим, как узнать, открыт ли порт на компьютере или сервере в Windows и Linux.
Важно: в Windows Vista и Windows 7/8/10 утилита telnet по умолчанию отключена. Вы можете установить утилиту по инструкции от Microsoft.
-
1.
Нажмите Пуск или сочетание клавиш Win + R.
-
2.
В поле поиска введите «cmd» и нажмите кнопку ОК.
-
3.
В командной строке введите команду:
telnet имя_сервера номер_порта
или:
telnet IP_сервера номер_порта
Если командная строка или терминал возвращает ошибку, то порт закрыт:
Как с помощью telnet в Windows 10 проверить порт
Если окно становится полностью пустым или на экране появляется приглашение сервера, порт открыт:
Как выглядят в Windows и Linux (Ubuntu, Centos) открытые порты
-
1.
Запустите терминал. Для этого в поисковой строке введите слово «Терминал» или нажмите комбинацию клавиш Ctrl+Alt+T.
-
2.
Установите утилиту telnet:
sudo apt install telnet
-
3.
В терминале введите команду:
telnet имя_сервера номер_порта
или:
telnet IP_сервера номер_порта
Если командная строка возвращает ошибку, то порт закрыт:
Если порт открыт, появится следующее сообщение:
Telnet: подключение к порту
Как пользоваться ping и traceroute
Ping — это утилита, с помощью которой возможна проверка доступности сервера по IP с компьютера. Опрашиваемому узлу отправляются эхо-запросы (ICMP-пакеты Echo Request). Если до узла дошёл запрос, в ответ он должен отправить ICMP-пакет с принятыми данными и эхо-ответ (Echo Reply). Подробнее в статье Команда Ping.
Traceroute — это утилита, с помощью которой можно отследить путь запроса к серверу, а также проблемы, связанные с доступностью удалённого сервера. Утилита отправляет запрос узлу и последовательно опрашивает все маршрутизаторы на пути. Подробнее о работе утилиты и её установке читайте в статье Утилиты Traceroute и Tracert.
Если у вас кириллический домен
Кириллические домены необходимо вводить в формате Punycode. Для перевода домена в Punycode воспользуйтесь сервисом. Введите имя вашего домена и нажмите Конвертировать.
Чтобы проверить доступность сайта или IP адреса, выберите инструкцию для вашей ОС.
-
1.
Нажмите Пуск или сочетание клавиш Win + R.
-
2.
В поле поиска введите «cmd» и нажмите кнопку ОК.
-
3.
В окне терминала введите нужную команду:
-
ping —
ping имя_сайта
илиping IP_сервера
,
Команда ping: как проверить доступность сервера или компьютера
-
traceroute —
tracert имя_сайта
илиtracert IP_сервера
.
Telnet: порт Windows 7
-
-
1.
Запустите терминал. Для этого в поисковой строке введите слово «Терминал» или нажмите комбинацию клавиш Ctrl+Alt+T.
-
2.
В открывшемся окне терминала введите нужную команду:
-
ping —
ping имя_сайта
илиping IP_сервера
,
-
traceroute —
traceroute имя_сайта
илиtraceroute IP_сервера
.
-
-
1.
Найдите в Spotlight утилиту Network Utility (Сетевая утилита) и запустите её.
-
2.
В открывшейся программе выберите нужную вкладку:
-
ping — на вкладке «Ping» введите имя домена или IP-адрес и нажмите кнопку Ping:
-
traceroute — на вкладке «Traceroute» введите имя домена или IP-адрес и нажмите кнопку Trace:
-
Готово, мы рассмотрели, как пользоваться командой ping и как запустить tracert.
Результатом работы каждой из этих команд будет несколько строк в окне терминала. Результат команды ping покажет количество переданных и потерянных пакетов при обмене с узлом, а также время приёма и передачи. Результатом traceroute будет трассировка маршрута к узлу.
Вы можете скопировать полученный результат или прислать скриншот с результатом исполнения в службу поддержки.
Диагностика сети при помощи MTR
MTR — программа, которая сочетает функционал команд traceroute и ping в одном инструменте. MTR проверяет соединение между локальной системой и указанным узлом (IP или доменом). Программа отправляет запрос к узлу, как команда ping, и показывает маршрут пакета, как traceroute.
Диагностика сети WinMTR:
-
1.
-
2.
Распакуйте архив и запустите программу от имени администратора:
Centos: открытые порты
-
3.
Нажмите Options, в настройках отключите галочку Resolve names. Нажмите OK:
-
4.
В поле «Host» введите ваше доменное имя или IP-адрес. Нажмите Start:
-
5.
Когда число отправленных пакетов (колонка «Sent») будет более 200, нажмите Stop:
Диагностика сети Winmtr
-
6.
Нажмите Export TEXT и сохраните результат работы программы:
Centos: проверить открытые порты
Результат работы содержит:
- Hostname — IP-адрес или домен узла. Значение «No response from host» говорит о блокировке ICMP-пакетов в узле;
- Loss % — процент потерянных ответов от данного узла. Например, при «No response from host» процент потерь равен 100 — значит, маршрутизатор не ответил на ICMP-запрос;
- Sent — количество отправленных запросов узлу;
- Recv — количество полученных ответов от узла;
- Best — наименьшее время задержки, мс;
- Avrg — среднее время задержки, мс;
- Worst — наибольшее время задержки, мс;
- Last — время задержки последнего полученного пакета, мс.
На Linux утилита MTR установлена по умолчанию.
-
1.
Запустите терминал. Для этого в поисковой строке введите слово «Терминал» или нажмите комбинацию клавиш Ctrl+Alt+T.
-
2.
Если утилита MTR не установлена, введите команды:
- для Ubuntu/Debian:
sudo apt install mtr
- для CentOS:
sudo yum install mtr
- для Fedora:
sudo dnf install mtr
- для Ubuntu/Debian:
-
3.
Введите команду:
mtr -n -c 300 -r 123.123.123.123
Где 123.123.123.123 — IP-адрес вашего сайта.
-
4.
Дождитесь окончания выполнения запроса. В окне терминала вы увидите результат работы утилиты MTR:
Результат работы содержит:
- HOST — IP-адрес или домен узла. Значение «???» говорит о блокировке ICMP-пакетов в узле;
- Loss% — процент потерянных ответов от данного узла. Например, при «???» процент потерь равен 100 — значит, маршрутизатор не ответил на ICMP-запрос;
- Snt — количество отправленных запросов узлу;
- Last — время задержки последнего полученного пакета, мс;
- Avg — среднее время задержки, мс;
- Best — наименьшее время задержки, мс;
- Wrst — наибольшее время задержки, мс;
- StDev — среднеквадратичное отклонение времени задержки, мс.
В MacOS MTR не установлена по умолчанию. Чтобы установить MTR вручную:
-
1.
Запустите терминал. Для этого нажмите Cmd + Пробел, в поисковой строке введите слово «Терминал» и нажмите Enter.
-
2.
Если у вас не установлен пакетный менеджер Brew, установите его командой:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
Для выполнения команды укажите пароль пользователя. При успешном результате появится уведомление с текстом «Installation successful!»
-
3.
Затем установите MTR командой:
brew install mtr
-
4.
После установки запустите MTR:
sudo /usr/local/sbin/mtr yourdomain.com
Где yourdomain.com — ваш домен. Для выполнения команды также потребуется ввести пароль пользователя.
-
5.
Подождите примерно 10 минут, пока MTR отправит около 300 пакетов и соберёт информацию о задержках и потерях. В окне терминала вы увидите результат работы утилиты MTR:
Результат должен содержать:
- Host — IP-адрес или домен узла. Значение «???» говорит о блокировке ICMP-пакетов в узле;
- Loss % — процент потерянных ответов от данного узла. Например, при «???» процент потерь равен 100 — значит, маршрутизатор не ответил на ICMP-запрос;
- Snt — количество отправленных запросов узлу;
- Last — время задержки последнего полученного пакета, мс;
- Avg — среднее время задержки, мс;
- Best — наименьшее время задержки, мс;
- Wrst — наибольшее время задержки, мс;
- StDev — среднеквадратичное отклонение времени задержки, мс.
Если вы обнаружили потери на промежуточных узлах, проблемы нет. Промежуточные маршрутизаторы могут не отвечать на ICMP-запросы, а просто пропускать дальше трафик. Если же потери обнаружены на конечном узле, отправьте результат работы программы в службу поддержки. В сообщении укажите ваш внешний IP-адрес. Узнать IP-адрес можно на сайте REG.RU.
Как просмотреть журналы сайтов
Журналы сайтов расположены в корневой директории хостинга в папке logs. Логи хостинга можно просмотреть как через хостинг-панели управления, так и по FTP и SSH. Подробнее о том, что такое логи, зачем они нужны и как их читать мы описали в статье Логи сервера.
В панели управления хостингом
- 1.
-
2.
Перейдите в Менеджер файлов, а затем в директорию logs:
-
3.
Для просмотра журнала скачайте необходимый файл на локальный ПК. Для этого выделите строку с названием журнала и нажмите кнопку Скачать:
Обратите внимание: если вид вашей панели управления отличается от представленного в статье, в разделе «Основная информация» переключите тему с paper_lantern на jupiter.
- 1.
-
2.
В разделе «Файлы» нажмите Менеджер файлов:
-
3.
Кликните на папку logs:
-
4.
Выделите строку с названием нужного типа файла и нажмите Скачать:
- 1.
-
2.
Перейдите во вкладку «Файлы», а затем в директорию logs:
-
3.
Для просмотра журнала скачайте необходимый файл на локальный ПК. Для этого выделите строку с названием журнала и нажмите кнопку Скачать:
По FTP или SSH
- 1.
-
2.
Перейдите в директорию logs:
-
3.
Откройте необходимый файл журнала:
- 1.
-
2.
Введите команды
cd logs
иls -all
, чтобы посмотреть содержимое папки logs:
-
3.
Откройте необходимый файл журнала.
Теперь вы знаете, как проверить, открыт ли порт на сервере, как использовать ping и traceroute, и как посмотреть логи сайта.
Обновлено: 19.10.2021
Опубликовано: 27.06.2016
Тематические термины: Ping, Windows, Linux.
Мы рассмотрим использование команды ping для Windows и, немного, для Linux.
Параметры команды ping и их описание
В зависимости от используемой операционной системы опции команды будут иметь разные назначения. Поэтому, если мы хотим понять все возможности, стоит ознакомиться с опцией help.
Общий синтаксис
Независимо от системы, команду ping можно применять так:
ping [опции] <имя сервера или IP-адрес>
Windows
Для просмотра в Windows также используйте команду ping /?
Используются часто:
Параметр | Описание |
---|---|
-t | Команда будет отправлять запросы на проверку постоянно, пока ее не прервать клавишами Ctrl + C. Удобно, если сеть не работает и чтобы постоянно не проверять, появилась ли связь. |
-a | Пытается определить имя узла через DNS. |
-n | Задает определенное число попыток отправки запроса. |
-l | Размер пакета. Используется для проверки стабильности сети, создания тестовой нагрузки и так далее. |
-f | По умолчанию ping разрешает фрагментацию, то есть пакет может быть разбит на несколько для соответствия минимальному пропускаемому размеру (MTU). Данный флаг это запрещает. Используется для определения вышеупомянутого MTU. |
-i | Задает срок жизни пакета (количество сетевых устройств, через которые может пройти сигнал). Может использоваться в случаях, когда количество оборудования слишком велико. Также можно определить его количества. |
-w | Устанавливает время ожидания. Применяется, если существуют проблемы производительности на сети или расстояние до узла очень большое. |
-S | Позволяет выполнить проверку сети с определенного источника. Может быть использовано с узла с несколькими сетевыми адаптерами и отправкой запроса с определенного. |
-4 | Использовать только IPv4. |
-6 | Использовать только IPv6. |
Используются редко
Параметр | Описание |
---|---|
-r | Записывает маршрут для указанного числа прыжков. |
-s | Задает метку времени для указанного числа прыжков. |
-j | Задает свободный выбор маршрута по списку узлов. |
-k | Задает жесткий выбор маршрута по списку узлов. |
-R | Использует заголовок маршрута для проверки и обратного маршрута. |
Linux
При минимальной инсталляциии данной системы или использовании docker, утилиты ping может не быть. В таком случае мы увидим ошибку:
bash: ping: command not found
Для ее установки можно воспользоваться менеджером установки пакетов. В зависимости от типа операционной системы, наши команды будут немного отличаться.
а) для систем на базе deb (Debian, Ubuntu, Mint):
apt install iputils-ping
б) для систем на базе RPM (Rocky Linux, CentOS, Red Hat, Fedora):
yum install iputils
Готово, теперь можно пользоваться командой ping.
Список ключей можно посмотреть так:
ping -h
Примеры использования
Простой пример использования команды ping
ping yahoo.com
Примерный ответ с исправной связью:
Обмен пакетами с yahoo.com [206.190.36.45] с 32 байтами данных:
Ответ от 206.190.36.45: число байт=32 время=191мс TTL=47
Ответ от 206.190.36.45: число байт=32 время=191мс TTL=47
Пример ответа, если узел недоступен:
Обмен пакетами с yahoo.com [206.190.36.45] по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
* до удаленного узла нет сигнала. Возможно, существуют неполадки на сети.
или
При проверке связи не удалось обнаружить узел
Проверьте имя узла и повторите попытку.
* не удалось определить имя узла. Возможные неполадки: нет связи с DNS, не работает DNS, запрашиваемого имени узла не существует.
В Linux при отсутствии ответа, мы ничего не увидим, но если нам нужно видеть неудачные попытки, то используем ping с опцией -O:
ping -O 206.190.36.45
Открытие порта для Ping
Справедливо заметить, что не во всех случаях отсутствие ответа на ping означает, что удаленный узел недоступен. Администратор ресурса может намеренно отключить ответы на эхо-запросы.
Также важно знать, что ping не использует конкретный номер порта. Чтобы открыть возможность пинга, необходимо либо найти соответствующую опцию (во многих домашних роутерах) или разрешить ICMP (Internet Control Message Protocol) на брандмауэре. Ну, или наоборот — чтобы закрыть возможность пинга, блокируем запросы ICMP.
Проверка портов
С помощью команды ping нельзя проверить открытость того или иного порта.
Для этих целей используется команда telnet или программа, например, nmap.
Была ли полезна вам эта инструкция?
Да Нет
A ping is a tool and command used to troubleshoot network and system-related problems. The ping command normally uses the ICMP protocol and make checks if the remote system is up or down without a TCP or UDP. The ping port is a term used to check a remote port which can be TCP or UDP if it is open and accessible. There are different tools that can be used to ping a TCP or UDP port. Telnet, nmap, putty, netcat,psping are some of them.
Pinging a specific port is used by different users and administrators to check remote service. A Linux Administrator, Windows Administrator, Network Administrator, Application Developer, Database Administrator generally ping specific ports to identify and solve problems. Below we will list some of the most popular reasons why ping a specific port.
- The application can not connect database service.
- If the firewall has configured properly to allow or deny specific ports.
- Check if the remote SNMP service is running properly.
- Before attacking the remote port if the port is up and responding properly.
Ping Specific Port with telnet Command
The most popular and basic tool to ping a remote port is the telnet command. Telnet is a tool and protocol created to connect remote systems via the command line. Telnet work from the command line and provides simple access to the remote telnet server. Telnet command uses the TCP protocol and first tries to connect remote port which is very useful to check remote port.
By default, telnet is not installed for both Linux and Windows systems. In Linux systems like Ubuntu, Debian, Mint, Kali you can install the telnet command like below.
$ sudo apt install telnet
For Windows operating system the telnet client is provided via the Windows Features but not enabled by default. So you should turn on the telnet client feature. Take a look at the following tutorial about how to install a telnet client in Windows operating systems.
Alternatively, you can use 3rd party tools like Putty for telnet command but it is not practical as expected. Syntax of the telnet command to ping the remote port is like below. The telnet command only uses the TCP protocol which is the most popular transmission protocol. So only TCP ports can be pinged with the telnet command which can not be used for the UDP ports.
telnet IP PORT
telnet DOMAIN PORT
- IP or DOMAIN is used to specify the remote system.
- PORT is the remote system port number which is a number from 9 to 65000.
Let’s ping the remote HTTP port with the telnet command by providing the port number as 80. We will ping the google.com TCP port number 80 like below.
$ telnet google.com 80
The output will be like below where the telnet will try to connect remote system port number 80 and when the connection is established e will see the message “Connected to google.com.”
Trying 172.217.18.110...
Connected to google.com.
Escape character is '^]'.
get /
HTTP/1.0 400 Bad Request
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Content-Length: 1555
Date: Thu, 12 Nov 2020 01:57:34 GMT
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
...
Alternatively, we can try to ping a remote port with the IP address. We will just change the domain name with the IP address below.
$ telnet 172.217.18.110 80
We have made a ping port example with a successful result but what will be the output if the ping port does not work. In the following example, we will ping port number 89 which is closed and will not reply to the ping request.
$ telnet google.com 89
Trying 172.217.18.110...
Trying 2a00:1450:4001:809::200e...
telnet: Unable to connect to remote host: Network is unreachable
The output will be like below where the “Trying 172.217.18.110…” line will be shown for timeout and then the “telnet: Unable to connect to remote host: Network is unreachable” message will be displayed.
Ping Specific Port with nc (netcat) Command
The nc or with its well-known name netcat is a tool used by security professionals for remote connectivity and management. Similar to the telnet command nc command can be used to ping specific port numbers for a remote system.
The nc command is provided by the Linux distributions like Ubuntu, Debian, Mint, Kali and can be installed like below.
$ sudo apt install netcat
For Windows operating systems the nc command and executable can be downloaded from alternative locations where one of them is https://github.com/diegocr/netcat .
The syntax of the nc command is very similar to the telnet command. But the difference is -v and -z parameters should be specified. The -v parameter is used for verbose output in order to see the log or status information like connected or not connected. The -z parameter is used for scan mode which will check or scan the specified remote port.
nc -vz DOMAIN PORT
nc -vz IP PORT
- The DOMAIN is the remote system domain name.
- The IP is the remote system IP address.
- The PORT is the remote system port number we want to ping.
Let’s make a ping to the HTTP port of google.com with the following nc command.
$ nc -vz goole.com 80
Connection to goole.com 80 port [tcp/http] succeeded!
We can see that the connection is succeeded which means the remote port number 80 responds to ping requests. We can also use the IP address for the remote system.
$ nc -vz 172.217.18.110 80
In the following example, we will ping the google.com domain name pot number 89.
$ nc -vz goole.com 89
nc: connect to goole.com port 89 (tcp) failed: Connection refused
As we can see from the result we will get the “Connection refused” message which means the remote port does not respond to ping.
Ping Specific Port with nmap
The nmap is a security tool used to scan remote systems ports and services. The nmap can be also used to ping a specific port. Nmap can be installed for the Linux distributions like Ubuntu, Debian, Mint, Kali like below.
$ sudo apt install nmap
For Windows operating systems use the official nmap site Windows download section like below.
https://nmap.org/download.html
The syntax of the nmap command for the port ping is like below.
nmap -p PORT_RANGE TARGET
- PORT_RANGE is the remote port number or protocol name. The PORT_RANGE can be also a range of port numbers too.
- TARGET is a domain name or IP address. Also the target can be an IP range too which includes multiple sequencial IP addresses.
Let’s make an example with the nmap to ping remote port. We will provide the port number with the -p parameter which will be 80 and the remote system is google.com.
$ nmap -p 80 google.com
The nmap is the fastest tool to ping a specified remote port. The command will be executed in 2 seconds and detailed output about the remote port will be provided like below. The line “80/tcp open http” simply expresses that the remote port number 80 responds to pings.
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-11 18:27 PST Nmap scan report for google.com (172.217.18.110) Host is up (0.036s latency). Other addresses for google.com (not scanned): 2a00:1450:4001:809::200e rDNS record for 172.217.18.110: zrh04s05-in-f110.1e100.net PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.28 seconds
Alternatively, we can specify the IP address of the remote system we want to ping port.
$ nmap -p 80 172.217.18.110
As stated previously the nmap command can ping multiple ports and IP addresses with a single command. Other tools like nc, telnet can not ping multiple ports with a single command. In the following example, we will ping port numbers between 80 and 90.
$ nmap -p 80-90 google.com
The output will be like below where the open ports will be listed with the STATE open.
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-11 18:32 PST Nmap scan report for google.com (172.217.18.110) Host is up (0.039s latency). Other addresses for google.com (not scanned): 2a00:1450:4001:809::200e rDNS record for 172.217.18.110: fra16s42-in-f14.1e100.net PORT STATE SERVICE 80/tcp open http 81/tcp filtered hosts2-ns 82/tcp filtered xfer 83/tcp filtered mit-ml-dev 84/tcp filtered ctf 85/tcp filtered mit-ml-dev 86/tcp filtered mfcobol 87/tcp filtered priv-term-l 88/tcp filtered kerberos-sec 89/tcp filtered su-mit-tg 90/tcp filtered dnsix
Ping Specific Port with Test-Connection In PowerShell
The Windows operating system provides the strong command-line interface named PowerShell with its recent versions. PowerShell provides a lot of useful commands like Test-NetConnection . The Test-NetConnection can be used to ping specified remote ports easily and provides detailed information. The Test-NetConnection is the preferred tool over the telnet command for Windows systems. The Test-NetConnection command is by default with PowerShell and Windows so there is no need for an extra installation process.
The syntax of the Test-NetConnection command is like below.
Test-NetConnection TARGET -p PORT
- TARGET is an IP address or domain name to port ping.
- PORT is the remote system port number.
We will use the Test-NetConnection command to test google.com port number 80.
PS> Test-NetConnection google.com -p 80
The output of the ping remote port with the Test-NetConnection command will be like below. We can see that remote system ComputerName, RemoteAddress, RemotePort, InterfaceAlias, SourceAddress, TcpTectSucceeded information is provided.
ComputerName : google.com RemoteAddress : 172.217.18.110 RemotePort : 80 InterfaceAlias : Ethernet0 SourceAddress : 192.168.142.130 TcpTestSucceeded : True
Let’s make another test for port number 89 for google.com.
PS> Test-NetConnection google.com -p 80
The output is like below which means the ping port is failed. For failed ping port operations extra information like PingRelyDetails (RTT), TcpTestSucceeded is provided.
WARNING: TCP connect to (172.217.18.110 : 89) failed ComputerName : google.com RemoteAddress : 172.217.18.110 RemotePort : 89 InterfaceAlias : Ethernet0 SourceAddress : 192.168.142.130 PingSucceeded : True PingReplyDetails (RTT) : 46 ms TcpTestSucceeded : False
Ping Port with PaPing Tool
The PaPing tool is a 3rd party tool created to ping remote specified port. The PaPing project is open source and located in Google Code.
http://code.google.com/p/paping
The paping.exe
is used to ping remote port. The port number is proıvided with the -p
option and the number of the ping packets are sent with the -c
command. In the following example, we ping the wisetut.com
port number 80 for 5 times.
> paping.exe wisetut.com -p 80 -c 5
Ping Port with curl Command
The curl command is created to download remote resources over the network by using the FTP, HTTP, HTTPS, and similar protocols. It can be also used to make a simple port checks which can be also called a ping port. The following syntax is used to ping port for the specified IP address or hostname.
curl HOST:PORT
In the following example, we ping the remote system with IP address 192.168.136.136 for port number 80.
$ curl 192.168.136.136:80
If the remote port is open some response like a warning, error, etc is returned by the remote port service.
Ping Port with psping Command
Windows Sysinternals is used to debug, troubleshoot the Windows operating system. The psping
is a Windows Sysinternals tool that can be used to ping a port. The syntax of the psping tool is like below.
psping HOST:PORT
> psping 192.168.136.136:80
One of the things I do the most when troubleshooting deployments of services exposing data to the internet is pinging the IP and port where the service is supposed to be alive. In this tutorial, I will show you how to ping IP and port on Linux and Windows.
I think most system administrators know the commands for this, but if you like me normally don’t work like an IT admin (at least not anymore) I tend to forget the commands. Due to that, I have written this article as a reference for myself but also for everyone else, who is in need of pinging services they expect at a location.
Often it’s enough to just ping an IP to validate that you got “life” on the server. However if you like me often got many services running on one server (often when using Docker), I need to ping the specific port number on the server. One of the Kubernetes clusters I manage is running more than 100 services and here I use it a lot.
In this article/reference post, I will show you how to ping IP and port on your Windows or Linux machine using different commands in the terminal (CLI).
Ping IP and port using Telnet
This is my favorite when working on both Windows and Linux. I also think that it’s the easiest one to use and it’s called Telnet. You can with a simple command using Telnet ping IP and port on the remote server you would like to check.
Telnet — Wikipedia
Contributors to Wikimedia projects
If you want to, you can also use a domain instead of the IP. A domain is often easier for humans to remember instead of numbers to multiple different servers locally or externally.
Below are the commands to ping IP and port on a server using Telnet:
$ telnet <server_ip_address> <server_port_number>
$ telnet <server_domain_name> <server_port_number>
As I mentioned above, you can use Telnet on both Windows and Linux computers/servers which makes it a great choice for most sys-ops.
On most computers, telnet is not installed by default. If you get the annoying error “telnet: command not found”, you have to install Telnet on the machine using the commands below:
Install Telnet on Linux
If you are working on a Linux Server or Desktop, you can use the below command to install Telnet on that machine:
$ sudo apt install telnet
Install Telnet on Windows
By default, Telnet is not an enabled Windows Feature. If you run Telnet on your computer in a Command Prompt, you will get the following error: “Telnet is not recognized as an operable program or batch file.”. So – to install Telnet on Windows, you have to do the following:
- Click on Start.
- Select Control Panel.
- Choose Programs and Features.
- Click Turn Windows features on or off.
- Select the Telnet Client option.
- Click OK.
A dialog box appears to confirm installation when it’s done. The telnet command should now be available in your Command Prompt. Remember to restart your CMD window.
Ping IP and port with Telnet example
Let’s check out how Telnet works. This website is running at IP: 172.67.161.26 – this is the public IP address of the website to which the domain is mapped to.
By default, all requests are redirected to HTTPS (port 443) if a request is made at port 80. This means that the server accepts connections on port 80 too – let’s try and ping both ports:
$ telnet 172.67.161.26 80
Trying 172.67.161.26...
Connected to 172.67.161.26.
Escape character is '^]'.
$ telnet 172.67.161.26 443
Trying 172.67.161.26...
Connected to 172.67.161.26.
Escape character is '^]'.
That went well. We got connected and could see that the server is responding on both ports. This simply means that the service on the port is up and running.
If you would like to escape out of the Telnet utility when connected, you can use “CTRL +
]
”
or the “q”
command.
Ping IP and port using Nmap
Another well-used tool is Nmap. In Nmap, you can ping a port by using the “-p” option including the IP or domain you would like to scan.
Nmap: the Network Mapper — Free Security Scanner
Nmap Free Security Scanner, Port Scanner, & Network Exploration Tool. Download open source software for Linux, Windows, UNIX, FreeBSD, etc.
Free Security Scanner
$ nmap -p <server_port_number> <server_ip_address>
$ nmap -p <server_port_number> <internet_domain_name>
A heads up – be aware of legal issues!
“When used properly, Nmap helps protect your network from invaders. But when used improperly, Nmap can (in rare cases) get you sued, fired, expelled, jailed, or banned by your ISP.” – Nmap website.
If you get an error telling you that Nmap is not available on your computer/server, you would have to install it.
Install Nmap on Linux
To install Nmap on your Linux machine, you can use the below command:
$ sudo apt install nmap
Install Nmap on Windows
Not as simple as Linux, but it’s still easy to use the official installer from Nmap’s website. Go to this page: Download Nmap and look under the Windows Binaries for the latest available installer file.
Once the installer has completed installing, you are now ready to use Nmap on your Windows computer.
Ping IP and port using Nmap
Let’s try to ping a website at IP “172.67.161.26” on the global internet at the default HTTPS port – 443. If you test this yourself, then don’t use that IP. Cloudflare is protecting the website and will block your access and in the worst-case ban your IP from their global network. Only do this at IPs you own or services that won’t do any damage to others.
C:Userschristian>nmap -p 443 172.67.161.26
Starting Nmap 7.92 ( https://nmap.org ) at 2022-02-10 06:50 Romance Standard Time
Nmap scan report for 172.67.161.26
Host is up (0.028s latency).
Well, once again the port is returned as open on the server. This means that there is a service accepting data at port 443, which was just verified by Nmap.
Ping IP and port using PowerShell
Normally when I’m not on my own machines, which means I’m working on production servers not related to my own business/platform and it’s a Windows Server Environment, I always use PowerShell to ping IP and port.
A great thing about PowerShell is that you can use the methods in scripts running automated stuff in the background or during the setup of service or multiple services. A great thing if deploying with PowerShell would be to check if the ports were active after deployment and return a status to the terminal.
In PowerShell, we got something called Test-NetConnection
which is a command where you specify either an IP or a domain followed by the port you would like to ping.
PS C:Userschristian> Test-NetConnection <server_ip_address> -p <server_port_number>
Below is an example of what this would look like on a local network:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:Userschristian> Test-NetConnection 192.168.1.1 -p 80 ComputerName : 192.168.1.1
RemoteAddress : 192.168.1.1
RemotePort : 80
InterfaceAlias : Wi-Fi
SourceAddress : 192.168.1.68
TcpTestSucceeded : True
In the test above you can see that the TCP call to my gateway at home succeeded at port 80. If you can’t get through to the service you will status False in TcpTestSucceeded.
Summary
In this quick article on how to ping IP and port using different tools on Windows or Linux machines, we learned how we can use the terminal to check if a given port is open and accepting requests.
If you got any issues, questions, or suggestions, please let me know in the comments below. Happy pinging!
Содержание
- Пинг по порту cmd windows
- Синтаксис
- Параметры
- Пример выходных данных команды ping
- Примеры
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Как сделать пинг порта в Linux и Windows
- Можно ли пропинговать конкретный порт?
- Как пропинговать определенный порт в Linux?
- Пинг определенного порта с помощью Telnet
- Пинг определенного порта с помощью Netcat
- Пинг определенного порта с помощью Nmap
- Как пропинговать определенный порт в Windows?
- Пинг определенного порта с помощью Telnet
- Пинг определенного порта с помощью PowerShell
- Заключение
- Ping определенный порт
- 18 ответов
- Способы проверки доступности TCP-портов
- Как проверить доступен ли порт?
- Специальные предложения
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- 15 примеров команды PING для диагностики сети
- Про Linux за 5 минут | Что это или как финский студент перевернул мир?
- Для чего используется команда PING?
- Как работает команда PING?
- Можно ли использовать PING с прокси-сервером?
- Ping IPv6 адресов
- Ping конкретного порта
- Ping с выводом времени
- Ping всех устройств в указанной подсети
- Как завершить команду PING?
- Завершение работы команды по счетчику
- Где расположена утилита PING?
- Проверка задержки командой PING
- Поиск идеального значения MTU
- Ping на 2-ом уровне OSI (использование arping)
- Ping по имени узла
- Ping маршрута (traceroute)
- Запустить команду если ping вернул ошибку
- Установление размера пакета ping
- Отключение команды ping
- Заключение
Пинг по порту cmd windows
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Проверяет подключение на уровне IP к другому компьютеру TCP/IP, отправляя сообщения эхо-запросов протокола ICMP. Отображаются сообщения о получении соответствующих эхо-ответов, а также время кругового пути. Ping — это основная команда TCP/IP, используемая для устранения неполадок подключения, доступности и разрешения имен. При использовании без параметров эта команда отображает содержимое справки.
Эту команду также можно использовать для проверки имени компьютера и IP-адреса компьютера. Если проверка связи с IP-адресом выполнена успешно, но проверка связи с именем компьютера не выполняется, может возникнуть проблема разрешения имен. В этом случае убедитесь, что указываемое имя компьютера можно разрешить через локальный файл hosts с помощью запросов службы доменных имен (DNS) или методов разрешения имен NetBIOS.
Эта команда доступна, только если протокол Интернета (TCP/IP) установлен в качестве компонента в свойствах сетевого адаптера в окне Сетевые подключения.
Синтаксис
Параметры
Пример выходных данных команды ping
Примеры
Чтобы проверить связь с целевым 10.0.99.221 и разрешить 10.0.99.221 в его имя узла, введите:
Чтобы проверить связь с 10.0.99.221 назначения с 10 сообщениями эхо-запроса, каждый из которых имеет поле данных 1000 байт, введите:
Чтобы проверить связь с назначением 10.0.99.221 и записать маршрут для 4 прыжков, введите:
Чтобы проверить связь с целевым 10.0.99.221 и указать свободный исходный маршрут 10.12.0.1-10.29.3.1-10.1.44.1, введите:
Источник
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Как сделать пинг порта в Linux и Windows
Проверяем доступность порта
С другой стороны, номера портов принадлежат протоколам транспортного уровня, таким как TCP и UDP. Номера портов помогают определить, куда пересылается Интернет или другое сетевое сообщение, когда оно приходит.
В этом руководстве вы узнаете, как проверить связь с портом в Windows и Linux с помощью различных инструментов.
Можно ли пропинговать конкретный порт?
Сетевые устройства используют протокол ICMP для отправки сообщений об ошибках и информации о том, успешна ли связь с IP-адресом. ICMP отличается от транспортных протоколов, поскольку ICMP не используется для обмена данными между системами.
Некоторые сетевые инструменты и утилиты могут имитировать попытку установить соединение с определенным портом и ждать ответа от целевого хоста. Если есть ответ, целевой порт открыт. В противном случае целевой порт закрывается или хост не может принять соединение, потому что нет службы, настроенной для прослушивания подключений на этом порту.
Как пропинговать определенный порт в Linux?
Вы можете использовать три инструмента для проверки связи порта в Linux:
Пинг определенного порта с помощью Telnet
2. Если telnet не установлен, установите его с помощью следующей команды
Если порт открыт, telnet устанавливает соединение. В противном случае он указывает на сбой.
Пинг определенного порта с помощью Netcat
Netcat (nc) позволяет устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. Этот инструмент командной строки может выполнять множество сетевых операций.
1. Чтобы проверить, установлен ли netcat :
2. Если netcat не установлен, выполните в терминале следующую команду:
Пинг определенного порта с помощью Nmap
Если Nmap установлен, вывод информирует пользователя о версии приложения и платформе, на которой он работает.
2. Если в вашей системе нет Nmap, введите следующую команду:
3. После установки Nmap в системе используйте следующую команду для проверки связи определенного порта:
Выходные данные информируют пользователя о состоянии порта и типе службы, задержке и времени, прошедшем до завершения задачи.
Как пропинговать определенный порт в Windows?
Проверить связь с портом в Windows можно двумя способами:
Пинг определенного порта с помощью Telnet
Перед использованием telnet убедитесь, что он активирован:
Готово! Вы активировали клиент Telnet в системе.
После завершения активации можно пропинговать порт с помощью telnet. Для этого:
1. Введите cmd в поиске в меню «Пуск». Щелкните на приложение Командная строка.
2. В окне командной строки введите
Выходные данные позволяют узнать, открыт ли порт и доступен ли он, иначе отображается сообщение об ошибке подключения.
Пинг определенного порта с помощью PowerShell
Чтобы проверить связь с портом с помощью PowerShell, выполните следующие действия:
1. Введите PowerShell в поиске в меню «Пуск». Щелкните приложение Windows PowerShell.
2. В окне командной строке PowerShell введите:
Если порт открыт и соединение прошло успешно, проверка TCP прошла успешно. В противном случае появится предупреждающее сообщение о том, что TCP-соединение не удалось.
Заключение
Теперь вы знаете, как выполнить эхо-запрос и проверить, открыт ли порт, с помощью нескольких сетевых инструментов и утилит в Linux и Windows.
Источник
Ping определенный порт
Просто быстро проверив проверку.
Вы можете выполнить ping определенный порт машины, и если да, можете ли вы привести пример?
18 ответов
Откройте сеанс telnet для определенного порта, например:
Вы можете использовать PaPing:
Если вы работаете с установкой Windows с powershell v4 или новее, вы можете использовать модуль powershell test-netconnection:
Выше команда вернет Fail на ненулевые коды статуса выхода. В некоторых частных случаях, таких как пустой или некорректный ответ (см. man curl ), вы можете обработать определенные коды выхода как успешные, поэтому, пожалуйста, проверьте этот для более подробного объяснения.
Я нашел более простое решение, используя PsPing:
PsPing реализует функции Ping, TCP-пинг, задержку и измерение полосы пропускания.
Ping очень специфичен, но если вы хотите проверить, открыт ли порт или нет, и запускается окно Windows, то PortQry является вашим другом.
Я использовал его только для тестирования контроллеров домена для проблем с подключением, но он работал для этого, поэтому должен работать на вас.
Нет гарантии, что служба, работающая на порту, понимает ping. Это также открывает вопрос о том, какой «вкус» порта вы хотите выполнить ping, TCP или UDP? Поскольку протокол ping не использует ни один (ping реализован с использованием ICMP ), он не имеют большой смысл.
В приведенном ниже примере показано, какие IP-адреса в VPN, которые имеют VNC /порт 5900, открыты с клиентом, работающим в Windows 7.
Короткий сценарий Python (v2.6.6) для сканирования данного списка IP-адресов и портов:
Результаты выглядели так:
Четыре переменных в верхней части должны быть изменены, чтобы они соответствовали требуемым тайм-ауту, сети, хостам и портам. 5,0 секунд на моей VPN, казалось, было достаточно, чтобы работать должным образом последовательно, меньше (всегда) не давали точных результатов. В моей локальной сети 0.5 было более чем достаточно.
Я абсолютно уверен, что Nagios check_tcp зонд делает то, что вы хотите. Их можно найти здесь и хотя они предназначены для использования в контексте Nagios, все они автономные программы.
Для него есть инструмент lightweigth, называемый tcping: http: //www.linuxco. де /tcping /tcping.html
Вот версия, реализующая тайм-аут 1 секунды:
Если вы используете операционную систему * nix, попробуйте установить и использовать «zenmap», это графический интерфейс для nmap и имеет несколько полезных профилей сканирования, которые отлично помогают новому пользователю.
Источник
Способы проверки доступности TCP-портов
В процессе разворачивания и эксплуатации информационных систем часто требуется проверка доступности порта того или иного ресурса. Это может быть сервер приложений 1С, к которому не удается подключиться пользователю. Или же это внешний веб-ресурс, к которому происходит обращение. Или что-то еще.
Для проверки доступности самого сервера обычно используется команда ping. Но, в силу того, что данная утилита работает с ICMP-пакетами, для конкретного порта проверить доступ таким образом невозможно. Кроме того, на ресурсе в целях безопасности может быть заблокирован ответ на ICMP-пакеты, соответственно, результат доступности нельзя считать однозначным, если ресурс «не пингуется».
Как проверить доступен ли порт?
Традиционный способ.
Для примера проверять будем доступность менеджера кластера:
Осталось выйти сначала из кракозябры по ‘CTRL+]’ и затем из самого telnet-а
Загвоздка в том, что в большинстве современных Windows-систем telnet-клиент не установлен по-умолчанию, и требуется доустанавливать этот компонент. Что не всегда возможно, т.к. компьютер может быть и не своим и/или нет соответствующих прав.
Способ без инсталляции программ.
Хотелось бы иметь какой-то инструмент, не требующий установки, портабельный, чтобы можно было его просто скопировать и пользоваться, а при необходимости, легко удалить после использования.
В качестве такого инструмента удобно использовать утилиту psping от Sysinternals.
Эту утилиту можно скачать как отдельно, так и в составе пакета SysinternalsSuite, который содержит множество других необходимых инструментов.
Еще один портабельный инструмент, позволяющий решить задачу:
Встроенный инструментарий.
Однако есть возможность обойтись и совсем без сторонних утилит. В Windows есть встроенный инструмент, позволяющий выполнить такую проверку.
Это powershell-командлет Test-NetConnection
У командлета есть очень удобный для запоминания и быстрого ввода альяс tnc, а также ключ позволяющий ограничить вывод только результатом.
Разумеется, запускать командлет необходимо в окне PowerShell, а не «командной строки».
Хотя, из командной строки тоже можно, вызвав PowerShell:
Следует заметить, что командлет доступен в версиях PowerShell от 4.0 и выше, т.е. начиная с Windows Server 2012 R2 и Windows 8.1
Документация: Test-NetConnection (Microsoft, eng)
Заключение
Заметка не предполагает исчерпывающего списка и анализа всех возможных способов. Приведены три варианта, которые можно было бы охарактеризовать как «традиционный», «портабельный» и «встроенный». Каждый из них имеет свою область применения, в зависимости от системы, на которой необходимо выполнить проверку.
Полагаю, опытные администраторы смогут добавить еще несколько способов. Каким способом пользуетесь Вы и почему?
Специальные предложения
Аналог стандартного ping-а, но для tcp.
Вопрос только в том, что такая проверка даст. Она ведь осуществляется «изнутри». Поэтому внешние ограничения (на уровне сетевой инфраструктуры) на неё не влияют.
При этом, нужно учитывать, что на проверяемом порту что-то должно работать, чтобы был положительный ответ.
Т.е. если установлен сервер 1С предприятия, но служба не запущена, то результат проверки будет такой же как и при недоступном порту.
Это относится ко всем проверкам, а не только локального компьютера.
Обычно таким образом проверяется не доступность, а именно работоспособность какой-то службы, например веб-сервера.
Источник
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
15 примеров команды PING для диагностики сети
Благодаря Linux, у нас есть очень много инструментов облегчающих администрирование и диагностику сети. В этом плане команда PING является одним из самых полезных инструментов для системных и сетевых администраторов.
Сама базовая возможность этой утилиты – определить доступен ли тот или иной хост. Тем не менее в этом материале мы приведем примеры расширенных возможностей этой команды в системе Linux.
Про Linux за 5 минут | Что это или как финский студент перевернул мир?
Для чего используется команда PING?
Команда ping один из базовых инструментов для работы с сетью. Наряду с проверкой доступности удаленного хоста, эта команда даёт возможность выполнять и другие диагностические задачи в том числе:
Как видно, эта команда очень необходима для администрирования сети и серверов.
Как работает команда PING?
Принцип работы команды Ping прост: она посылает серию пакетов маленького размера на указанное устройство.
Для тестирования устройства может быть использован либо IP-адрес, либо имя хоста. После отправки пакета, утилита проверяет и измеряет время ответа целевого устройства.
Как вы могли предположить, время ответа зависит от нескольких условий в том числе географическое расположение или устройств, расположенных между источником и целевым устройством.
Например, в локальной проводной сети команда вернет лучший результат по времени, чем в сети с несколькими маршрутизаторами и сетевыми мостами.
Однако, на основе полученной информации утилита будет судить о состоянии целевого устройства.
Синтаксис команды следующий:
Ниже приведены некоторые полезные и часто используемые ключи для этой команды:
Можно ли использовать PING с прокси-сервером?
Прокси – это сервер или приложение играющее роль посредника для соединения двух хостов в сети. Это своего рода «человек посередине», который отправляет запросы прямо к хосту.
Проблема в том, что команда PING требует прямого соединения между устройствами. Таким образом, команда Ping не может функционировать если перед ним стоит прокси-сервер.
Ping IPv6 адресов
По умолчанию, когда запускаем команду PING, мы используем IP версии 4. Однако, с появлением протокола IPv6, все чаще стали встречаться адреса такого формата.
Ядро Linux поддерживает IPv6 начиная с версии 2.2, так что все дистрибутивы Linux поддерживают этот протокол.
Базовый синтаксис таков:
Как и при работе с IPv4, ключом –c можем указать число пакетов, для отправки, а ключ –i – определяет интерфейс для исходящих запросов.
Ping конкретного порта
Чтобы проверить доступность порта просто введите следующую команду:
Ping с выводом времени
Хотя команда ping дает много полезной информации, но этого может быть недостаточно. Тем не менее, есть возможность настроить команду так, чтобы она показала дату и время отправки пакета. Это может сделать вывод приятней и полезней для скриптов и логирования.
Как видно из скриншота, команда показывает дату и время отправки каждого пакета.
Ping всех устройств в указанной подсети
Командой Ping можно посылать сигнал всем хостам в сети или подсети. Для этого нужно запустить ping с ключом –b на широковещательный адрес, который заканчивается на 255. Например:
Итак, если хост назначения недоступен, значит либо там блокируются ICMP пакеты, либо есть проблемы с сетью или таблицей маршрутизации.
Как завершить команду PING?
После этого команда немедленно остановится.
Завершение работы команды по счетчику
Вы можете ограничить число посылаемых пакетов. Например, если поставить число пакетов равным 10, то после отправки указанного числа пакетов выполнение команды прекратится.
Где расположена утилита PING?
В Unix-подобных системах таких, как Linux бинарные файлы обычно располагаются по пути
В этой папке можно найти все множество бинарных файлов, которые мы используем как команды в терминале. В других ОС семейства Linux, они могут быть расположены в:
Проверить это можем командой ls :
На скриншоте видно, что команда ping находится в папке
Другой метод, которым можно найти место расположения команд это which :
На выводе она даст следующую информацию:
Проверка задержки командой PING
Одна из возможностей, предоставляемых командой PING, является возможность измерения времени отклика сети. По-другому это называется задержка или время ожидания.
Чтобы измерить задержку введи указанную команду и обратите внимание на ввыод:
Как вы могли заметить, каждый пакет был отправлен с конкретным временем ответа. В конце же есть строка, которая начинается на:
Второе значение после знака равенства – это время задержки. В нашем случае он равен 6,798.
С помощью этого показателя мы можем определить хосты, связь с которыми хуже и приять соответствующие меры.
Поиск идеального значения MTU
MTU (Maximum Transmission Unit) это максимальный размер пакета, который может быть передан по сети.
Сегодня, в целях безопасности, в сетях создаются препятствия для работы MTU. Но большинство локальных сетей на основе Ethernet использует MTU размером 1500 байт.
Если нужно найти самый подходящий размер MTU с помощью команды Ping, следует определить начальное значение и уменьшать его до тех пор, пока прекратятся ошибки. Если значение большое, мы получим следующую ошибку:
Чтобы сделать это запустите следующую команду:
В нашем случае, значение размера пакета слишком большое. Поэтому уменьшаем его до 1472 байтов.
Если получите другое сообщение, начальное значение должно быть уменьшено по единице до тех пор, пока не получите требуемый результат.
Если значение MTU известно, оно может быть использовано для улучшения сети. Особенное если сеть большая вплоть до городских сетей.
Ping на 2-ом уровне OSI (использование arping)
С помощью команды ping диагностика проводится на основе IP-адреса конкретного узла в сети. Это связано с тем, что команда ping работает на третьем сетевом уровне модели OSI.
Синтаксис команды следующий:
В результате получите что-то подобное:
Вывод команды показывает размер отправленного пакета, затем MAC адрес узла назначения, а также время ответа.
Отметим, что эта команда не предустановлена на системе Debian и производных.
Ping по имени узла
По умолчанию, команда ping посылает пакеты на узел назначения используя IP адрес или имя узла назначения. Также нужно отметить, что большинство реализаций утилиты ping на Linux не разрешают DNS в обратном направлении.
Например, если мы запустим команду ping, указав IP адрес, он вернёт только IP узла. И наоборот, если параметром передадим имя узла, то команда вернет его IP адрес. Посмотрите вывод введя команду ниже:
Ping маршрута (traceroute)
Сама по себе команда ping не показывает пути от источника к узлу назначения. Но это было бы очень кстати в том случае, когда узел назначения не отвечает, чтобы определить где именно теряется связь.
Команда tracert (Windows) или traceroute работают аналогично ping. Преимуществом этой команды является то, что он показывает весь путь следования пакета от источника до узла назначения.
В принципе traceroute посылает тот же ICMP пакет, что и Ping. Но в случае traceroute, в отличии от ping начально значение TTL пакета выставляется равным единице. Пакет доходит до первого узла по пути к узлу назначения. Устройство уменьшает TTL на одну единицу и если получается нуль, то возвращает сообщение об ошибке истечения времени пакета. В сообщение так же содержится IP адрес и имя хоста. Отправитель получает данное сообщение. Если оно не от узла назначения, то посылает второй пакет с TTL на один больше предыдущего. И так до тех пор, пока не получит ответ от узла назначения. Для получения пути нужно ввести команду:
Запустить команду если ping вернул ошибку
Представьте, что вам нужно получить оповещение если узел назначения перестал отвечать на запросы команды ping. Для этого нужно включить команду ping в bash скрипт и прописать нужные команды. Например, скрипт ниже позволяет вам проверить отвечает ли узел на запросы ping:
Установление размера пакета ping
По умолчанию, размер пакетов ICMP равен 56 байтам. Это позволяет не влиять на работу сети во время проверки. Но при необходимости можно изменять это значение. Для этого достаточно запустить команду ping с ключом –s и требуемым размером. Например:
Если нужно установить значение пакета равным 100 байтам, нужно прописать команду ниже:
Отключение команды ping
Если вы обслуживаете сеть, то вам может быть необходимо отключить ответ на ping запросы в любое время. Это можно сделать как временно, так и постоянно, в зависимости от ваших нужд. Для временного отключения команды ping нужно ввести команду ниже от имени root-а:
Она выключить возможно ответа на ICMP запросы до перезагрузки системы. Но если нужно навсегда отключить эту возможность, то придется отредактировать файл
и добавить следующую строку:
Сохраните файл и, для применения изменений введите команду:
Заключение
В этом материале мы рассмотрели, как команда ping работает в системе Linux. Ping одна из самых легких команд. Она позволяет лицам, ответственным в обеспечении нормально работы сети, выявлять проблемы и устранять их.
Источник