Naučte se příkazy Telnet pro testování a odstraňování problémů s připojením

Telnet: Starý, ale stále užitečný nástroj pro správu sítě

Telnet představuje klasický síťový protokol, který umožňuje navázání virtuálního spojení se vzdáleným počítačem. Jeho historie sahá až do roku 1969, kdy byl vyvinut. Dnes, i přes svůj věk, si zachovává své místo v síťovém prostředí.

V současné době je Telnet ve velké míře nahrazen modernějším a bezpečnějším protokolem SSH (Secure Shell). SSH slouží také pro síťovou komunikaci, avšak s důrazem na bezpečnost při vzdáleném přístupu správců sítí a systémů.

Telnet se dnes využívá spíše pro diagnostiku a testování problémů se síťovým připojením. Znalost jeho příkazů vám může pomoci při efektivnější správě a řešení obtíží v síti.

V tomto textu se blíže podíváme na fungování příkazu telnet, jeho využití v praxi a jak jej využít při odstraňování problémů s připojením.

Co přesně je Telnet?

Telnet, což je zkratka pro Teletype Network, je síťový protokol poskytující rozhraní příkazového řádku pro komunikaci se vzdáleným serverem. Správci systémů a sítí tak mohou získat vzdálený přístup k zařízením a provádět na nich různé operace, včetně prvotního nastavení.

Pro použití Telnetu je nezbytný klient Telnet. Tento klient umožňuje uživatelům připojovat se a spouštět aplikace na vzdálených systémech prostřednictvím protokolu TCP/IP. Klient Telnet využívá serverovou aplikaci Telnet k provádění požadovaných operací. Klient Telnet je standardně dostupný ve všech běžných operačních systémech, jako jsou Windows, Linux a macOS.

Poznámka: V tomto článku, pokud není výslovně uvedeno jinak, termín „Telnet“ odkazuje na „klienta Telnet“.

Je Telnet bezpečný?

V době svého vzniku, v roce 1969, nebyla bezpečnost při síťových operacích prvořadým požadavkem. Proto Telnet nepoužívá žádné šifrování dat. Kvůli této absenci zabezpečení se nedoporučuje používat Telnet pro připojování ke vzdáleným klientům přes TCP/IP síť. V takovém případě byste se vystavili riziku odposlechu nešifrovaných dat. Pro bezpečný vzdálený přístup k serverům je vhodnější používat alternativní protokol SSH.

Jak funguje Telnet?

Zjednodušeně řečeno, fungování protokolu Telnet lze popsat následujícím způsobem:

Jak funguje Telnet

Telnet využívá textovou komunikaci a vytváří interaktivní obousměrný systém (klient-server). Pro přenos dat používá 8bitové spojení. Pro ovládání Telnetu je potřeba klávesnice a obrazovka připojená k terminálu.

Uživatel zadává příkazy z terminálu pro spojení se vzdáleným počítačem. Po úspěšném připojení získá uživatel kontrolu nad vzdáleným serverem, včetně jeho souborů a procesů.

Pro připojení ke vzdálenému serveru je nutné v příkazovém řádku zadat příkaz „telnet“ následovaný adresou serveru a portem. Syntaxe je následující:

telnet hostname port

Po úspěšném spojení se zobrazí výzva Telnet, ve které je možné zadávat další příkazy.

Telnet lze využít k různým účelům, například:

  • Kontrola otevřených portů
  • Úpravy souborů a spouštění programů
  • Konfigurace síťových zařízení, jako jsou přepínače, směrovače atd.

Pro ukončení relace je nutné do výzvy Telnet zadat příkaz „quit“ nebo „exit“.

Jak aktivovat klienta Telnet ve Windows, Linuxu a macOS

Klient Telnet je dostupný na všech běžných operačních systémech, nicméně je potřeba jej aktivovat nebo nainstalovat.

#1. Windows

