telnet

Testuje łączność TCP na wskazanym porcie i nawiązuje proste połączenia tekstowe.

telnet to prosty klient protokołu TELNET, ale w codziennej pracy admina i tak używasz go głównie do jednego: sprawdzenia, czy da się otworzyć połączenie TCP na wybranym porcie zdalnego hosta. Wpisujesz telnet serwer 443 i od razu widzisz, czy port odpowiada, czy wisi w ciszy, czy odbija connection refused. To najszybszy sposób, żeby odpowiedzieć na pytanie „czy usługa w ogóle nasłuchuje i czy zapora mnie przepuszcza”. Bonusowo możesz nim ręcznie pogadać z tekstowym serwerem (HTTP, SMTP, POP3), wklepując komendy protokołu palcami. Uwaga: telnet przesyła wszystko czystym tekstem, więc do prawdziwego logowania na maszyny nikt go dziś nie używa — od tego jest SSH.

Składnia i najważniejsze opcje

Podstawowa forma to telnet [opcje] host [port]. Jeśli pominiesz port, klient próbuje domyślnego portu 23.

  • -4 — wymusza rozwiązywanie nazwy i połączenie po IPv4.
  • -6 — wymusza IPv6, przydatne gdy host ma oba rekordy, a Ty chcesz przetestować konkretny.
  • -e CHAR — ustawia własny znak ucieczki (domyślnie Ctrl-]), który przenosi Cię do trybu telnet>.
  • -E — całkowicie wyłącza znak ucieczki (żaden znak nie przerwie sesji).
  • -l user — podaje nazwę użytkownika przekazywaną do zdalnego systemu przy logowaniu.
  • -a — próbuje automatycznego logowania z użyciem bieżącej nazwy użytkownika.
  • -8 — żąda 8-bitowej ścieżki danych (przydatne przy transmisji znaków spoza ASCII).

Przykłady użycia

  • telnet smtp.example.com 25 — sprawdza, czy serwer poczty przyjmuje połączenia na porcie SMTP i pokazuje banner powitalny.
  • telnet 192.168.1.10 3306 — testuje, czy port MySQL jest otwarty na maszynie w sieci lokalnej (bez logowania, tylko fakt łączności).
  • telnet -4 przyklad.pl 80 — wymusza IPv4 i łączy się z portem HTTP; możesz potem wpisać GET / HTTP/1.0 i dwa entery, żeby zobaczyć surową odpowiedź serwera.
  • telnet -6 ::1 22 — sprawdza po IPv6, czy port SSH lokalnie odpowiada.
  • telnet router.local — łączy się na domyślnym porcie 23; klawiszem Ctrl-] wchodzisz w tryb telnet>, gdzie komenda quit kończy sesję.

Częste błędy i pułapki

Connection refused oznacza, że host odpowiada, ale na tym porcie nic nie nasłuchuje. Zawieszenie na „Trying…” to zwykle zapora, która po cichu dropuje pakiety — nie dostaniesz jasnego komunikatu, po prostu czekasz. Druga pułapka: na wielu współczesnych dystrybucjach (Debian, Ubuntu, RHEL) telnet nie jest instalowany domyślnie — musisz doinstalować pakiet, często nazwany telnet lub inetutils-telnet. Nie myl też klienta z serwerem telnetd (usługa nasłuchująca) — ten drugi jest dziś uznawany za dziurę bezpieczeństwa i zwykle wyłączony. I pamiętaj: to, że telnet otworzył port, nie znaczy, że usługa działa poprawnie na poziomie aplikacji.

Powiązane komendy: nc (netcat), nmap, ssh, curl, ping, ss.