Nie jestem zainteresowany pracą w sieci i mam następujące pytanie związane z poleceniem ping systemu Linux .
Czy mogę pingować tylko adres? Na przykład:
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
Czy mogę również pingować adres: port , na przykład: onofri.org:80 ?
Jeśli spróbuję tego, to nie działa:
miner@raspberrypi ~ $ ping onofri.org:80
ping: unknown host onofri.org:80
Czy to możliwe, że ping coś takiego jak adres: port ? Jeśli to możliwe, dlaczego to, czego próbowałem, nie działa?
linux
networking
ping
AndreaNobili
źródło
źródło
GET /index.html HTTP\1.1
i zobaczyć odpowiedź 200 (lub kod błędu) wraz z wynikowym znacznikiem.HTTP\1.1
? Naprawdę?HTTP/1.1
...Odpowiedzi:
Możesz użyć Paping , wieloplatformowego testowania portu TCP, emulującego funkcjonalność ping (ping ping)
(patrz także Github, ponieważ code.google.com został wycofany)
źródło
paping
? Odwiedziłem repozytorium, ale nie ma żadnych wydań. Ach, nieważne .. kod Google nie był wówczas dla mnie dostępny.Porty są koncepcją UDP i TCP . Komunikaty ping są technicznie nazywane żądaniem echa ICMP i odpowiedzią echa ICMP, które są częścią ICMP . ICMP, TCP i UDP są „rodzeństwem”; nie są oparte na sobie, ale są trzema oddzielnymi protokołami działającymi na IP.
Dlatego nie możesz
ping
portu. Co można zrobić, to użyć skanera portów podobnegonmap
.Możesz także użyć
telnet onofri.org 80
, jak sugeruje jedna z pozostałych odpowiedzi (Daje błąd, jeśli port jest zamknięty lub przefiltrowany).źródło
Korzystam z Telnetu , ponieważ jest wbudowany w wiele platform bez dodatkowych pobrań.
Wystarczy użyć polecenia telnet, aby połączyć się z portem, który chcesz przetestować. Jeśli pojawi się komunikat poniżej lub komunikat z samej usługi, oznacza to, że port jest aktywny.
Jeśli znasz sekwencję poleceń dla usługi, z którą się łączysz, możesz wpisać polecenie ( na przykład HTTP / FTP GET ) i obserwować odpowiedź i dane wyjściowe w terminalu. Jest to bardzo przydatne do testowania samej usługi, ponieważ pokazuje informacje o błędach wysyłane do klienta, takie jak błędy HTTP 500.
Jeśli pojawi się komunikat, że połączenie zostało odrzucone, port jest zamknięty.
źródło
Tak, skorzystaj z HPing, aby to zrobić:
Zauważ, że potrzebuje uprawnień roota (lub możliwości SELinuksa) do tworzenia surowych pakietów IP, podobnie jak ping (który najprawdopodobniej jest suid w twoim systemie).
źródło
hping3
Czy to to samo, cohping3
? @ d33tahhping3
i pinguje wszystkie porty .. Nie ma znaczenia, czy jest zamknięty czy otwarty .. Jak mogę sprawdzić, czy port jest zamknięty czy otwarty?Możesz użyć netcat, aby połączyć się z określonym portem i sprawdzić, czy uzyskasz połączenie. Flaga -v zwiększy szczegółowość, aby pokazać, czy port jest otwarty, czy zamknięty. Flaga -z spowoduje zamknięcie programu netcat po nawiązaniu połączenia. Możesz następnie użyć kodów wyjścia za pomocą $? aby sprawdzić, czy połączenie zostało ustanowione, czy nie.
Dodatkowo możesz użyć mtr z flagą -T dla tcp i flagą -P, aby określić port. To zrobi coś podobnego do traceroute przez TCP zamiast tylko ICMP. Może to być jednak przesada.
westchnienie muszę edytować, aby dodać ten bit, ponieważ nie możemy wstawić kodu w komentarzach. Knoppix może robić coś innego ze swoją wersją netcata, ale właśnie to wyciągam z Linux Mint
źródło
nc -z www.google.com 8000
, może to potrwać długo - plus 5 sekund. Jeśli to zrobię-w 1
, zajmuje to 5 sekund. Jeśli to zrobię-w 3
, zajmuje to 3 razy dłużej. 15 błysków kursora, 15 sekund.-w 1
ma być sekunda, ale przetestowany na cygwinie.,. 5 sekund. Jest super szybki, gdy na porcie jest serwer, ale trochę wolniejszy, gdy go nie ma.Możesz także użyć
nping
(częśćnmap
):źródło
nping --tcp -p 80 localhost
Możesz to zrobić w powłoce, używając Pythona jako niezbyt krótkiej linijki:
źródło
Tylko w celach informacyjnych chciałem udostępnić post przez Vivek Gite: https://www.cyberciti.biz/faq/ping-test-a-specific-port-of-machine-ip-address-using-linux-unix/# komentarz-920398
Wymienia różne sposoby, z których niektóre zostały już tutaj opublikowane. Ale najbardziej zaskakujące dla mnie było tylko
bash
:Lub bardzo prosta wersja: wystarczy spojrzeć na wynik następującego wzorca poleceń:
Przydatne podczas pracy z losowymi kontenerami dokerów.
źródło
looking at the output
-$?
pomocne może być tylko sprawdzenie kodu powrotu . Także to wisi na zamkniętych portów, może być jakiś limit czasu mogą być konfigurowane w dowolnym miejscu ...echo >/dev/tcp/{hostname}/{portnumber}
nie kończy się po zamknięciu portu. Iecho >/dev/tcp/{hostname}/{portnumber}
nic nie pokazuje, mimo że port jest otwarty i widzę go w przeglądarce.Connection refused
. W przeciwnym razie wyjdzie, pokazując nic iecho $?
pokazując kod wyjścia1
Dodaję
watch
tutaj narzędzie:watch nmap -p22,80 google.com
źródło
To jest proste z
nmap
przykłady:
Aby uzyskać więcej informacji, zobacz to:
wpisz w linii poleceń to:
man nmap
http://www.cyberciti.biz/networking/nmap-command-examples-tutorials/ http://www.tecmint.com/nmap-command-examples/
źródło
Próbujesz przetestować komunikację lub uzyskać odpowiedź z portu 80 w tym węźle?
PING
spróbuje nawiązać komunikację z określonym hostem za pośrednictwem ICMP, który nie ma nic wspólnego z portami.Zamiast tego spróbuj http://nmap.org/, aby sprawdzić informacje o porcie i przetestować komunikację:
źródło