1. 程式人生 > >Telnet 命令的使用與簡單原理

Telnet 命令的使用與簡單原理

最近遇到telnet這個命令,因為沒有接觸與使用過,感覺比較神祕,隨著一點一點的查詢,發現telnet也不過是一個與遠端伺服器進行通訊的工具。

Telnet最常見的是對伺服器的遠端登入,現在隨著各種遠端登入方式的普及,比如說遠端桌面連線或者一些其他現成的工具連線Linux或者Windows伺服器,telnet這種登入方式已經漸漸遠去。但是這裡也需要描述一下曾經telnet遠端登入的原理。

當你用Telnet登入進入遠端計算機系統時,你事實上啟動了兩個程式,一個 叫Telnet客戶程式,它執行在你的本地機上;另一個叫Telnet伺服器程式,它運 行在你要登入的遠端計算機上。本地機上的客戶程式要完成如下功能: 
1 、建立與伺服器的TCP 聯接; 
2 、從鍵盤上接收你輸入的字元; 
3 、把你輸入的字串變成標準格式並送給遠端伺服器; 
4 、從遠端伺服器接收輸出的資訊; 
5 、把該資訊顯示在你的螢幕上。 

遠端計算機的“服務”程式通常被稱為“精靈”,它平時不聲不響地候在遠端計算機上,一接到你的請求,就馬上活躍起來,並完成如下功能: 
1 、通知你的計算機,遠端計算機已經準備好了; 
2 、等候你輸入命令; 
3 、對你的命令作出反應(如顯示目錄內容,或執行某個程式等); 
4 、把執行命令的結果送回給你的計算機; 
5 、重新等候你的命令。 

這裡做一下簡單的總結,就是客戶機上裝一個telnet的客戶端,伺服器上裝一個telnet的監聽程式(精靈),一般這個監聽程式監聽的是23號埠。把這個過程簡單抽象一下,就是客戶端使用telnet工具傳送一個命令到伺服器端,伺服器端監聽到了之後就呼叫系統相關API來執行這些命令,從而達到了客戶機遠端操作伺服器主機的目的。

這裡需要注意一點,“把你輸入的字串變成標準格式並送給遠端伺服器”,指的是接受的字元,要按照一定的協議格式傳送到伺服器端,而這些字元是通過TCP連線傳輸的,跟Http有點像。Http是通過TCP連線傳輸字元,但是資料格式是HTTP協議規定的格式。簡單來說,所謂的HTTP協議,FTP協議,SMTP協議,就是各自規定了以什麼樣的資料包方式在網路上通過TCP管道傳輸資料。

其實,telnet是以TCP為基礎與伺服器進行通訊,所以它的功能遠不止遠端登入伺服器(遠端操縱伺服器)。不管是什麼協議,如果它基於 tcp/ip,那麼你使用 TcpClient(或者 Socket)連線它,然後發點資訊,依然能連通。Telnet可以看作是一種TCP的連線工具。

