Telnet(TELNET協定)

Telnet

TELNET協定一般指本詞條

Telnet協定是TCP/IP協定族中的一員,是Internet遠程登錄服務的標準協定和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程式,用它連線到伺服器終端使用者可以在telnet程式中輸入命令,這些命令會在伺服器上運行,就像直接在伺服器的控制台上輸入一樣。可以在本地就能控制伺服器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄伺服器。Telnet是常用的遠程控制Web伺服器的方法。

基本介紹

  • 中文名:遠程終端協定
  • 外文名:Telnet
  • 適用範圍:計算機
  • 功能遠程控制Web伺服器
登錄,定義,產生和發展,工作過程,功能,用途,互動過程,安全隱患,協定,基本內容,適應異構,傳送遠程命令,數據流向,強制命令,子選項協商,配置,NTLM,流程,顯示,遠程登錄,命令,常見問題,

登錄

Telnet服務雖然也屬於客戶機/伺服器模型的服務,但它更大的意義在於實現了基於Telnet協定的遠程登錄(遠程互動式計算),那么就讓我們來認識一下遠程登錄。

定義

先來看看什麼叫登錄:分時系統允許多個用戶同時使用一台計算機,為了保證系統的安全和記賬方便,系統要求每個用戶有單獨的帳號作為登錄標識,系統還為每個用戶指定了一個口令。用戶在使用該系統之前要輸入標識和口令,這個過程被稱為'登錄'。 遠程登錄是指用戶使用Telnet命令,使自己的計算機暫時成為遠程主機的一個仿真終端的過程。仿真終端等效於一個非智慧型的機器,它只負責把用戶輸入的每個字元傳遞給主機,再將主機輸出的每個信息回顯螢幕上。

產生和發展

我們可以先構想一個提供遠程文字編輯的服務,這個服務的實現需要一個接受編輯檔案請求和數據的伺服器以及一個傳送此請求的客戶機。客戶機將建立一個從本地機到伺服器的TCP連線,當然這需要伺服器的應答,然後向伺服器傳送鍵入的信息(檔案編輯信息),並讀取從伺服器返回的輸出。以上便是一個標準而普通的客戶機/伺服器模型的服務。
似乎有了客戶機/伺服器模型的服務,一切遠程問題都可以解決了。然而實際並非你想像的那樣簡單,如果我們僅需要遠程編輯檔案,那么剛才所構想的服務完全可以勝任,但假如我們的要求並不是這么簡單,我們還想實現遠程用戶管理,遠程數據錄入,遠程系統維護,想實現一切可以在遠程主機上實現的操作,那么我們將需要大量專用的伺服器程式並為每一個可計算服務都使用一個伺服器進程,隨之而來的問題是:遠程機器會很快對伺服器進程應接不暇,並淹沒在進程的海洋里(我們在這裡排除最專業化的遠程機器)。
那么有沒有辦法解決呢?當然有,我們可以用遠程登錄來解決這一切。我們允許用戶在遠地機器上建立一個登錄會話,然後通過執行命令來實現更一般的服務,就像在本地操作一樣。這樣,我們便可以訪問遠地系統上所有可用的命令,並且系統設計員不需提供多個專用地伺服器程式。
問題發展到這裡好像前途一片光明了,用遠程登錄總應該解決問題了吧,但要實現遠程登錄並不簡單。不考慮網路設計的計算機系統期望用戶只從直接相連的鍵盤和顯示器上登錄,在這種機器上增加遠程登錄功能需要修改機器的作業系統,這是極其艱巨也是我們儘量避免的。因此我們應該集中力量構造遠程登錄伺服器軟體,雖然這樣也是比較困難的。為什麼說這樣做也比較困難呢?
舉個例子來說:一般,作業系統會為一些特殊按鍵分配特殊的含義,比如本地系統將'Ctrl+C'解釋為:'終止當前運行的命令進程'。但假設我們已經運行了遠程登錄伺服器軟體,'Ctrl+C'也有可能無法被傳送到遠地機器,如果客戶機真的將'Ctrl+C'傳到了遠地機器,那么'Ctrl+C'這個命令有可能不能終止本地的進程,也就是說在這裡很可能會產生混亂。而且這僅僅是遇到的難題之一。
但儘管有技術上的困難,系統編程人員還是設法構造了能夠套用於大多數作業系統遠程登錄伺服器軟體,並構造了充當客戶機的套用軟體。通常,客戶機軟體取消了除一個鍵以外的所有鍵的本地解釋,並將這些本地解釋相應的轉換成遠地解釋,這就使得客戶機軟體與遠地機器的互動,就如同坐在遠程主機面前一樣,從而避免了上述所提到的混亂。而那個唯一例外的鍵,可以使用戶回到本地環境。
遠程登錄伺服器設計為套用級軟體,還有另一個要求,那就是需要作業系統提供對偽終端(pseudo terminal)的支持。我們用偽終端描述作業系統的入口點,它允許像Telnet伺服器一樣的程式向作業系統傳送字元,並且使得字元像是來自本地鍵盤一樣。只有使用這樣的作業系統,才能將遠程登錄伺服器設計為套用級軟體(比如Telnet伺服器軟體),否則,本地作業系統和遠地系統傳送將不能識別從對方傳送過來的信息(因為它們僅能識別從本地鍵盤所鍵入的信息),遠程登錄將宣告失敗。
遠程登入伺服器設計為套用級軟體雖然有其顯著的優點:比將代碼嵌入作業系統更易修改和控制伺服器。但其也有效率不高的缺點(後面的內容將會給予解釋),好在用戶鍵入信息的速率不高,這種設計還是可以接受的。