Uživatelé systémů Windows 7 a vyšších (8, 10, 11) nebo Windows Vista mohou aktivovat klienta Telnet podle následujících kroků:

  • Otevřete nabídku Start a vyhledejte „Ovládací panely“. Alternativně můžete stisknout klávesovou zkratku Win + R a zadat „control“ pro přímé otevření Ovládacích panelů.
  • V Ovládacích panelech vyberte „Programy“ a poté „Programy a funkce“.
  • V levém panelu klikněte na „Zapnout nebo vypnout funkce systému Windows“.
  • Zaškrtněte políčko u položky „Klient Telnet“ a klikněte na „OK“.
  • Po dokončení změn a zobrazení hlášky „Systém Windows dokončil požadované změny“ klikněte na „Zavřít“.

Aktivace Telnetu ve Windows

Poznámka: Klienta Telnet můžete začít používat okamžitě, není nutné restartovat počítač.

#2. Linux

Stejně jako Windows ani Linux nemá Telnet ve výchozím stavu nainstalovaný.

Pro instalaci Telnetu v Ubuntu použijte následující příkaz:

# sudo apt-get install telnet

Poznámka: Příkaz se může lišit v závislosti na vaší distribuci Linuxu.

#3. macOS

Telnet je podporován i v operačním systému macOS. Pro jeho instalaci je nutné použít Homebrew. Pokud nemáte Homebrew nainstalovaný, nainstalujte jej pomocí následujícího příkazu:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Budete vyzváni k zadání hesla administrátora pro autorizaci instalace.

S nainstalovaným Homebrew použijte následující příkaz pro instalaci Telnetu v macOS:

brew install telnet

Použití Telnetu pro testování a diagnostiku síťových problémů

I když Telnet není ideální pro bezpečný vzdálený přístup, je stále cenný pro testování a diagnostiku problémů v síti.

Než se podíváme na konkrétní případy použití, připomeneme si syntaxi příkazu Telnet:

telnet <adresa serveru/hostitele> <port>

Zde <adresa serveru/hostitele> představuje IP adresu nebo název serveru, ke kterému se chcete připojit, a <port> je číslo TCP portu.

Například pro připojení k serveru s IP adresou example.com na portu 80 byste zadali následující příkaz:

telnet example.com 80

Pro účely diagnostiky je nezbytné znát IP adresu nebo název vzdáleného serveru a číslo portu, ke kterému se chcete připojit.

Pojďme se podívat na konkrétní případy použití.

Řešení problémů s webovými servery

Telnet představuje jednoduchý způsob ověření funkčnosti serveru. Stačí se připojit k IP adrese serveru a portu, který přijímá připojení.

Pokud se například chcete připojit k adrese 23.45.75.22 na portu 532, použijete následující příkaz:

telnet 23.45.75.22 532

Následovat mohou tři situace:

  • Spojení se serverem je úspěšné a zobrazí se zpráva „connected to server“ nebo čekáte na další vstup.
  • Spojení se serverem se nezdařilo a zobrazí se chybová zpráva, například „Connection failed“ nebo „Connection refused“.
  • Telnet nezobrazí žádnou zprávu.

Neúspěšný pokus o připojení přes Telnet k vzdálenému serveru může mít několik příčin. Pokud Telnet nezobrazuje žádnou chybovou zprávu, je možné, že spojení blokuje firewall nebo antivirový program na vašem počítači, nebo na serveru.

Pokud se připojíme na geefklare.com na portu 80, spojení bude okamžité, protože server čeká na další příkazy:

telnet geefklare.com 80
Connected to etechblog.cz.com.
Escape character is '^]'.

Nyní zadáme následující příkaz:

GET / HTTP/1.1
Host: etechblog.cz.com

Výstup bude:

HTTP/1.1 200 OK
Date: Fri, 18 Nov 2022 04:40:33 GMT
Content-Type: text/plain; charset=UTF-8
Content-Length: 16
X-Frame-Options: SAMEORIGIN
Referrer-Policy: same-origin
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
[Additional server output follows]

