驗(yàn)之電腦telnet失敗怎么辦
#春日生活打卡季#
背景:
疫情居家辦公期間,需要遠(yuǎn)程辦公,但是要用公司的內(nèi)網(wǎng),一telnet目標(biāo)后頁(yè)面報(bào)錯(cuò)【正在連接 XX.XX.XX.XX....無(wú)法打開(kāi)到主機(jī)的連接。在端口 XX:連接失敗】
解決辦法:
網(wǎng)上查了之后說(shuō),可以先看看是不是自己的問(wèn)題,先自己機(jī)子telnet一下看看,而我telnet之后報(bào)錯(cuò)【‘telnet’不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件】
一般看到這種提示,都是代表這個(gè)命令沒(méi)有放在這個(gè)路徑下導(dǎo)致的,但這邊不是,它是因?yàn)槲覀儧](méi)有開(kāi)啟telnet客戶端,開(kāi)啟步驟為【控制面板--程序--程序和功能--啟用或關(guān)閉Windows功能--勾選Telnet客戶端-確定】,勾選這個(gè)設(shè)置后不需要重啟就可以生效,但是關(guān)閉這個(gè)設(shè)置的話是需要重啟的。
勾選了telnet客戶端之后,再次對(duì)自己的機(jī)子進(jìn)行telnet,還是報(bào)錯(cuò),但這次報(bào)的錯(cuò)就跟一開(kāi)始的一樣了【正在連接 127.0.0.1....無(wú)法打開(kāi)到主機(jī)的連接。在端口 23:連接失敗】
跟一開(kāi)始的問(wèn)題報(bào)錯(cuò)接近了的話,問(wèn)題就好定位解決了,而這個(gè)報(bào)錯(cuò)端口23,不用糾結(jié)了,就是telnet服務(wù)端專用的,現(xiàn)在這個(gè)服務(wù)端沒(méi)開(kāi),所以連接失敗,那我們?cè)诠催x的時(shí)候也沒(méi)有看到telnet服務(wù)端,怎么呢?網(wǎng)上查了說(shuō)是因?yàn)榘踩嵌龋源罄芯桶逊?wù)端的設(shè)置隱藏不給用了,而我這邊是通過(guò)再把服務(wù)端裝回來(lái)解決了這個(gè)問(wèn)題,操作步驟如下:
1、進(jìn)入這個(gè)網(wǎng)站http://www.goodtechsys.com/
2、在Telnet Server這邊點(diǎn)擊Download,就可以跳轉(zhuǎn)到下載頁(yè)面
3、填寫(xiě)它要求的必填項(xiàng),這邊用的不是真實(shí)的也可以提交過(guò)去,它不校驗(yàn)的
4、下載成功之后,執(zhí)行TelnetdSetup.exe進(jìn)行安裝,通過(guò)【win+r轉(zhuǎn)services.msc】,校驗(yàn)是否安裝成功,就是看到這邊有增加了這個(gè)服務(wù)就代表安裝成功。
5、如果這個(gè)服務(wù)的狀態(tài)是未啟動(dòng),就需要先啟動(dòng)
6、這個(gè)時(shí)候再次telnet一下本機(jī),就會(huì)看到進(jìn)到這個(gè)標(biāo)題頭為T(mén)elnet 127.0.0.1的頁(yè)面,這個(gè)時(shí)候就說(shuō)明我們的Telnet服務(wù)開(kāi)啟成功,并且這臺(tái)機(jī)器上Telnet服務(wù)端和Telnet客戶端都是有的。
7、最后,如果我們telnet其他人指定的地址還是不通的話,可以直接再telnet一個(gè)平常會(huì)用到的網(wǎng)頁(yè),來(lái)確定到底是不是自己這端的問(wèn)題,百度,這邊的話要寫(xiě)下百度的端口80,不然還是會(huì)報(bào)錯(cuò),加與不加的報(bào)錯(cuò)截圖如下:
其他:
像這種telnet成功之后,進(jìn)入對(duì)應(yīng)頁(yè)面后,怎么不關(guān)閉cmd窗口,直接退出頁(yè)面呢?
我這邊試了網(wǎng)上的方法,可能換代更新了,我這邊需要操作兩步才能完全退出telnet頁(yè)面,先使用‘CTRL+]’,然后在出現(xiàn)Microsoft Telnet>字樣的時(shí)候再輸入quit,就可以完全退出telnet連接頁(yè)面
注:
1、這個(gè)服務(wù)端的包也只能免費(fèi)使用30天,對(duì)我這種居家辦公不會(huì)超過(guò)30天的來(lái)說(shuō)是足夠的,如果有更長(zhǎng)時(shí)間要求的,就需要找其他的方法了。
2、我這個(gè)電腦是惠普的WIN10家庭中文版,AMD處理器,64位操作系統(tǒng),如果有跟我一樣配置的,就可以不用猶豫直接先參考操作看看。
3、按照安全性角度考慮,我們?nèi)绻挥胻elnet了,就記得去把服務(wù)給關(guān)了,免得泄露自身機(jī)器上的信息。
4、我遇到服務(wù)端剛下載并安裝好了,然后服務(wù)也是啟動(dòng)的狀態(tài),但是就是一直telnet不通,廢了好多時(shí)間,這個(gè)時(shí)候是手動(dòng)cmd里面執(zhí)行了啟用服務(wù)的命令才成功的,所以如果剛下好用不了的就注意一下,手動(dòng)命令啟動(dòng)一下,不是剛下好的,遇到這種情況也試一下,命令是【start telnetd】,這邊我沒(méi)有另外做設(shè)置,所以要先切換到對(duì)應(yīng)的路徑用這個(gè)命令才能啟用成功
這邊的GoodTech Telnet Server for Windows NT/2000/XP/2003詳情頁(yè)里雖然寫(xiě)著服務(wù)名稱是TELNETD,但是跟通過(guò)命令里啟用的效果不相通。所以要想telnet通,得手動(dòng)確認(rèn)下兩邊都是啟用的。可能是我知識(shí)比較淺,不太明白這邊是不是就是這樣的,還是說(shuō)因?yàn)檫@個(gè)是另外開(kāi)發(fā)提供的,所以目前沒(méi)有實(shí)現(xiàn)兩邊自動(dòng)同步開(kāi)啟的操作。
#疫情##居家辦公#
本原理
Telnet 協(xié)議簡(jiǎn)介
Telnet 是一個(gè)簡(jiǎn)單的遠(yuǎn)程終端協(xié)議。用戶用 Telnet 就可種子其所在地通過(guò) TCP 連接注冊(cè)(即登錄)到遠(yuǎn)地的另一個(gè)主機(jī)上(使用主機(jī)名或 IP 地址)。在終端使用者的電腦上使用telnet 程序,用它連接到服務(wù)器。終端使用者可以在 telnet 程序中輸入命令,這些命令會(huì)在服務(wù)器上運(yùn)行,就像直接在服務(wù)器的控制臺(tái)上輸入一樣。可以在本地就能控制服務(wù)器。
Telnet 客戶進(jìn)程和服務(wù)器進(jìn)程一般只屬于用戶應(yīng)用程序, 終端用戶通過(guò)鍵盤(pán)輸入的數(shù)據(jù)送給操作系統(tǒng)內(nèi)核的終端驅(qū)動(dòng)進(jìn)程,由終端驅(qū)動(dòng)進(jìn)程把用戶的輸入送到 Telnet 客戶進(jìn)程,Telnet 客戶進(jìn)程把收到的數(shù)據(jù)傳送給 TCP,由 TCP 負(fù)責(zé)在客戶端和服務(wù)器端建立 TCP 連接,數(shù)據(jù)就通過(guò) TCP 連接送到了服務(wù)器端,服務(wù)器的 TCP 層將收到的數(shù)據(jù)送到相應(yīng)的應(yīng)用層Telnet 服務(wù)器進(jìn)程。
Telnet 協(xié)商實(shí)例分析
Telnet 選項(xiàng)協(xié)商
telnet 進(jìn)行連接的雙方首先進(jìn)行選項(xiàng)協(xié)商。協(xié)商 Telnet 工作的一些環(huán)境、工作方式等。
對(duì)于任何給定的選項(xiàng),連接的任何一方都可以發(fā)送下面 4 種請(qǐng)求的任意一個(gè)。
(1) WILL :發(fā)送方本身將激活選項(xiàng)
(2) DO :發(fā)送方想叫接收方激活選項(xiàng)
(3) WON
’T: 發(fā)送方本身禁止選項(xiàng)
( 4) DON’T :發(fā)送方想讓接收方去去禁止選項(xiàng)
選項(xiàng)協(xié)商需要 3 個(gè)字節(jié):一個(gè) IAC 字節(jié),接著一個(gè)字節(jié)是 WILL、DO、 WON’T 或 DON’T這 4 個(gè)中的一個(gè),最后一個(gè)ID字節(jié)指明要激活或禁止的選項(xiàng)。
協(xié)商中的終端類型、終端類型速率等的協(xié)商、需要附加的信息,比如終端類型和協(xié)商需要附加字符來(lái)表明終端的類型, 終端的速率需要附加數(shù)字來(lái)表明終端的速率, 這樣需要進(jìn)一步附加數(shù)字或字符串的協(xié)商,要用子協(xié)商來(lái)定義。
任務(wù)描述與任務(wù)要求
任務(wù)描述
(1) 用 Wire shark 捕獲網(wǎng)絡(luò)中的數(shù)據(jù)流量,觀察 Telnet 分組格式。
(2) 觀察、分析 Telnet 的請(qǐng)求和響應(yīng)分組內(nèi)容。
(3) 分析 Telnet 整個(gè)協(xié)商過(guò)程。
任務(wù)要求
(1) 掌握 Telnet 協(xié)議的原理,理解 Telnet 協(xié)議的協(xié)商過(guò)程。
(2) 步驟明確、圖表清楚。
(3) 對(duì)圖中說(shuō)明部分要用紅色圓或紅色線標(biāo)明,并進(jìn)行詳細(xì)文字說(shuō)明。
實(shí)驗(yàn)步驟
實(shí)驗(yàn)環(huán)境
宿主機(jī) Windows 8 企業(yè)版 64 bit
Telnet 服務(wù)端 Windows XP
宿主機(jī)安裝 Wiresahrk ,均開(kāi)啟 Telnet 服務(wù)
虛擬機(jī)網(wǎng)卡選擇橋接
Telnet 服務(wù)的建立
開(kāi)啟虛擬機(jī)和 Wireshark
虛擬機(jī)獲得的 IP 地址為: 192.168.199.134
網(wǎng)卡 MAC地址 :08:00:27:a0:9f:f8
宿主機(jī) IP 地址是 192.168.199.154
網(wǎng)卡 MAC地址 :00:26:4d:a1:59:de
客戶端主機(jī)啟動(dòng) cmd鍵入命令,輸入 Telnet 命令,建立連接。
協(xié)議分析
1、建立連接 (TCP三次握手 )
elnet 客戶端開(kāi)始工作 , 首先是與虛擬機(jī)中的服務(wù)端程序建立 TCP連接 , 從抓取的數(shù)據(jù)包來(lái)看 , 首先關(guān)于本次分析的數(shù)據(jù)包是典型的 TCP三次握手 , 如圖所示 :
主機(jī)發(fā)送一個(gè)連接請(qǐng)求到虛擬機(jī) , 第一個(gè) TCP包的格式如圖所示 :
其中以太網(wǎng) v2 頭是由數(shù)據(jù)鏈路層加上去的 :
1-6bytes 是目的地址 , 也即虛擬機(jī)的網(wǎng)卡 MAC,
7-12bytes 是源地址 , 也即宿主機(jī) MAC.
13-14(0x0800) 是上層協(xié)議 , 這里是 IP
第二段是 ipv4 的報(bào)文 , 網(wǎng)際協(xié)議 IP 是工作在網(wǎng)絡(luò)層 , 也就是數(shù)據(jù)鏈路層的上層 ,上圖數(shù)據(jù)區(qū)選中部分就是 ipv4 數(shù)據(jù) , 其格式為 :
可以非常清楚的看到 IPv4 報(bào)文格式在實(shí)際中式如何表現(xiàn)出來(lái)的 .
值得注意的是 ,IPv4 報(bào)文中的源地址和目的地址是 ip 地址 , 版本號(hào)TCP是 6, 標(biāo)志字段是 010 就是禁止下層分段 , 且是完整的報(bào)文第三段是 TCP報(bào)文 , 從上面兩個(gè)可以知道 , 這個(gè)TCP包被層層包裝 , 經(jīng)過(guò)下面一層就相應(yīng)的包裝一層 , 第三段是經(jīng)過(guò)傳輸層的數(shù)
據(jù) ,TCP報(bào)文的格式為 :
這里說(shuō)明了TCP的源端口52456也就是宿主機(jī)建立連接開(kāi)出來(lái)的端口 , 目的端口23顯然是 telnet 服務(wù)默認(rèn)端口. Acknowledgment number確認(rèn)序號(hào) 4bytes, 為 0, 因?yàn)檫€是第一個(gè)握手包 . Header Length 頭長(zhǎng)度 32 字節(jié) , 滑動(dòng)窗口大小 8192 字節(jié) (8MB), 校驗(yàn)和 , 緊急指針為 0. Options 選項(xiàng) 12 字節(jié) , 其中包含最大傳輸單元 MTU默認(rèn)是 1460bytes.
第二個(gè) TCP數(shù)據(jù)包 , 它是一個(gè)來(lái)自虛擬機(jī)的應(yīng)答 , 按照三次握手的原則 , 這個(gè)數(shù)據(jù)包中 TCP報(bào)文確認(rèn)序號(hào)應(yīng)該等于上一個(gè)請(qǐng)求包中的同步序號(hào) +1
Pack1. Seq=0xa1 21 e2 42 Ack=0x00 00 00 00
Pack2. Seq=0x97 0f 37 11 Ack=0xa1 21 e2 43
顯然如 TCP規(guī)定的那樣工作 . Flags 字段中也顯示出兩個(gè)包的標(biāo)志位 . 第一個(gè)是SYN,第二個(gè)是 SYN,ACK.
那么顯然第三個(gè)包應(yīng)該這樣工作 :
Pack1. Seq=0xa1 21 e2 42 [Ack=0x00 00 00 00]
Pack2. Seq=0x97 0f 37 11 Ack=0xa1 21 e2 43
Pack3. [Seq=0xa1 21 e2 43] Ack=0x97 0f 37 12
主機(jī)收到 Pack2, 取出其中 Seq+1賦給 Ack, 然后給虛擬機(jī)做出應(yīng)答 .
總之,建立連接的步驟如下:
1.TCP連接的建立通過(guò)三次握手完成 .
2.TCP連接建立從傳輸層出發(fā) ,TCP報(bào)文包裝一個(gè) IP 報(bào)頭后形成一個(gè) IPv4 報(bào)文經(jīng)過(guò)網(wǎng)絡(luò)層 , 然后再包裝一個(gè)以太網(wǎng)幀頭形成一個(gè) Ethernet 幀通過(guò)數(shù)據(jù)鏈路層 .
3. 傳輸層的 TCP報(bào)文含有 Port 端口地址 ; 網(wǎng)絡(luò)層的 IP 報(bào)文中含有 IP 地址 ; 數(shù)據(jù)鏈路層中 Ethernet 幀含有 MAC地址 . 可見(jiàn)層層地址的不同之處 , 以及服務(wù)對(duì)象的不同之處 .
4. 三次握手規(guī)則 .
2、身份確認(rèn)
TCP連接建立后 , 主機(jī)和虛擬機(jī)相互交換一些信息 , 包括服務(wù)端的配置信息 , 主機(jī)的應(yīng)答 , 是否需要登錄等等 , 并且間斷使用 TCP包保持連接 .
當(dāng)雙方信息得到確認(rèn)后 , 虛擬機(jī)發(fā)送歡迎信息 (Welcome to Microsoft Telnet Service \r\n), 主機(jī)做出應(yīng)答 , 隨后又發(fā)送 (\n\rlogin:), 主機(jī)做出應(yīng)答 , 然后同步一次 , 主機(jī)在 CMD發(fā)生中斷 , 接收用戶輸入 , 虛擬機(jī)等待用戶輸入 .
主機(jī)輸入一個(gè)字符就發(fā)送一個(gè) Telnet 報(bào)文 , 然后遠(yuǎn)程返回一個(gè)應(yīng)答 , 之后主機(jī)發(fā)送一個(gè) TCP報(bào)文 .
三個(gè)一組 :Telnet Telnet TCP
當(dāng)然最后還有一個(gè)回車(chē)符 \r\n 也要產(chǎn)生三個(gè)數(shù)據(jù)包 . 回車(chē)符發(fā)送之后 , 遠(yuǎn)端立即回送一個(gè) \n\rpassword: 要求輸入密碼 .
密碼輸入過(guò)程略有不同 , 一個(gè)字符產(chǎn)生兩個(gè)包 , 一個(gè)是 Telnet, 一個(gè)是 TCP.密碼明文傳輸 .
3、命令執(zhí)行和響應(yīng)
完成密碼輸入后 , 服務(wù)端驗(yàn)證成功后發(fā)送一個(gè) Telnet 報(bào)文詢問(wèn)是否Do Terminal Type 開(kāi)始執(zhí)行命令行 , 主機(jī)客戶端回應(yīng) Will Terminal Type, 將要執(zhí)行 , 然后雙方發(fā)送 Suboption End 消息 , 之后服務(wù)端放送歡迎消息 , 如圖 :
那么之后就可以開(kāi)始輸入命令了 , 我輸入的是 net user\r\n
和之前輸入用戶名的傳輸方法基本一樣 . 兩個(gè) Telnet 一個(gè) TCP同步 .
完成輸入后回車(chē) , 服務(wù)端執(zhí)行命令并作出回應(yīng) :
可以看到 Administrator Guest HelpAssistant 等字樣 , 說(shuō)明正確返回了執(zhí)行結(jié)果。關(guān)閉CMD窗口時(shí) , 產(chǎn)生了4個(gè)TCP包 , 第一個(gè) TCP包設(shè)置標(biāo)志位 FIN告知本次通信結(jié)束 , 服務(wù)端回應(yīng)一個(gè)TCP,表示做好準(zhǔn)備關(guān)閉連接 , 隨后又發(fā)送一個(gè)TCP包設(shè)置 FIN 告知客戶端要準(zhǔn)備斷開(kāi)連接并斷開(kāi) , 客戶端應(yīng)答一個(gè)表示已斷開(kāi) . 通信結(jié)束 .
這是關(guān)閉 TCP連接的過(guò)程 .
總結(jié)
Telnet 服務(wù)是建立在 TCP基礎(chǔ)之上的 , 保證數(shù)據(jù)的準(zhǔn)確性。
從概念系列全球業(yè)務(wù)的最佳互聯(lián)網(wǎng)概念。
過(guò)console配置telnet登陸配置示例
組網(wǎng)需求
通過(guò)Console口首次登錄設(shè)備后,對(duì)設(shè)備進(jìn)行基本配置并配置通過(guò)Telnet遠(yuǎn)程登錄的0~4號(hào)用戶的級(jí)別為15級(jí),認(rèn)證方式為AAA認(rèn)證。
通過(guò)Console口進(jìn)行基本配置組網(wǎng)圖
配置思路
通過(guò)Console口登錄設(shè)備。
說(shuō)明:PC端的終端仿真軟件可以使用WindowsXP系統(tǒng)的超級(jí)終端或SecureCRT之類的終端仿真軟件對(duì)設(shè)備進(jìn)行基本配置。
操作步驟
PC1通過(guò)設(shè)備Console口登錄設(shè)備對(duì)設(shè)備進(jìn)行基本配置,本次配置命令相關(guān)參數(shù)作用可參考前面我們已經(jīng)講了的console詳細(xì)配置教程和telnet詳細(xì)配置教程。
# 設(shè)置系統(tǒng)的日期、時(shí)間和時(shí)區(qū)
<HUAWEI> clock timezone BJ add 08:00:00
<HUAWEI> clock datetime 20:10:00 2012-07-26
# 設(shè)置設(shè)備名稱和管理IP地址
<HUAWEI> system-view
[HUAWEI] sysname Server
[Server] interface ethernet 0/0/0
[Server-Ethernet0/0/0] ip address 10.137.217.177 24
[Server-Ethernet0/0/0] quit
# 假如設(shè)備的網(wǎng)關(guān)是10.137.217.1,配置設(shè)備的缺省路由。
[Server] ip route-static 0.0.0.0 0 10.137.217.1
# 設(shè)置Telnet用戶的級(jí)別和認(rèn)證方式
[Server] telnet server enable
[Server] user-interface vty 0 4
[Server-ui-vty0-4] user privilege level 15
[Server-ui-vty0-4] authentication-mode aaa
[Server-ui-vty0-4] quit
[Server] aaa
[Server-aaa] local-user admin1234 password irreversible-cipher Helloworld@6789
[Server-aaa] local-user admin1234 privilege level 15
[Server-aaa] local-user admin1234 service-type telnet
[Server-aaa] quit
驗(yàn)證配置結(jié)果
完成以上配置后,可以從PC2以Telnet方式或Web網(wǎng)管方式遠(yuǎn)程登錄設(shè)備。
# 進(jìn)入Windows XP的命令行提示符,并執(zhí)行相關(guān)命令,通過(guò)Telnet方式登錄設(shè)備。
C:\Documents and Settings\Administrator> telnet 10.137.217.177
回車(chē)后,在登錄窗口輸入用戶名和密碼,驗(yàn)證通過(guò)后,出現(xiàn)用戶視圖的命令行提示符。(以下顯示信息僅為示意)
Login authentication
Username:admin1234
Password:
Info: The max number of VTY users is 20, and the number
of current VTY users on line is 1.
The current login time is 2012-07-26 20:10:05+08:00.
<Server>
配置文件
設(shè)備的配置文件
#
sysname Server
#
clock timezone BJ add 08:00:00
#
aaa
local-user admin1234 password irreversible-cipher %@%@HW=5%Mr;:2)/RX$FnU1HLO%-TBMp4wn%;~\#%iAut}_~O%0L%@%@
local-user admin1234 privilege level 15
local-user admin1234 service-type telnet
#
interface Ethernet0/0/0
ip address 10.137.217.177 255.255.255.0
#
ip route-static 0.0.0.0 0.0.0.0 10.137.217.1
#
user-interface vty 0 4
authentication-mode aaa
user privilege level 15
#
return