工作過程

使用Telnet協定進行遠程登錄時需要滿足以下條件:在本地計算機上必須裝有包含Telnet協定的客戶程式;必須知道遠程主機的Ip地址或域名;必須知道登錄標識與口令。
Telnet遠程登錄服務分為以下4個過程:
1)本地與遠程主機建立連線。該過程實際上是建立一個TCP連線,用戶必須知道遠程主機的Ip地址或域名
2)將本地終端上輸入的用戶名和口令及以後輸入的任何命令或字元以NVT(Net Virtual Terminal)格式傳送到遠程主機。該過程實際上是從本地主機向遠程主機傳送一個IP數據包;
3)將遠程主機輸出的NVT格式的數據轉化為本地所接受的格式送回本地終端,包括輸入命令回顯和命令執行結果;
4)最後,本地終端對遠程主機進行撤消連線。該過程是撤銷一個TCP連線。
上面的內容只是討論了遠程登入最基本的東西,其中的複雜和編程人員的艱辛是我們難以想像的,不知道你在舒服的使用Telnet的同時,是否想到了這些!

功能

用途

Telnet是Internet遠程登錄服務的標準協定和主要方式,最初由ARPANET開發,現在主要用於Internet會話,它的基本功能是允許用戶登錄進入遠程主機系統。
Telnet可以讓我們坐在自己的計算機前通過Internet網路登錄到另一台遠程計算機上,這台計算機可以是在隔壁的房間裡,也可以是在地球的另一端。當登錄上遠程計算機後,本地計算機就等同於遠程計算機的一個終端,我們可以用自己的計算機直接操縱遠程計算機,享受遠程計算機本地終端同樣的操作許可權。
Telnet的主要用途就是使用遠程計算機上所擁有的本地計算機沒有的信息資源,如果遠程的主要目的是在本地計算機與遠程計算機之間傳遞檔案,那么相比而言使用FTP會更加快捷有效。

互動過程

當我們使用Telnet登錄進入遠程計算機系統時,事實上啟動了兩個程式:一個是Telnet客戶程式,運行在本地主機上;另一個是Telnet伺服器程式,它運行在要登錄的遠程計算機上。
本地主機上的Telnet客戶程式主要完成以下功能:
  • 建立與遠程伺服器的TCP聯接。
  • 從鍵盤上接收本地輸入的字元。
  • 將輸入的字元串變成標準格式並傳送給遠程伺服器。
  • 從遠程伺服器接收輸出的信息。
  • 將該信息顯示在本地主機螢幕上。
遠程主機的“服務”程式通常被暱稱為“精靈”,它平時不聲不響地守候在遠程主機上,一接到本地主機的請求,就會立馬活躍起來,並完成以下功能:
  • 通知本地主機,遠程主機已經準備好了。
  • 等候本地主機輸入命令。
  • 對本地主機的命令作出反應(如顯示目錄內容,或執行某個程式等)。
  • 把執行命令的結果送回本地計算機顯示。
  • 重新等候本地主機的命令。
在Internet中,很多服務都採取這樣一種客戶/伺服器結構。對使用者來講,通常只要了解客戶端的程式就可以了。

