6 Linux Utility pro testování síťové konektivity

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…

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.

  Jak auditovat zabezpečení vašeho systému Linux pomocí Lynis

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.

  Jak změnit uživatelská data pomocí chfn a usermod v systému Linux

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.

  7 nejlepších motivů desktopů pro Linux inspirovaných Googlem

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.