Nyní se podívejme na neúspěšný pokus o připojení k serveru:

telnet 23.45.75.222 532
Connecting To 23.45.75.222...Could not open a connection to the host on port 532: Connect failed

Ověření otevřenosti portu

Pokud je server vzdáleně přístupný pomocí Telnetu, můžete jej použít také ke kontrole, zda je určitý port otevřený.

Pro ověření otevřenosti portu na serveru použijte následující příkaz:

telnet <IP adresa serveru> <port>

Například pokud je IP adresa vašeho serveru 23.45.47.53 a chcete zkontrolovat port 532, zadáte:

telnet 23.45.47.53 532

Pokud je příkaz úspěšný, zobrazí se prázdná obrazovka, což značí, že je port otevřený. Pokud se objeví hláška „connecting…“ a následně chybová zpráva, port není otevřený:

Connection to 23.45.47.53:532 - fail
Error #110 (Connection timed out)

Diagnostika problémů s poštovními servery SMTP

Simple Mail Transfer Protocol (SMTP) je zodpovědný za komunikaci mezi poštovními servery.

Pomocí Telnetu můžete diagnostikovat problémy s SMTP servery a ověřit, zda správně přijímají a odesílají zprávy. Můžete manuálně odesílat požadavky na server SMTP a pokud je vše v pořádku, obdržíte odpověď.

Telnetem lze testovat spojení STMP dvěma způsoby:

  • Testovat tok pošty z internetu na váš poštovní server.
  • Testovat tok pošty z vašeho poštovního serveru na jiný server.

Pro ukázkový příklad zadejte následující příkaz do terminálu:

telnet mail.etechblog.cz.com 25
Trying 192.168.0.68…
Connected to mail.etechblog.cz.com
Escape character is '^]'.
220-mail.etechblog.cz.com ESMTP Exim 4.7
220-We do not authorize the use of this system to
220 transport unsolicited and/or bulk e-mail.
EHLO mail.etechblog.cz.com
250-etechblog.cz.com Hello etechblog.cz.com [192.168.3.200]
250-AUTH PLAIN LOGIN

QUIT

V tomto příkladu byly uživatelem zadány dva další příkazy:

  • EHLO mail.etechblog.cz.com
  • QUIT

Příkaz ECLO identifikuje název domény před použitím příkazu MAIL FROM. Příkaz QUIT ukončí Telnet relaci.

Pro pokročilejší příkazy si můžete přečíst další článek o použití Telnetu k testování SMTP komunikace na serverech Exchange.

Řešení problémů s FTP serverem

Podobně jako u SMTP a webových serverů můžete pomocí Telnetu řešit i problémy s FTP servery. Stačí zadat IP adresu FTP serveru a připojit se k portu 21:

telnet ftp.etechblog.cz.com 21

Pokud je připojení úspěšné, jste připojeni k serveru, v opačném případě se zobrazí chybová zpráva:

Error #0 (php_network_getaddresses: getaddrinfo failed: No address associated with hostname)

Diagnostika problémů se SSH

SSH je modernější a bezpečnější alternativa Telnetu. Nicméně pomocí Telnetu můžete ověřit, zda na serveru běží SSH.

K tomu použijte příkaz Telnet s IP adresou serveru a portem 22:

telnet etechblog.cz.com 22
Trying 192.168.0.62…
Connected to etechblog.cz.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3

Závěrem

Telnet zůstává užitečným nástrojem pro řešení problémů v sítích. Umožňuje vám odstraňovat problémy s připojením bez nutnosti používat složitější nástroje nebo příkazové řádky. Pomocí Telnetu můžete ověřit dostupnost webového serveru, zjistit, zda je port otevřený, a diagnostikovat problémy s SSH a FTP servery.

Můžete se také podívat na článek o řešení chyby „příkaz telnet nenalezen“.