安全隱患

雖然Telnet較為簡單實用也很方便,但是在格外注重安全的現代網路技術中,Telnet並不被重用。原因在於Telnet是一個明文傳送協定,它將用戶的所有內容,包括用戶名和密碼都明文在網際網路上傳送,具有一定的安全隱患,因此許多伺服器都會選擇禁用Telnet服務。如果我們要使用Telnet的遠程登錄,使用前應在遠端伺服器上檢查並設定允許Telnet服務的功能。

協定

我們知道Telnet伺服器軟體是我們最常用的遠程登錄伺服器軟體,是一種典型的客戶機/伺服器模型的服務,它套用Telnet協定來工作。那么,什麼是Telnet協定?它都具備哪些特點呢?

基本內容

Telnet是位於OSI模型的第7層---套用層上的一種協定,是一個通過創建虛擬終端提供連線到遠程主機終端仿真的TCP/IP協定。這一協定需要通過用戶名和口令進行認證,是Internet遠程登入服務的標準協定。套用Telnet協定能夠把本地用戶所使用的計算機變成遠程主機系統的一個終端。它提供了三種基本服務:
1)Telnet定義一個網路虛擬終端為遠程系統提供一個標準接口。客戶機程式不必詳細了解遠程系統,他們只需構造使用標準接口的程式;
2)Telnet包括一個允許客戶機和伺服器協商選項的機制,而且它還提供一組標準選項; .
3)Telnet對稱處理連線的兩端,即Telnet不強迫客戶機從鍵盤輸入,也不強迫客戶機在螢幕上顯示輸出。

適應異構

為了使多個作業系統間的Telnet互動操作成為可能,就必須詳細了解異構計算機和作業系統。比如,一些作業系統需要每行文本用ASCⅡ回車控制符(CR)結束,另一些系統則需要使用ASCⅡ換行符(LF),還有一些系統需要用兩個字元的序列回車-換行(CR-LF);再比如,大多數作業系統為用戶提供了一個中斷程式運行的快捷鍵,但這個快捷鍵在各個系統中有可能不同(一些系統使用CTRL+C,而另一些系統使用ESCAPE)。如果不考慮系統間的異構性,那么在本地發出的字元或命令,傳送到遠地並被遠程系統解釋後很可能會不準確或者出現錯誤。因此,Telnet協定必須解決這個問題。 為了適應異構環境,Telnet協定定義了數據和命令在Internet上的傳輸方式,此定義被稱作網路虛擬終端NVT(Net Virtual Terminal)。它的套用過程如下: 對於傳送的數據:客戶機軟體把來自用戶終端的按鍵和命令序列轉換為NVT格式,並傳送到伺服器,伺服器軟體將收到的數據和命令,從NVT格式轉換為遠地系統需要的格式; 對於返回的數據:遠地伺服器將數據從遠地機器的格式轉換為NVT格式,而本地客戶機將接收到的NVT格式數據再轉換為本地的格式。 對於NVT格式的詳細定義,有興趣的朋友可以去查找相關資料。

傳送遠程命令

我們知道絕大多數作業系統都提供各種快捷鍵來實現相應的控制命令,當用戶在本地終端鍵入這些快捷鍵的時候,本地系統將執行相應的控制命令,而不把這些快捷鍵作為輸入。那么對於Telnet來說,它是用什麼來實現控制命令的遠程傳送呢? Telnet同樣使用NVT來定義如何從客戶機將控制功能傳送到伺服器。我們知道ASCⅡ字元集包括95個可列印字元和33個控制碼。當用戶從本地鍵入普通字元時,NVT將按照其原始含義傳送;當用戶鍵入快捷鍵(組合鍵)時,NVT將把它轉化為特殊的ASCⅡ字元在網路上傳送,並在其到達遠地機器後轉化為相應的控制命令。
將正常ASCⅡ字元集與控制命令區分的原因:
1)這種區分意味著Telnet具有更大的靈活性:它可在客戶機與伺服器間傳送所有可能的ASCⅡ字元以及所有控制功能;
2)這種區分使得客戶機可以無二義性的指定信令,而不會產生控制功能與普通字元的混亂。 .

數據流向

