14. 遠程登錄協議
- 14. 遠程登錄協議
- 14.1 基本概念
- 14.2 Telnet 命令
- 14.3 Telnet 選項及協商
- 14.4 Telnet 子選項協商
- 14.5 Telnet 操作模式
- 本章要點
14. 遠程登錄協議
14.1 基本概念
Telnet 協議是 TCP/IP 協議族的重要成員,核心功能是實現本地計算機對遠程主機的終端仿真,使本地用戶能像直接操作遠程主機一樣訪問其資源。
- 遠程登錄的定義
本地用戶通過 TCP/IP 協議進入遠程主機的用戶帳號,以遠地用戶的身份訪問遠程主機資源。使用場景包括:- 用戶在遠程主機擁有注冊帳號(用戶名 + 口令);
- 遠程主機提供公共 Telnet 信息資源(對所有用戶開放)。
- 工作原理
- 核心組件:Telnet 客戶端(本地)、Telnet 服務器(遠程,運行
Telnetd
守護進程)、TCP 連接(端口 23)。 - 流程:
- 遠程主機啟動
Telnetd
,監聽端口 23,等待客戶端請求; - 本地用戶通過 Telnet 客戶端發起連接請求;
- 服務器接收請求后,創建偽終端(
Pseudo
子進程),模擬終端與客戶端交互; - 客戶端與服務器通過選項協商確定工作模式,用戶輸入用戶名和口令完成登錄;
- 登錄成功后,用戶輸入的每一個字符經 TCP 傳輸到服務器,服務器處理后將結果返回客戶端并顯示。
- 遠程主機啟動
- 核心組件:Telnet 客戶端(本地)、Telnet 服務器(遠程,運行
- Telnet 的用途
- 縮短空間距離:本地用戶可遠程訪問異地主機資源,無需物理在場;
- 兼容性強:支持異種計算機和操作系統(如 Windows 與 UNIX)之間的互操作;
- 訪問其他 Internet 服務:通過 Telnet 可間接使用遠程主機提供的其他服務(如 FTP、郵件)。
- 網絡虛擬終端(NVT)
- 作用:解決不同計算機系統(異質性)對鍵盤輸入和顯示解釋的差異,提供統一的標準接口。
- 字符集:
- 采用 8bit 字節傳輸,最高位為 0 的字節表示普通數據(7 位 ASCII 碼);
- 最高位為 1 的字節表示 NVT 命令(如回車、退格等控制字符)。
- 轉義機制:使用
IAC
(轉義字符,字節值 255)標識控制命令的開始,后續字節為具體命令(如IAC EC
表示刪除前一個字符)。 - 連接特性:控制信息與數據共享同一 TCP 連接,服務器固定端口 23,客戶端使用動態端口。
14.2 Telnet 命令
Telnet 命令用于啟動客戶端程序并配置連接參數,分為啟動命令和客戶端控制臺命令兩類。
-
啟動命令格式
telnet [-d] [-a] [-n tracefile] [-e escapechar] [-l user] host [port]
- 選項說明:
-d
:開啟調試模式;-a
:嘗試自動登錄(通過USER
命令傳輸用戶名);-n tracefile
:將跟蹤信息記錄到指定文件;-e escapechar
:指定轉義字符(默認通常為Ctrl+]
);-l user
:指定登錄遠程主機的用戶名;host
:遠程主機的域名或 IP 地址;port
:遠程主機的端口號(默認 23)。
- 選項說明:
-
客戶端控制臺命令
連接建立后,通過轉義字符進入控制臺模式,常用命令包括:open host [port]
:連接到指定主機(若已連接則先關閉當前連接);close
:關閉當前連接;quit
:退出 Telnet 客戶端;send
:向遠程主機發送控制命令(如send ayt
詢問對方是否在線,send brk
發送中斷信號);status
:顯示當前連接狀態;help
:查看命令幫助。
14.3 Telnet 選項及協商
選項協商是 Telnet 的核心機制,用于雙方協商工作模式(如數據傳輸格式、終端類型等),確保通信兼容。
-
核心選項
Telnet 定義了多個標準選項,用于配置 TCP 連接的行為,常見選項如下:選項名稱 代碼 RFC 文檔 功能描述 傳輸二進制 0 856 允許傳輸 8 位二進制數據(默認僅支持 7 位 ASCII) 回應 1 857 允許一方回顯收到的數據(如遠程主機回顯用戶輸入) 抑制 GA 3 858 禁止在數據后發送 “Go Ahead” 信號,支持全雙工通信(默認半雙工需 GA 信號觸發發送) 狀態 5 859 請求遠程主機返回當前選項的狀態 終端類型 24 1191 交換終端類型信息(如客戶端使用的終端型號,確保遠程應用正確顯示) 行模式 34 1116 支持本地編輯,整行數據一次性發送(減少網絡交互) -
協商命令與過程
- 協商命令:雙方通過 4 個命令碼進行選項協商,均以
IAC
開頭:WILL X
:請求啟用本地的 X 選項(“我想使用 X 選項,你同意嗎?”);DO X
:同意對方啟用 X 選項(“你可以使用 X 選項”);WONT X
:拒絕啟用本地的 X 選項(“我不會使用 X 選項”);DONT X
:拒絕對方啟用 X 選項(“你不可以使用 X 選項”)。
- 協商過程:選項協商是對稱的,任何一方均可主動發起。例如:
- 客戶端發送
IAC WILL 24
(請求啟用終端類型選項); - 服務器回應
IAC DO 24
(同意對方啟用),協商成功;若服務器拒絕,則回應IAC DONT 24
。
- 客戶端發送
- 協商命令:雙方通過 4 個命令碼進行選項協商,均以
14.4 Telnet 子選項協商
部分選項(如終端類型)需要更詳細的參數配置,需通過子選項協商機制交換具體信息。
-
子選項協商命令格式
以IAC SB
(子選項開始)和IAC SE
(子選項結束)為邊界,格式為:<IAC, SB, 選項碼, 參數1, 參數2, ..., IAC, SE>
SB
:子選項協商開始標志;選項碼
:對應的主選項代碼(如 24 表示終端類型);參數
:子選項的具體信息(如終端類型字符串)。
-
終端類型子選項協商示例
- 客戶端請求啟用終端類型選項:
IAC WILL 24
; - 服務器同意:
IAC DO 24
; - 服務器詢問客戶端終端類型:
IAC SB 24 1 IAC SE
(參數 1 表示 “請求發送終端類型”); - 客戶端回應終端類型(如 “mypc”):
IAC SB 24 0 'M' 'Y' 'P' 'C' IAC SE
(參數 0 表示 “回應終端類型”,字符串為大寫); - 服務器接收后自動轉換為小寫(如 “mypc”),用于適配遠程應用(如屏幕編輯程序)。
- 客戶端請求啟用終端類型選項:
14.5 Telnet 操作模式
Telnet 支持 4 種操作模式,用于適應不同的交互場景(如輸入方式、數據傳輸粒度)。
- 半雙工模式
- 特點:客戶端需等待服務器發送 “Go Ahead(GA)” 信號后才能輸入數據;用戶輸入在本地回顯,且只能整行發送。
- 適用場景:早期低速網絡,避免數據沖突。
- 一次一個字符方式
- 特點:用戶鍵入的每個字符立即單獨發送到服務器;服務器通常回顯字符(除非應用程序禁用回顯)。
- 依賴選項:需同時啟用 “回應(ECHO)” 和 “抑制 GA” 選項,支持全雙工實時交互。
- 一次一行方式(準行方式)
- 特點:用戶在本地編輯整行數據,完成后一次性發送;回顯由本地或遠程控制。
- 觸發條件:當 “ECHO” 或 “抑制 GA” 選項無效時自動啟用。
- 行方式(RFC 1184 定義)
- 特點:全雙工模式,支持本地編輯(如修改、刪除字符),整行完成后發送,優化網絡傳輸效率。
- 優勢:克服準行方式的缺陷,是現代 Telnet 實現的主流模式。
本章要點
- Telnet 通過 TCP 連接實現本地計算機對遠程主機的終端仿真,核心是網絡虛擬終端(NVT),解決異種系統的互操作性問題。
- 遠程登錄流程包括連接建立、選項協商、身份驗證、數據交互和連接釋放,依賴
Telnetd
服務器進程和客戶端程序協作。 - 選項協商機制(
WILL
/DO
/WONT
/DONT
)用于配置工作模式,子選項協商進一步交換詳細參數(如終端類型)。 - 4 種操作模式(半雙工、一次一個字符、一次一行、行方式)適應不同交互需求,行方式為現代實現的首選。
- Telnet 命令分為啟動命令(配置連接參數)和控制臺命令(管理連接與發送控制信息)。