Zajímá vás, jak zkontrolovat konektivitu mezi dvěma koncovými body sítě?
Jedním z běžných úkolů správce sysadmin je kontrola připojení za účelem odstraňování problémů se sítí. Může to být něco jako aplikace se nemůže připojit k backendové službě, nemůže načíst data z externí adresy URL, ověřit, zda je tok otevřen atd.
Ať už to může být cokoli, následující nástroj/příkazy vám pomohou. Jsou testovány na CentOS a nevidím důvod, proč nefungovat na jiném linuxovém distru.
Pojďme prozkoumat…
Table of Contents
telnet
Jeden z široce používaných příkazů pro testování základní konektivity mezi servery, serverem s IP adresou jiného síťového zařízení. Syntaxe příkazu je snadná.
telnet $destinationIP $PORT
Řekněme, že chcete otestovat, zda se můžete připojit k portu 8080 na IP adrese 10.0.0.1; pak by příkaz byl.
telnet 10.0.0.1 8080
Pokud není problém s připojením, měli byste vidět připojenou zprávu.
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
Poznámka: Pokud se při provádění telnetu nezobrazí příkaz, musíte nainstalovat telnet, jak jsem vysvětlil zde.
Ve většině scénářů by měl pomoci telnet. Pokud však potřebujete nějakou jinou možnost, zde jsou některé alternativy telnetu.
ncat nebo nc
Ncat (aka nc) je výkonný síťový nástroj s mnoha funkcemi, jako je vazba a přijetí připojení, vzdálené provádění příkazů, zápis a čtení dat atd. Funguje na IPv4 a IPv6.
Chcete-li provést jednoduchý test, abyste zkontrolovali, zda je port otevřen nebo ne, proveďte následující.
nc -vz $HOSTNAME $PORT
Vezměme si příklad testování portu 443 na etechblog.cz.com.
[[email protected] ~]# nc -vz etechblog.cz.com 443 Ncat: 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. [[email protected] ~]#
Jak již bylo zmíněno, můžete také použít nc k navázání připojení k naslouchání na konkrétním portu. To může být užitečné, když nemáte spuštěné skutečné služby, ale chcete zajistit, že existuje připojení.
Zahájení poslechu na portu:
nc -l $PORTNUMBER
Naváže port na dané číslo.
Pokud ncat není nainstalován, můžete to provést pomocí yum install nc na serverech CentOS/RHEL.
wget
wget je užitečný příkaz pro stahování/testování HTTP, HTTPS a FTP. Pokud pracujete jako webový inženýr nebo často řešíte problémy související s webem, pak je wget váš přítel. Testování pomocí wget je jednoduché.
wget $URL
Zde je příklad testovacích nástrojů.etechblog.cz.com
[[email protected] ~]# wget tools.etechblog.cz.com --2019-05-09 20:40:01-- http://tools.etechblog.cz.com/ Resolving tools.etechblog.cz.com (tools.etechblog.cz.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.etechblog.cz.com (tools.etechblog.cz.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.etechblog.cz.com/ [following] --2019-05-09 20:40:01-- https://tools.etechblog.cz.com/ Connecting to tools.etechblog.cz.com (tools.etechblog.cz.com)|104.25.134.107|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] 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 [15139] [[email protected] ~]#
Pokud se zobrazí připojeno, znamená to, že není problém s připojením.
Podívejte se na některé z často používaných příkladů příkazů wget.
kučera
Kudrna je víceúčelový nástroj.
Víte, že můžete telnet na port pomocí curl?
No, teď už to víte.
curl -v telnet://$IP:$PORT
Následuje pracovní příklad.
[[email protected] ~]# 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 když nenastane žádný problém s naslouchajícím portem nebo firewallem, uvidíte pokus…
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
Ke stažení dat můžete také použít curl. Podporuje více protokolů – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER atd.
nmap
Oblíbený nástroj se stovkami funkcí. Často je to považováno za bezpečnostní nástroj, nmap umožňuje otestovat jednu IP/port nebo v rozsahu.
Chcete-li otestovat jeden port
nmap -p $PORT $IP
Příklad testování portu 443 na siterelic.com
[[email protected] ~]# nmap -p 443 siterelic.com Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC Nmap 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:af32 PORT STATE SERVICE 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds [[email protected] ~]#
Podívejte se na sloupec stavu. Pokud vidíte otevřeno, znamená to, že připojení je v pořádku. A pokud je stav filtrován, znamená to, že připojení neexistuje.
Ping
Jedním z široce používaných příkazů je kontrola, zda vzdálený hostitel odpovídá na ICMP ECHO_REQUEST nebo ne. Mějte na paměti, že to nemusí poskytnout přesné výsledky, když je ICMP blokován firewallem vzdálené sítě. Za předpokladu, že tomu tak není, můžete provést příkaz ping na koncový bod sítě IPv4 nebo IPv4, jak je uvedeno níže.
ping $ipaddress ping $url
Například výsledek úspěchu etechblog.cz.com
[email protected] ~ % ping etechblog.cz.com PING etechblog.cz.com (104.27.119.115): 56 data bytes 64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms 64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
Například výsledek selhání interní IP.
[email protected] ~ % ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1
Pokud koncový bod podporuje IPv6, můžete použít příkaz ping6, jak je uvedeno níže.
[email protected] ~ % ping6 etechblog.cz.com PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673 16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms 16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms
Pokud potřebujete provést vzdálený ping přes internet, můžete použít online nástroj ping.
Závěr
telnet postupně vyřazuje nejnovější verzi Linuxu. Díky výše uvedené alternativě telnetu.
Pokud s Linuxem začínáte a chcete se to naučit, podívejte se na toto Kurz Udemy.