上面我們提到過將Telnet設計為套用級軟體有一個缺點,那就是:效率不高。這是為什麼呢?下面給出Telnet中的數據流向:
數據信息被用戶從本地鍵盤鍵入並通過作業系統傳到客戶機程式,客戶機程式將其處理後返回作業系統,並由作業系統經過網路傳送到遠程機器,遠程作業系統將所接收數據傳給伺服器程式,並經伺服器程式再次處理後返回到作業系統上的偽終端入口點,最後,遠程作業系統將數據傳送到用戶正在運行的應用程式,這便是一次完整的輸入過程;輸出將按照同一通路從伺服器傳送到客戶機。 因為每一次的輸入和輸出,計算機將切換進程環境好幾次,這個開銷是很昂貴的。還好用戶的鍵入速率並不算高,這個缺點我們仍然能夠接受。 .

強制命令

我們應該考慮到這樣一種情況:假設本地用戶運行了遠地機器的一個無休止循環的錯誤命令或程式,且此命令或程式已經停止讀取輸入,那么作業系統緩衝區可能因此而被占滿,如果這樣,遠程伺服器也無法再將數據寫入偽終端,並且最終導致停止從TCP連線讀取數據,TCP連線的緩衝區最終也會被占滿,從而導致阻止數據流流入此連線。如果以上事情真的發生了,那么本地用戶將失去對遠程機器的控制。
為了解決此問題,Telnet協定必須使用外帶信令以便強制伺服器讀取一個控制命令。我們知道TCP用緊急數據機制實現外帶數據信令,那么Telnet只要再附加一個被稱為數據標記(date mark)的保留八位組,並通過讓TCP傳送已設定緊急數據比特的報文段通知伺服器便可以了,攜帶緊急數據的報文段將繞過流量控制直接到達伺服器。作為對緊急信令的相應,伺服器將讀取並拋棄所有數據,直到找到了一個數據標記。伺服器在遇到了數據標記後將返回正常的處理過程。
由於Telnet兩端的機器和作業系統的異構性,使得Telnet不可能也不應該嚴格規定每一個telnet連線的詳細配置,否則將大大影響Telnet的適應異構性。因此,Telnet採用選項協商機制來解決這一問題。
Telnet選項的範圍很廣:一些選項擴充了大方向的功能,而一些選項制涉及一些微小細節。例如:有一個選項可以控制Telnet是在半雙工還是全雙工模式下工作(大方向);還有一個選項允許遠地機器上的伺服器決定用戶終端類型(小細節)。
Telnet選項的協商方式也很有意思,它對於每個選項的處理都是對稱的,即任何一端都可以發出協商申請;任何一端都可以接受或拒絕這個申請。另外,如果一端試圖協商另一端不了解的選項,接受請求的一端可簡單的拒絕協商。因此,有可能將更新,更複雜的Telnet客戶機伺服器版本與較老的,不太複雜的版本進行互動操作。如果客戶機和伺服器都理解新的選項,可能會對互動有所改善。否則,它們將一起轉到效率較低但可工作的方式下運行。所有的這些設計,都是為了增強適應異構性,可見Telnet的適應異構性對其的套用和發展是多么重要。
上面討論了一些原理方面的東西,雖然我們在Telnet的使用過程中很難接觸到這一層面,但我認為了解這些是有意義的,它會給我們帶來許多啟示。下面讓我們來看看Win2000的Telnet服務。

子選項協商

有些選項不是僅僅用“激活”或“禁止”就能夠表達的。指定終端類型就是一個例子,客戶進程必須傳送用一個A S C I I字元串來表示終端類型。為了處理這種選項,我們必須定義子選項協商機制。
在R F C 1 0 9 1 [ VanBokkelen 1989]中定義了如何表示終端類型這樣的子選項協商機制。首先連線的某一方(通常是客戶進程)傳送3個位元組的字元序列來請求激活該選項。
<IAC,WILL,24>
這裡的2 4(十進制)是終端類型選項的I D號。如果收端(通常是伺服器進程)同意,那么回響數據是:
<IAC,DO,24>
然後伺服器進程再傳送如下的字元串:
<IAC,SB,24,1,IAC,SE>
該字元串詢問客戶進程的終端類型。其中S B是子選項協商的起始命令標誌。下一個位元組的“2 4”代表這是終端類型選項的子選項(通常S B後面的選項值就是子選項所要提交的內容)。下一個位元組的“ 1”表示“傳送你的終端類型”。子選項協商的結束命令標誌也是I A C,就像S B是起始命令標誌一樣。如果終端類型是i b m p c,客戶進程的回響命令將是:
第4個位元組“0”代表“我的終端類型是”(在Assigned Numbers RFC文檔中有正式的關於終端類型的數值定義,但是最起碼在U n i x系統之間,終端類型可以用任何對方可理解的數據進行表示。只要這些數據在t e r m c a p或t e r m i n f o資料庫中有定義)。在Te l n e t子選項協商過程中,終端類型用大寫表示,當伺服器收到該字元串後會自動轉換為小寫字元。

