Zastanawiasz się jak sprawdzić łączność między dwoma punktami końcowymi sieci?
Jednym z powszechnych zadań dla administratora jest sprawdzenie łączności w celu rozwiązania problemów z siecią. Może to być cokolwiek takiego jak aplikacja nie może połączyć się z usługą backendu, nie może pobrać danych z zewnętrznego adresu URL, sprawdzić czy przepływ jest otwarty, itp.
Cokolwiek to może być, poniższe narzędzia/polecenia pomogą Ci. Są one testowane na CentOS 7.x, i nie widzę powodu, aby nie działały na innych dystrybucjach Linuksa.
Poznajmy…
telnet
Jedno z powszechnie używanych poleceń do testowania niezbędnej łączności między serwerami, serwer do IP innego urządzenia sieciowego. Składnia polecenia jest prosta.
telnet $destinationIP $PORT
Powiedzmy, że chcesz przetestować, czy możesz połączyć się z portem 8080 na adresie IP 10.0.0.1; wtedy polecenie byłoby.
telnet 10.0.0.1 8080
Jeśli nie ma problemu z połączeniem, wtedy powinieneś zobaczyć połączony komunikat.
Trying 10.0.0.1...Connected to 10.0.0.1.Escape character is '^]'.
Uwaga: jeśli otrzymasz polecenie nie znaleziono podczas wykonywania telnet, wtedy musisz zainstalować telnet, jak wyjaśniłem tutaj.
W większości scenariuszy, telnet powinien pomóc. Jednakże, jeśli potrzebujesz innej opcji to oto kilka alternatyw telnet.
ncat lub nc
Ncat (a.k.a. nc) jest potężnym narzędziem sieciowym z wieloma funkcjami jak wiązanie i akceptowanie połączenia, wykonywanie poleceń zdalnie, zapis i odczyt danych, itp. Działa na IPv4 i IPv6, zarówno.
Aby wykonać prosty test sprawdzający, czy port jest otwarty, czy nie, wykonasz następujące czynności.
nc -vz $HOSTNAME $PORT
Przyjmijmy przykład testowania portu 443 na geekflare.com.
# nc -vz geekflare.com 443Ncat: Version 7.50 ( https://nmap.org/ncat )Ncat: Connected to 104.25.133.107:443.Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.#
Jak wspomniano, możesz również użyć nc
, aby powiązać połączenie z nasłuchiwaniem na określonym porcie. Może to być przydatne, gdy nie masz uruchomionych rzeczywistych usług, ale chcesz zapewnić łączność.
Aby rozpocząć nasłuchiwanie na porcie:
nc -l $PORTNUMBER
Będzie to wiązać port na danym numerze.
Jeśli ncat nie jest zainstalowany, to można to zrobić za pomocą yum install nc
na serwerach CentOS/RHEL.
wget
wget jest użytecznym poleceniem do pobierania/testowania HTTP, HTTPS i FTP. Jeśli pracujesz jako inżynier sieciowy lub często masz do czynienia z problemami związanymi z siecią, to wget
jest twoim przyjacielem. Testowanie przy użyciu wget jest proste.
wget $URL
Tutaj jest przykład testowania tools.geekflare.com
# wget tools.geekflare.com--2019-05-09 20:40:01-- http://tools.geekflare.com/Resolving tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: https://tools.geekflare.com/ --2019-05-09 20:40:01-- https://tools.geekflare.com/Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:443... connected.HTTP request sent, awaiting response... 200 OKLength: unspecified Saving to: 'index.html.2' 15,139 --.-K/s in 0.001s 2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved #
Jeśli pokazuje connected oznacza to, że nie ma problemu z łącznością.
curl
A curl jest narzędziem wielozadaniowym.
Czy wiesz, że możesz telnetować do portu używając curl?
Dobrze, teraz już wiesz.
curl -v telnet://$IP:$PORT
Następujący przykład jest działającym przykładem.
# curl -v telnet://chandan.io:443* About to connect() to chandan.io port 443 (#0)* Trying 104.31.68.106...* Connected to chandan.io (104.31.68.106) port 443 (#0)
A gdy nie ma portu nasłuchującego lub problemu z zaporą sieciową, wtedy zobaczysz próby…
# curl -v telnet://chandan.io:4434* About to connect() to chandan.io port 4434 (#0)* Trying 104.31.68.106...
Możesz również użyć curla do pobierania danych. Obsługuje on wiele protokołów – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, itp.
nmap
Popularne narzędzie z setkami funkcji. Często jest uważany za narzędzie bezpieczeństwa. nmap pozwala na testowanie pojedynczego IP/portu lub w zakresie.
Aby przetestować pojedynczy port
nmap -p $PORT $IP
Przykład testowania portu 443 na siterelic.com
# nmap -p 443 siterelic.comStarting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTCNmap scan report for siterelic.com (104.27.174.50)Host is up (0.0079s latency).Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32PORT STATE SERVICE443/tcp open httpsNmap done: 1 IP address (1 host up) scanned in 0.13 seconds#
Spójrz na kolumnę stanu. Jeśli widzisz open oznacza to, że połączenie jest w porządku. A jeśli stan jest filtrowany oznacza to, że połączenie nie istnieje.
Wnioski
telnet jest stopniowo wycofywany w najnowszych wersjach Linuksa. Dzięki powyższej alternatywie telnet.
Jeśli jesteś nowy w Linuksie i chcesz się nauczyć to sprawdź ten kurs Udemy.
.