Я не в сети, и у меня есть следующий вопрос, связанный с командой Linux ping .
Могу ли я пинговать только адрес? Например:
miner@raspberrypi ~ $ ping onofri.org
PING onofri.org (67.222.36.105) 56(84) bytes of data.
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms
Или я также могу пропинговать адрес: порт , например: onofri.org:80 ?
Если я попробую это, это не сработает:
miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80
Можно ли пинговать что-то вроде адреса: порт ? Если это возможно, почему не работает то, что я пробовал?
linux
networking
ping
AndreaNobili
источник
источник
GET /index.html HTTP\1.1
и увидеть ответ 200 (или код ошибки) вместе с результирующей разметкой.HTTP\1.1
? В самом деле?HTTP/1.1
...Ответы:
Вы можете использовать Paping , кросс-платформенное тестирование TCP-порта, эмулирующее функциональность ping (порт ping)
(см. также Github, так как code.google.com устарел)
источник
paping
? Я посетил репо, но релизов нет. Ах, неважно .. Код Google не был доступен для меня в то время.Порты - это концепция UDP и TCP . Сообщения Ping технически называются ICMP Echo Request и ICMP Echo Reply, которые являются частью ICMP . ICMP, TCP и UDP являются «родственниками»; они не основаны друг на друге, а представляют собой три отдельных протокола, которые работают поверх IP.
Поэтому вы не можете
ping
порт. Что вы можете сделать, это использовать сканер портов, какnmap
.Вы также можете использовать
telnet onofri.org 80
, как предложено в одном из других ответов (Это даст ошибку, если порт закрыт или отфильтрован).источник
Я использую Telnet , поскольку он встроен во множество платформ без дополнительных загрузок.
Просто используйте команду telnet для подключения к порту, который вы хотите проверить. Если вы получаете сообщение ниже или сообщение от самой службы, то порт активен.
Если вам известна последовательность команд для службы, к которой вы подключаетесь, вы можете ввести команду (например, HTTP / FTP GET ) и наблюдать за ответом и выводом в терминале. Это очень полезно для тестирования самого сервиса, так как он покажет вам информацию об ошибках, отправленную клиенту, например, ошибки HTTP 500.
Если вы получили сообщение об отказе в соединении, порт закрывается.
источник
Да, используйте HPing для этого:
Обратите внимание, что для создания необработанных IP-пакетов необходимы привилегии root (или возможности SELinux), например, ping (что, скорее всего, подходит для вашей системы).
источник
hping3
Это так же, какhping3
? @ d33tahhping3
и он пингует все порты .. Не имеет значения, закрыт или открыт .. Как я могу определить, закрыт порт или открыт?Вы можете использовать Netcat для подключения к определенному порту, чтобы увидеть, если вы получаете соединение. Флаг -v увеличит детализацию, чтобы показать, открыт порт или закрыт. Флаг -z заставит netcat выйти, когда у него будет соединение. Затем вы можете использовать коды выхода через $? чтобы увидеть, было ли установлено соединение или нет.
Кроме того, вы можете использовать mtr с флагом -T для tcp и флагом -P для указания порта. Это будет делать что-то похожее на трассировку через TCP, а не только ICMP. Это может быть излишним, однако.
вздох я должен отредактировать, чтобы добавить этот бит, так как мы не можем поместить код в комментарии. Knoppix может делать что-то другое с его версией netcat, но это то, что я получаю из Linux Mint
источник
nc -z www.google.com 8000
это может занять много времени - 5 секунд плюс. Если я это сделаю,-w 1
то это займет 5 секунд. Если я это сделаю,-w 3
то это займет примерно в 3 раза больше. 15 миганий курсора, 15 секунд.-w 1
должна быть одна секунда, но проверена на cygwin. 5 секунд. Это супер быстро, когда в порту есть сервер, но немного медленно, когда его нет.Вы также можете использовать
nping
(частьnmap
):источник
nping --tcp -p 80 localhost
Вы можете сделать это в оболочке с Python как не очень короткий вкладыш:
источник
Просто для справки, хотел поделиться постом от Vivek Gite: https://www.cyberciti.biz/faq/ping-test-a-specific-port-of-machine-ip-address-using-linux-unix/# комментарии-920398
Он перечисляет различные способы, некоторые из которых уже размещены здесь. Но самым удивительным для меня было не более чем
bash
:Или супер простая версия: просто посмотрите на вывод следующего шаблона команды:
Полезно при работе со случайными док-контейнерами.
источник
looking at the output
- только проверка кода возврата$?
может быть полезной. Кроме того, он зависает на закрытых портах, может быть какое-то время ожидания может быть настроено где угодно ...echo >/dev/tcp/{hostname}/{portnumber}
не заканчивается, когда порт закрыт. Иecho >/dev/tcp/{hostname}/{portnumber}
ничего не показывает, хотя порт открыт, и я вижу его в браузере.Connection refused
. В противном случае он не показывает ничего иecho $?
показывает код выхода1
Я добавляю
watch
инструмент здесь:watch nmap -p22,80 google.com
источник
Это просто с
nmap
Примеры:
Для получения дополнительной информации см. Это:
введите в командной строке это:
man nmap
http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ http://www.tecmint.com/nmap-command-examples/
источник
Вы пытаетесь проверить связь или получить ответ от порта 80 на этом узле?
PING
будет пытаться установить связь с конкретным хостом через ICMP, который не имеет ничего общего с портами.Вместо этого попробуйте http://nmap.org/ проверить информацию о порте и проверить связь:
источник