配置

其實從套用層面上,Win2000的Telnet服務並沒有什麼可說的,絕大部分內容你都可以從HELP檔案中得到,我在此只是把它稍微整理一下而已。 Win2000為我們提供了Telnet客戶機和伺服器程式:Telnet.exe是客戶機程式(Client),tlntsvr.exe是伺服器程式(server),同時它還為我們提供了Telnet伺服器管理程式tlntadmn.exe
Windows 2000 默認安裝了 Telnet 服務,但是並沒有默認啟動。下面給出HELP檔案中 Telnet 服務的一部分默認設定:
AllowTrustedDomain:是否允許域用戶訪問。默認值是1,允許信任域用戶訪問。可以改為0: 不允許域用戶訪問(只允許本地用戶)。
DefaultDomain:可以對與該計算機具有信任關係的任何域設定。默認值是"."。
DefaultShell:顯示 shell 安裝的路徑位置。默認值是:%systemroot%\System32\Cmd.exe /q /k
MaxFailedLogins:在連線終止之前顯示嘗試登錄失敗的最大次數。默認是3。
LoginScript:顯示 Telnet伺服器登錄腳本的路徑位置。默認的位置就是“%systemroot%\System32\login.cmd”,你可以更改腳本內容,這樣登錄進Telnet的歡迎螢幕就不一樣了。
NTLM:NTLM身份驗證選項。默認是2。可以有下面這些值:
0: 不使用 NTLM身份驗證
1: 先嘗試 NTLM身份驗證,如果失敗,再使用用戶名和密碼。
2: 只使用 NTLM身份驗證
TelnetPort:顯示 telnet伺服器偵聽 telnet 請求的連線埠。默認是:23。你也可以更改為其他連線埠。
以上各項設定你可以使用tlntadmn.exe(Telnet伺服器管理程式)來進行非常方便的配置,配置後需要重新啟動Telnet服務。如圖1

NTLM

提到了telnet就不能不提NTLM,我想這也是讓入侵者最為頭痛的一件事,哪怕你獲得了管理員帳號和密碼,想簡單通過NTLM也並非易事,況且win2000中的telnet默認僅以NTLM方式驗證身份,這就讓我們不得不關注NTLM這個東東,那么什麼是NTLM呢?
早期的SMB協定在網路上明文傳輸口令,後來出現了"LAN Manager Challenge/Response"驗證機制,簡稱LM,它十分簡單以至很容易被破解,微軟隨後提出了WindowsNT挑戰/回響驗證機制,即NTLM。現在已經有了更新的NTLMv2以及Kerberos驗證體系。

流程

1.客戶端首先在本地加密當前用戶的密碼成為密碼散列
2.客戶端伺服器傳送自己的帳號,這個帳號是沒有經過加密的,明文直接傳輸
3.伺服器產生一個16位的隨機數字傳送客戶端,作為一個 challenge(查問口令;盤問)
4.客戶端再用加密後的密碼散列來加密這個 challenge ,然後把這個返回給伺服器。作為 response(回響)
5.伺服器把用戶名、給客戶端的challenge 、客戶端返回的 response 這三個東西,傳送域控制器
6.域控制器用這個用戶名在 SAM密碼管理庫中找到這個用戶的密碼散列,然後使用這個密碼散列來加密 challenge。
7.域控制器比較兩次加密的 challenge ,如果一樣,那么認證成功。
從上面的過程我們可以看出,NTLM是以當前用戶的身份向Telnet伺服器傳送登錄請求的,而不是用你掃到的對方管理員的帳戶和密碼登錄,顯然,你的登錄將會失敗。舉個例子來說,你家的機器名為A(本地機器),你入侵的機器名為B(遠地機器),你在A上的帳戶是xinxin,密碼是1234,你掃到B的管理員帳號是Administrator,密碼是5678,當你想Telnet到B時,NTLM將自動以當前用戶的帳號和密碼作為登錄的憑據來進行上面的7項操作,即用xinxin和1234,而並非用你掃到的Administrator和5678,且這些都是自動完成的,根本不給你插手的機會,因此你的登錄操作將失敗。

