Přemýšlíte, jak zkontrolovat připojení mezi dvěma koncovými body sítě?
Jednou z běžných úloh správce systému je kontrola připojení za účelem řešení problémů se sítí. Může to být cokoli, například aplikace se nemůže připojit k backendové službě, nemůže načíst data z externí adresy URL, ověřit, zda je otevřen tok atd.
Ať už je to cokoli, pomůže vám následující nástroj/příkaz. Jsou otestovány na CentOS 7.x a nevidím důvod, proč by neměly fungovat i na jiné linuxové distribuci.
Prozkoumejme…
telnet
Jeden z hojně používaných příkazů pro testování základní konektivity mezi servery, serveru k IP jiného síťového zařízení. Syntaxe příkazu je jednoduchá.
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 zněl.
telnet 10.0.0.1 8080
Pokud není s připojením žádný problém, pak byste měli vidět zprávu o připojení.
Trying 10.0.0.1...Connected to 10.0.0.1.Escape character is '^]'.
Poznámka: pokud se vám při spuštění telnetu zobrazí příkaz nenalezen, pak musíte nainstalovat telnet, jak jsem vysvětlil zde.
Ve většině scénářů by měl telnet pomoci. Pokud však potřebujete jinou možnost, pak zde uvádíme několik alternativ telnetu.
ncat nebo nc
Ncat (také známý jako nc) je výkonný síťový nástroj s mnoha funkcemi, jako je navázání a přijetí spojení, vzdálené spuštění příkazu, zápis a čtení dat atd. Funguje jak na IPv4, tak na IPv6.
Pro jednoduchý test, zda je port otevřen, nebo ne, provedete následující příkaz.
nc -vz $HOSTNAME $PORT
Podívejme se na příklad testování 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 již bylo zmíněno, můžete také použít nc
pro navázání spojení k naslouchání na určitém portu. To se může hodit v případě, že nemáte spuštěné skutečné služby, ale chcete zajistit existenci připojení.
Pro zahájení naslouchání na portu:
nc -l $PORTNUMBER
Váže port na dané číslo.
Pokud není ncat nainstalován, můžete to na serverech CentOS/RHEL provést pomocí yum install nc
.
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
vaším přítelem. Testování pomocí wget je jednoduché.
wget $URL
Tady je příklad testování 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 #
Pokud se zobrazí připojeno, znamená to, že není žádný problém s připojením.
curl
Curl je víceúčelový nástroj.
Víte, že pomocí curl můžete telnetovat na port?
No, teď už to víte.
curl -v telnet://$IP:$PORT
Následující příklad je funkční.
# 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ž není žádný naslouchající port nebo problém s firewallem, pak uvidíte, že se snažíte…
# 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 považován za bezpečnostní nástroj. nmap umožňuje testovat jednu IP/port nebo v rozsahu.
Testování jednoho portu
nmap -p $PORT $IP
Příklad testování 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#
Podívejte se na sloupec stav. Pokud vidíte open, znamená to, že připojení je v pořádku. A pokud je stav filtrován, znamená to, že připojení neexistuje.
Závěr
telnet se v nejnovější verzi Linuxu postupně ukončuje. Díky výše uvedené alternativě telnetu.
Pokud jste v Linuxu nováčci a chcete se něco naučit, podívejte se na tento kurz Udemy.
.