下邊這個例子就是使用telnet命令來跟郵件伺服器進行通訊。SMTP協議也是基於TCP協議,所以我們可以用telnet命令來與其通訊。(我們也可以自己通過C#的網路程式設計程式碼來通訊)。這裡先說一下SMTP的簡單原理。當客戶端要向伺服器端發郵件的時候,首先它會跟伺服器端建立TCP連線,然後與伺服器端傳送問候訊息進行握手確認,最後通過TCP管道來進行認證與郵件的傳送。整個過程是遵守SMPT資料傳輸方式協議的。


如下圖所示,這是在一臺Linux機器上向網際網路中的一臺郵件伺服器傳送郵件。首先輸入命令telnet smtp.wo.cn 25,這個命令是什麼意思呢?smtp.wo.cn是地址,在網際網路中會通過DNS伺服器轉換成IP地址,25指的是埠,也就是連線郵箱伺服器的25埠。(這裡也說明了telnet不僅僅侷限於與遠端登入的精靈監聽程式進行互動,那麼是23號埠,這個是25號,甚至可以與web伺服器的80號埠進行通訊)。這裡與郵件伺服器的連線連通後,發現伺服器回覆了一些問候資訊,這時只要向伺服器傳送郵件內容就可以了。有人這時候問,那這telnet傳輸字元用的格式還跟SMTP協議有關係嗎?個人認為是沒有關係的,因為SMTP協議或者說FTP協議,都是應用層的協議,規定了在TCP管道中如何傳輸,而telnet有自己怎麼在TCP管道中傳輸的規定,所以說,telnet與HTTP,ftp都是平級的關係。

相關推薦

Telnet 命令的使用簡單原理

最近遇到telnet這個命令,因為沒有接觸與使用過,感覺比較神祕,隨著一點一點的查詢,發現telnet也不過是一個與遠端伺服器進行通訊的工具。 Telnet最常見的是對伺服器的遠端登入,現在隨著各種遠端登入方式的普及,比如說遠端桌面連線或者一些其他現成的工具連線Linu

windbg sx命令簡單應用

0x00 sx 命令用於控制當異常或者事件發生時偵錯程式的行為。 Sx命令對應 windbg.exe(gui)的”debug”選單項中的”Event Filters”子選單項。 基本語法如下: 用法如下: Sx:列出所有支援的event與exception。 Sxr:恢復事件與異常處理

RocketMq學習筆記之一【常用操作命令簡單配置】

【為什麼使用RocketMq】 1、應用解耦 2、流量削峰 3、訊息分發 4、保證最終一致性 5、方便動態擴容 【RocketMq的角色】 producer consumer Broker NameServer broker配置檔案: #nameSer

telnet命令簡單使用

telnet 10.128.152.21 6379 為什麼需要telnet?   telnet就是檢視某個埠是否可訪問。我們在搞開發的時候,經常要用的埠就是 8080。那麼你可以啟動伺服器,

iptables簡單命令應用

iptables 簡單命令 應用 配置文件目錄bash> vim /etc/sysconfig/iptablesWEB服務器,開啟80端口.bash> iptables -A INPUT -p tcp --dport 80 -j ACCEPT郵件服務器,開啟一組端口.bash>

單點登錄原理簡單實現

title with 內部 resp 判斷 觀察 pac target sessionid 1、http無狀態協議 web應用采用browser/server架構,http作為通信協議。http是無狀態協議,瀏覽器的每一次請求,服務器會獨立處理,不與之前或之後的請求產生關聯

Admin(一)——Linux簡介簡單命令

linux centOS linux簡單命令 一、RHEL 與CentOS的區別 RHEL是紅帽公司提供的商業版Linux系統,若要獲取DVD鏡像、安全更新等技術服務支持,一般需要付費訂閱;不過構成RHEL系統的各種軟件包都是基於GPL開源協議免費發布的。 CentOS

strace命令ltrace的簡單學習

strace ./sysmagic 用來跟蹤sysmagic執行時的系統函式呼叫情況 [email protected]:~/Desktop/gdb$ strace ./sysmagic execve("./sysmagic", ["./sysmagic"

簡單的RPC原型實現原理

存在的問題 客戶端硬編碼服務端的地址 引入註冊中心,方便服務的註冊與發現 註冊中心記錄的資訊:服務地址列表&服務節點權重 Zookeeper節點型別 臨時節點:客戶端。。 服務登出: tomcat關閉:設定伺服器的權重為0,隔絕後續請求 等待30S,處理完請求。。。

Uboot命令實現實現原理

1.實現過程 (1)在./common資料夾下新建cmd_study.c,並在此檔案中新增如下內容 #include<common.h> #include<command.h> int do_study (cmd_tbl_t *cmdtp, int fl

單點登入原理簡單實現學習

一、單系統登入機制 1、http無狀態協議   web應用採用browser/server架構,http作為通訊協議。http是無狀態協議,瀏覽器的每一次請求,伺服器會獨立處理,不與之前或之後的請求產生關聯,這個過程用下圖說明,三次請求/響應對之間沒有任何聯絡   但這也同時意味著

tomcat原理分析簡單實現

一、思路概述 1.tomcat實際是執行在jvm中的一個程序。我們把它定義為【中介軟體】,顧名思義,他是一個在java專案與jvm之間的 中間容器。我們的web專案沒有入口方法(main方法),那麼他是如何執行起來併為客戶端返回資料的呢? 2.web專案[就javaee而講]

HDFS基本命令列操作簡單API使用

1.開啟叢集命令  start-dfs.sh 2.檢視幫助 hdfs dfs -help 3.檢視當前目錄資訊 hdfs dfs -ls / 4.從本地上傳檔案  hdfs dfs -put data.txt  /wc/in 5.從hdfs下載

Linux系統之常用網路通訊命令shell簡單應用技巧

(一)常用網路通訊命令 (1)ping命令 (2)write命令 (3)wall命令 (4)ifconfig命令 (5)shutdown命令 (6)reboot命令   (二)shell簡單應用技巧 (1)命令補齊 (2)命令歷史 (3)命令別名 (4)輸入/輸出重定向 (

單點登入原理簡單實現

一、單系統登入機制 1、http無狀態協議 web應用採用browser/server架構,http作為通訊協議。http是無狀態協議,瀏覽器的每一次請求,伺服器會獨立處理,不與之前或之後的請求產生關聯,這個過程用下圖說明,三次請求/響應對之間沒有任何聯絡 但這也同

【轉】遠端倉庫git 常用命令原理

我每天使用 Git ,但是很多命令記不住。 一般來說,日常使用只要記住下圖6個命令,就可以了。但是熟練使用,恐怕要記住60~100個命令。 下面是我整理的常用 Git 命令清單。幾個專用名詞的譯名如下。 Workspace:工作區 Index / Sta

virtual-dom原理簡單實現

前言 如何實現一個 Virtual DOM 演算法 理解 Virtual DOM 這兩個一定要認真看 目前廣為人知的React和Vue都採用了virtual-dom,Virtual DOM憑藉其高效的diff演算法,讓我們不再關心效能問題,可以隨心所欲的修改資料狀態。在實際開發中,我

單點登入原理簡單實現(轉) 單點登入原理簡單實現

單點登入原理與簡單實現   (2017-09-22更新)GitHub:https://github.com/sheefee/simple-sso 一、單系統登入機制 1、http無狀態協議   web應用採用browser/server架構,http作為通訊

資料探勘筆記-聚類-KMeans-原理簡單實現

K中心點演算法(K-medoids)提出了新的質點選取方式,而不是簡單像k-means演算法採用均值計演算法。在K中心點演算法中,每次迭代後的質點都是從聚類的樣本點中選取,而選取的標準就是當該樣本點成為新的質點後能提高類簇的聚類質量,使得類簇更緊湊。該演算法使用絕對誤差標準來定義一個類簇的緊湊程度。 如果

Dubbo 原始碼解析 —— 簡單原理spring融合

友情提示:歡迎關注公眾號【芋道原始碼】。?關注後,拉你進【原始碼圈】微信群討論技術和原始碼。友情