顯示

由於Telnet伺服器對NTLM的使用有3個選項,所以當你Telnet遠地機器時,會顯示下面情況中的一種:
1)身份驗證選項=0時
=====================================
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
password:
\為0時不使用NTML身份驗證,直接輸入用戶名和密碼,比如你可以輸入掃到的Administrator和5678
2)身份驗證選項=1時
=====================================
NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password
Microsoft (R) Windows (TM) Version 5.00 (Build 2195)
Welcome to Microsoft Telnet Service
Telnet Server Build 5.00.99201.1
login:
password:
\先嘗試 NTLM 身份驗證,如果失敗,再使用用戶名和密碼,其實這種方式對於我們來說,與上一種方式沒什麼區別
3)身份驗證選項=2時
=====================================
NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password
Server allows NTLM authentication only
Server has closed connection
遺失對主機的連線。
C:\>
\仔細看看上面的顯示,根本沒有給你輸入用戶名和密碼的機會,直接下線,掃到了密碼也是白掃
所以對於入侵者來說,NTLM是橫在我們面前的一座大山,必須要除掉它,一般我們有如下幾種方法:
1通過修改遠程註冊表更改telnet伺服器配置,將驗證方式從2改為1或0;
2使用NTLM.exe,上傳後直接運行,可將telnet伺服器驗證方式從2改為1;
3在本地建立掃描到的用戶,以此用戶身份開啟telnet客戶機並進行遠程登錄
4使用軟體,比如opentelnet.exe(需要管理員許可權且開啟IPC管道)
5使用腳本,如RTCS,(需要管理員許可權但不依賴IPC管道)
基本上是以上的5種,其中後兩種是我們比較常用的開telnet的手法,而且使用方法十分簡單,命令如下:
OpenTelnet.exe \server username password NTLMAuthor telnetport
OpenTelnet.exe \伺服器地址 管理員用戶名 密碼 驗證方式(填0或1) telnet連線埠
cscript RTCS.vbe targetIP username password NTLMAuthor telnetport
cscript RTCS.vbe <;目標IP> <;管理員用戶名> <;密碼> <;驗證方式> <tlnet連線埠>

遠程登錄

Telnet用於Internet的遠程登錄.它可以使用戶坐在已上網的電腦鍵盤前通過網路進入的另一台電腦已上網的電腦,使它們互相連通.這種連通可以發生在同一房間裡面的電腦或是在世界各範圍內已上網的電腦.習慣上來說,被連通計算機,並且為網路上所有用戶提供服務的計算機稱之為伺服器(Server),而自己在使用的機器稱之為客戶機(Client).一旦連通後,客戶機可以享有伺服器所提供的一切服務.用戶可以運行通常的互動過程(註冊進入,執行命令),也可以進入很多的特殊的伺服器如尋找圖書索引.網上不同的主機提供的各種服務都可以被使用.
Telnet
(telnet) (n.) A terminal emulation program for TCP/IP networks such as the Internet. The Telnet program runs on your computer and connects your PC to a server on the network. You can then enter commands through the Telnet program and they will be executed as if you were entering them directly on the server console. This enables you to control the server and communicate with other servers on the network. To start a Telnet session,you must log in to a server by entering a valid username and password. Telnet is a common way to remotely control Web servers.
Telnet命令
使用Telnet的最簡單的方法是在命令行鍵入:
%telnet remote-computer-name(or IP)
這裡使用的是UNⅨ系統的C shell,因為命令的選擇是百分號"%".如果使用的是其他的計算機系統(比如:Dos,VAX/VMS,Macintosh)命令,只在細節上有些差異,而在本質上是大同小異的,下面舉一個基本的Telnet使用例子:
telnet porky.math.
Trying 129.237.128.11…
Connected to porky.math
Escape character is '^]'.
SunOS UNⅨ(porky)
login:wl
password:xxxxxxx
Last Login: Tue Mar 28 05:35 from ns
SunOS Release 4.1.3_U1(SLIPPERY1) #3: Sun Nov 20 23:47:23 CST 1999
No match.
if:Expression syntax.
porky/serv/wl%ls
hello
porky/serv/wl%
porky/serv/wl%cd/
porky/%ls
Mail/ dev/ home/ mnt/ sbin/
usr/
News/ domain/ home1/ net/ serv/
var/
Record/ etc/ kadb* pcfs/ sys@
vmunix*
bin@ export/ lib@ print tmp/
boot gofer/ lost+found/ record tmp_mnt/
porky/%
上述的例子是用Telnet尋找一個叫做porky.math的遠程計算機.在找到這台計算機以後,已上網的用戶的計算機就成為它的一個終端.這時螢幕出現的對話與用戶在host上連線的終端一樣。用戶必須註冊進入(login)和註銷推出(logout).在login後,可給出任何適合遠程系統的命令,因為"面向的是UNⅨ系統,所有標準的UNⅨ命令(想ls和pwd)都可以使用.當用戶從遠程系統退出時,也就從Telnet退出,便可以運行自己的本地系統.實際上,Telnet是一個可以註冊進入遠程計算機系統的工具.

