Тематические термины: Ping, Windows, Linux.
Мы рассмотрим использование команды ping для Windows и, немного, для Linux.
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.
Параметры команды ping и их описание
В зависимости от используемой операционной системы опции команды будут иметь разные назначения. Поэтому, если мы хотим понять все возможности, стоит ознакомиться с опцией help.
Общий синтаксис
Независимо от системы, команду ping можно применять так:
Windows
Для просмотра в Windows также используйте команду ping /?
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.
Список ключей можно посмотреть так:
As is well known, the tool ping can be used to test the access to a certain network device and its response time. Not all devices will respond to a ping, but they may respond to a particular Tcp-Port if a particular network service is provided through it. Windows PowerShell allows you to test a specific port using Windows board tools. The psping tool can also measure the response time to a specific port.
Aim of this article
Using commands in the command prompt to test whether certain Internet addresses or network devices have a certain network port active
Reading time: approx. 6 Minutes
Basic network knowledge and a Windows computer
Ping is a command used to send a test packet over the network, the devices usually respond to it and send back a response packet. Responsible for the response here is not a specific service, but a part of the network stack on the device. The test on a specific port is different, here it is tested whether the remote station on the port accepts a packet, i.e. whether the TCP connection setup to the port works. The connection is established directly to the service that uses the port. By the test on a certain port, it can be tested whether a certain service answers on the device.
To test a device for their open ports, see: Portscan commands.
The ping is a term and command-line tool used to check remote system network connectivity. It is one of the most popular tools for network diagnostics. By default, the usage of the ping command does not require any port number and will work with just a target IP address or domain name. But you may ask what port number is used by the ping command.
The TCP and UDP protocols are very popular where they can provide multiple port numbers to provide different services over the network. The ping command can be related to these TCP and UDP protocols but it does not use TCP or UDP. This may be even asked you in an interview or certificate exam or class exam. The ping command uses the ICMP protocol. The ping is an old method and tool described in the RFC792 and this standard does not provide any port number for the ping.
Ping and ICMP Protocol
The ping tool uses the ICMP protocol which is different from the TCP and UDP protocol where it is tightly integrated with the IP protocol. The ICMP is a layer 3 protocol that is transmitted with the IP packets even the IP is also a layer 3 protocol too. The ICMP is created to support the IP protocol.
Ping Uses ICMP Type 8 and Type 0
$ ping 8.8.8.8
Ping ICMP Request Packet Details
Ping ICMP Reply Packet Details
Is Port 7 Used For Ping ICMP?
Ping is one of the most fundamental tools when it comes to network troubleshooting. It allows you to quickly test whether a given service/port is responding or not. Из-за облегченного характера пакетов ICMP он позволяет ping быстро получать полезную информацию о данной системе, не отправляя серию пакетов, которые в противном случае перегрузили бы хост (в некоторых случаях).
Хотя пинг всего хоста может быть полезен для проверки работоспособности данного хоста, он не дает много информации о том, активен ли целевой порт.
Способ 1 – Использование Telnet
Вероятно, вы знакомы с telnet. Telnet, также известный как Terminal или Network, представляет собой утилиту командной строки, которая позволяет выполнять интерактивную сетевую связь с использованием протокола TELNET.
Учебник по telnet скоро появится. Оставайтесь с нами для этого.
Чтобы пропинговать определенный порт с помощью telnet, используйте следующий синтаксис команды:
Команда telnet доступна как в Windows, так и в Unix-системах. Однако может потребоваться включить Telnet в Windows.
Чтобы узнать, как это сделать, перейдите по ссылке ниже:
В macOS используйте brew для установки Telnet:
заварить установить телнет
В Debian и дистрибутивах на основе Debian установите telnet:
sudo apt-get install telnet
В приведенном ниже примере показано, как использовать telnet, чтобы проверить, запущен ли сервер Nginx.
телнет 67.205.166.236 80
Если служба запущена, telnet подключится и вернет вывод в виде:
Способ 2 – Использование Nmap
Начните с установки nmap:
sudo apt-get установить nmap
варить установить nmap
sudo yum установить nmap
После установки проверьте, работает ли порт, выполнив команду:
sudo nmap -p 80 67.205.166.236
Nmap вернет подробную информацию, включая задержку, номер порта, связанную службу и ее состояние. Пример вывода выглядит следующим образом:
Начиная с Nmap 7.93 ( https://nmap.org ) 02.10.2022 10:49 EAT
Отчет сканирования Nmap для 67.205.166.236
Хост работает (задержка 0,28 с).
ГОСУДАРСТВЕННАЯ СЛУЖБА ПОРТА
80/tcp открыть http
Nmap выполнен: 1 IP-адрес (1 хост включен) просканирован за 0,65 секунды
Способ 3 — Использование Netcat
Чтобы пропинговать порт с помощью netcat, выполните команду:
Мы видим, что соединение с целевым адресом и портом прошло успешно. Это указывает на то, что порт/служба работает.
Способ 3 — Использование cURL
Очевидно, мы не можем не упомянуть cURL в этом списке. Синтаксис команды показан ниже:
Команда должна быть “Подключена”, если порт/сервис работает.
Метод 4 — Использование Windows PowerShell
В Windows можно использовать командлет Test-NetConnection для проверки работоспособности порта. Синтаксис команды показан ниже:
Test-NetConnection 67.205.166.236 -p 80
Команда должна возвращать сведения о целевом хосте и статусе соединения.
Имя компьютера: 67.205.166.236
Удаленный адрес: 67.205.166.236
Удаленный порт: 80
Псевдоним интерфейса: Ethernet
Адрес источника: 192.168.1.101
TcpTestSucceeded: Истина
Метод 5 – Использование утилиты PsPing
В Windows вы также можете использовать утилиту PsPing, которая является частью инструментов Windows SysInternals. Загрузите инструмент в ресурсе ниже:
Затем вы можете использовать синтаксис команды ниже, чтобы пропинговать определенный порт:
Команда должна отправить запрос ping на целевой адрес и порт и вернуть вывод, как показано:
Вышеупомянутый порт поднят.
Заключение
В этом посте мы рассмотрели различные методы и инструменты, которые вы можете использовать для проверки связи с определенным портом в системах на базе Windows и Unix.
Спасибо за прочтение и до встречи в следующем!!
Если вам нравится наш контент, подумайте о том, чтобы купить нам кофе, чтобы поддержать нашу работу:
Открытие порта для Ping
Справедливо обнаруживают, что не во всех случаях отсутствие ответа на ping означает, что удаленный узел недоступен. Администратор ресурса может намеренно получать ответы на эхо-запросы.
Также важно знать, что ping не использует конкретный номер порта. Чтобы открыть возможность пинга, необходимо либо найти соответствующую (во многих домашних маршрутизаторах) или подключить ICMP (Internet Control Message Protocol) на брандмауэре. Ну или наоборот — чтобы закрыть возможность пинга, блокировать запросы ICMP.
Примеры использования
Простой пример использования команды ping
Примерный ответ с исправной связью:
Пример ответа, если узел недоступен:
* до удаленного узла нет сигнала. Возможно, смеси неполадки в сети.
Используй имя домена и округа.
* не удалось определить имя пакета. Возможные неполадки: нет связи с DNS, не работает DNS, запрашиваемого имени узла не существует.
В Linux при отсутствии ответа, мы ничего не увидим, но если нам нужно видеть неудачные попытки, то используем ping с опцией -O:
Ping Port with curl Command
$ 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 curl Command
Проверка портов
С помощью команды ping нельзя проверить открытость того или иного порта.
Для этих целей используется команда telnet или программа, например, nmap.
Была ли полезна вам эта инструкция?
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.
Command prompt
Originally, the telnet command was very often misused in the command prompt to test a specific port. Telnet was a fixed part of the operating system in earlier Windows versions, but in Windows 10 / 11 the telnet command is no longer activated by default, so the command must be added beforehand via Programs and Features:
The call is then made in the command prompt: telnet IP/DNS Port
telnet 192.168.1.5 443
If the port is open, usually only a “_” flashes in the output:
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.
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.
The syntax of the nmap command for the port ping is like below.
nmap -p PORT_RANGE TARGET
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
Ping Specified Port with nmap
Alternatively, we can specify the IP address of the remote system we want to ping port.
$ nmap -p 80 172.217.18.110
$ 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 Multiple Specified Ports with nmap
FAQ
Strictly speaking, a ping to a specific TCP port is not a ICMP-Ping, but a TCP connection attempt. Tools like test-netconnection, telnet or psping try to establish a TCP connection to a specific service and thus test a network connection on TCP/IP level.
What does a high ping mean in games?
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 . Test-NetConnection можно использовать для простого эхо-тестирования указанных удаленных портов и предоставления подробной информации. Test-NetConnection является предпочтительным инструментом по сравнению с командой telnet для систем Windows. Команда Test-NetConnection по умолчанию используется в PowerShell и Windows, поэтому дополнительный процесс установки не требуется.
Синтаксис команды Test-NetConnection показан ниже.
Test-NetConnection TARGET -p PORT
Мы будем использовать команду Test-NetConnection для тестирования порта google.com номер 80.
Результат ping удаленного порта с помощью команды Test-NetConnection будет таким, как показано ниже. Мы видим, что предоставлена информация об удаленной системе ComputerName, RemoteAddress, RemotePort, InterfaceAlias, SourceAddress, TcpTectSucceeded.
Имя компьютера : google.com
Удаленный адрес: 172.217.18.110
Удаленный порт: 80
Псевдоним интерфейса: Ethernet0
Исходный адрес: 192.168.142.130
TcpTestSucceeded: Истина
Пинг-порт с PowerShell Test-NetConnection
Проведем еще один тест для порта номер 89 для google.com.
Вывод, как показано ниже, означает, что пинг-порт не прошел. Для неудачных операций ping порта предоставляется дополнительная информация, такая как PingRelyDetails (RTT), TcpTestSucceeded.
ПРЕДУПРЕЖДЕНИЕ: TCP-соединение с (172.217.18.110: 89) не удалось
Имя компьютера : google.com
Удаленный адрес: 172.217.18.110
Удаленный порт: 89
Псевдоним интерфейса: Ethernet0
Исходный адрес: 192.168.142.130
PingSucceeded: Истина
PingReplyDetails (RTT): 46 мс
TcpTestSucceeded: Ложь
Проверить порты UDP
Порты UDP проще всего протестировать с помощью инструмента «portqry»:
portqry -n 192.168.1.2 -p udp -o 161
Если выводится “UDP port ???:FILTERED”, порт недоступен.
Скачать, см. https://www.microsoft.com/en-us/download/details.aspx?id=17148
Тестовое подключение к сети
Встроенная команда PowerShell Test-NetConnection может использоваться для проверки соединения на определенном порту.
Windows PowerShell является фиксированным компонентом Windows, поэтому проверку портов можно выполнить с помощью PowerShell без дополнительного программного обеспечения или функций.
Test-NetConnection – имя_компьютера google.com – порт 443
Команда возвращает для TcpTestSucceeded: True, если порт доступен.
Пинг определенного порта с помощью команды nc (netcat)
nc или, как известно, netcat — это инструмент, используемый профессионалами в области безопасности для удаленного подключения и управления. Подобно команде telnet, команду nc можно использовать для проверки связи с определенными номерами портов для удаленной системы.
Команда nc предоставляется дистрибутивами Linux, такими как Ubuntu, Debian, Mint, Kali, и может быть установлена, как показано ниже.
$ sudo apt install netcat
Для операционных систем Windows команду nc и исполняемый файл можно загрузить из альтернативных мест, одним из которых является https://github.com/diegocr/netcat.
Синтаксис команды nc очень похож на команду telnet. Но разница в том, что нужно указывать параметры -v и -z. Параметр -v используется для подробного вывода, чтобы просмотреть журнал или информацию о состоянии, например, подключен или не подключен. Параметр -z используется для режима сканирования, который будет проверять или сканировать указанный удаленный порт.
nc -vz ПОРТ ДОМЕНА
nc -vz IP ПОРТ
Мы видим, что соединение установлено успешно, что означает, что удаленный порт с номером 80 отвечает на запросы ping. Мы также можем использовать IP-адрес для удаленной системы.
$ нк -vz 172.217.18.110 80
$ nc -vz goole.com 89
nc: не удалось подключиться к порту 89 (tcp) goole.com: в соединении отказано
Как видно из результата, мы получим сообщение «Отказано в соединении», что означает, что удаленный порт не отвечает на пинг.
Sysinternals
Команду psping также можно использовать для измерения времени отклика отдельных служб или портов, а также пропускной способности:
Пинг на порту
psping включен в pstools от Sysinternals (Microsoft),
Измерение пропускной способности
psping -b -l 8k -n 10000 www.libe.net:80
Скачать
Скачать см.: https://docs.microsoft.com/de-at/sysinternals/downloads/psping
Пинг определенного порта с помощью команды telnet
Самый популярный и основной инструмент для проверки связи с удаленным портом — это команда telnet. Telnet — это инструмент и протокол, созданный для подключения удаленных систем через командную строку. Telnet работает из командной строки и обеспечивает простой доступ к удаленному серверу Telnet. Команда Telnet использует протокол TCP и сначала пытается подключиться к удаленному порту, что очень полезно для проверки удаленного порта.
По умолчанию telnet не установлен ни для Linux, ни для Windows. В системах Linux, таких как Ubuntu, Debian, Mint, Kali, вы можете установить команду telnet, как показано ниже.
$ sudo apt install telnet
Кроме того, вы можете использовать сторонние инструменты, такие как Putty для команды telnet, но это непрактично, как ожидалось. Синтаксис команды telnet для проверки связи с удаленным портом приведен ниже. Команда telnet использует только протокол TCP, который является наиболее популярным протоколом передачи. Таким образом, с помощью команды telnet можно пропинговать только TCP-порты, которые нельзя использовать для UDP-портов.
telnet IP ПОРТ
ПОРТ ДОМЕНА telnet
Давайте пропингуем удаленный HTTP-порт с помощью команды telnet, указав номер порта 80. Мы пропингуем TCP-порт google.com с номером 80, как показано ниже.
$ telnet google.com 80
Вывод будет таким, как показано ниже, где telnet попытается подключиться к порту удаленной системы номер 80, и когда соединение будет установлено, он увидит сообщение «Подключено к google.com».
Пропинговать указанный порт с помощью telnet
В качестве альтернативы мы можем попытаться пропинговать удаленный порт с IP-адресом. Мы просто изменим доменное имя на указанный ниже IP-адрес.
$ телнет 172.217.18.110 80