telnet 不僅是遠程登入協定(明文、不安全),更是**網路埠口連通性測試與應用層協定指紋識別**的瑞士刀。本文示範登入測試、埠口掃描、SSH/HTTP 服務版本識別實戰,並強調安全替代方案。
telnet 主機名/IP [埠號]
# 預設埠 23(telnet 服務)
telnet 192.168.60.123 23
Trying 192.168.60.123...
Connected to 192.168.60.123.
Escape character is '^]'.
HP-UX host4 B.11.11 U 9000/800
login: root
Password:
警告:帳密明文傳輸,**嚴禁生產環境/公網使用**。請改用 SSH。
telnet 192.168.60.88 22
Trying 192.168.60.21...
Connected to 192.168.60.21.
Escape character is '^]'.
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
Connection closed by foreign host.
關鍵資訊:SSH-1.99-OpenSSH_3.9p1 → 協定版本 1.99、軟體 OpenSSH 3.9p1。
telnet www.example.com 80
Trying 221.130.192.57...
Connected to www.example.com.
Escape character is '^]'.
GET / HTTP/1.0
Host: www.example.com
HTTP/1.1 200 OK
Server: Apache/2.2.4 (Unix) PHP/5.2.3 mod_fastcgi/2.4.2 Resin/3.1.3
...
手動輸入 GET / HTTP/1.0 + Host 頭,回應頭 Server 欄位揭露:Apache 2.2.4 + PHP 5.2.3 + mod_fastcgi + Resin 3.1.3。
同理連線後輸入對應協定指令(HELO、USER、CAPABILITY),可測試郵件服務健康度與版本。
| 工具 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
telnet | 無相依、全平台內建、協定互動直觀 | 明文、無 TLS 支援、無腳本化介面 | 快速埠口測試、協定教學、舊系統維護 |
nc (netcat) | 支援 UDP、監聽模式、腳本友善 | 無協定感知、需手工構造封包 | 埠口掃描、Banner Grabbing、網路除錯 |
nmap | 功能最全(OS 指紋、腳本引擎、服務版本偵測) | 體積大、掃描流量明顯、需安裝 | 資產盤點、滲透測試、合規稽核 |
openssl s_client | 支援 TLS/SSL 協定檢視憑證鏈 | 僅限 TLS 服務 | HTTPS/SMTPS/IMAPS 憑證驗證 |
systemctl disable telnet.socket / yum remove telnet-serverfirewall-cmd --remove-service=telnet/etc/issue.net、SSH Banner、HTTP ServerTokens Prodtelnet 是「網路聽診器」,能聽見服務的心跳與版本。善用它做**授權環境下的連通性驗證與指紋識別**,但請將其作為**客戶端工具**保留,**絕不在伺服器端啟用 telnet 服務**。現代運維請以 nc、nmap、openssl s_client 組合替代,構建更安全、可自動化的網路可觀測體系。