命令

help 在線上求助
open後接IP位址或域名即可進行遠程登錄
close 正常結束遠程會話,回到命令方式
display 顯示工作參數
mode 進入行命令或字元方式
send 向遠程主機傳送特殊字元(鍵入send?可顯示詳細字元)
set 設定工作參數(鍵入set?可顯示詳細參數)
status 顯示狀態信息
toggle 改變工作參數(鍵入toggle?可顯示詳細參數)
^]換碼符(escape character), 在異常情況下退出會話,回到命令方式
quit退出telnet,返回本地機
z使telnet進入暫停狀態
<cr>;結束命令方式,返回telnet的會話方式
telnet.exe 的安全問題
建議修改許可權,刪除所有的用戶只保存Administrators 和SYSTEM為所有許可權

常見問題

1. Telnet是什麼?答:Telnet是teletype network的縮寫,現在已成為一個專有名詞,表示遠程登錄協定和方式,分為Telnet客戶端和Telnet伺服器程式. Telnet可以讓用戶在本地Telnet客戶端上遠端登錄到遠程Telnet伺服器上.
2. Telnet有什麼作用?答: Telnet提供遠程登錄功能,使得用戶在本地主機上運行Telnet客戶端,就可登錄到遠端的Telnet伺服器. 在本地輸入的命令可以在伺服器上運行,伺服器把結果返回到本地,如同直接在伺服器控制台上操作. 這樣就可以在本地遠程操作和控制伺服器.
3. Telnet工作模式有哪些?答:Telnet共有四種工作模式:
1) 半雙工:客戶端在接收用戶輸入之前,必須從伺服器進程獲得GO AHEAD (G A)命令. 現在已很少使用.
2)一次一個字元:客戶端把用戶輸入的每個字元都單獨傳送給伺服器,伺服器回顯字元給客戶端. 是目前大多數Telnet程式的默認方式. SUPPRESS GO AHEAD選項和ECHO選項必須同時有效.
3) 準行方式(kludge line mode): 用戶每鍵入一行信息,客戶端向伺服器傳送一次. 當上面兩個選項其中之一無效時採用此模式.
4) 行方式:類似準行方式,糾正了準行方式的缺點. 較新的Telnet程式支持這種方式.
4. SUPPRESS GO AHEAD和ECHO選項作用和意義是什麼
答: 如果激活"GO AHEAD"選項,則是一個半雙工模式,為了工作在“一次一個字元”,需要抑制此選項,即激活"SUPPRESS GO AHEAD".ECHO選項使回顯功能有效.
兩者同時激活表示採用“一次一個字元” 工作方式.
5. 為何有時無法成功建立Telnet連線? 如何解決
答:如果伺服器不在23號連線埠,而在其它連線埠等待用戶連線,此時Telnet將失敗,客戶端需要更改連線的連線埠.
另外Telnet是一個明文傳送協定,為了安全起見,許多防火牆將其禁用,如果需要進行遠程登錄,可以設定防火牆以允許Telnet.
6. Telnet是明文傳送的,具有安全隱患,請問該怎么辦
答: Telnet將用戶的所有內容,包括用戶名和密碼都明文在網際網路上傳送,具有安全隱患,因此許多伺服器都禁用Telnet服務. 但有時又需要遠程登錄到伺服器上進行操作,此時可以選擇具有加密功能的SSH(Secure Shell)程式.

相關詞條

熱門詞條

聯絡我們