作為一名linux系統管理者,經常要做的一件事就是經常需要确定某台伺服器的某個服務啟動的某個端口是否開啟,是否還能正常提供服務。當然對于某些端口可以直接打開看看特定的服務是否還在正常運作,比如Http的80端口,ssl的443端口等等這樣做的前提是你所管理的伺服器數量較少,還能在你能逐一打開位址測試的勞動強度範圍之内。這裡跟大家分享下telnet指令在遠端登入功能之外的另外一個功能--探測端口是否開啟
首先我們說下linux指令telnet的原理及作用
一.Telnet的具體工作原理,這個估計很少人會去了解這裡詳細說一說
telnet遠端登入的工作原理:
當你用Telnet登入進入遠端計算機系統時,你事實上啟動了兩個程式,一個
叫Telnet客戶程式,它運作在你的本地機上;另一個叫Telnet伺服器程式,它運作在你要登入的遠端計算機上。本地機上的客戶程式要完成如下功能:
1
、建立與伺服器的TCP 聯接;
2 、從鍵盤上接收你輸入的字元;
3 、把你輸入的字元串變成标準格式并送給遠端伺服器;
4
、從遠端伺服器接收輸出的資訊;
5
、把該資訊顯示在你的螢幕上。
二.Telnet遠端登入時實際需要運作兩個程式,也就是我們常說的用戶端及伺服器端,但如果我們把telnet當做探測特定端口是否開放時,就不必理會目的伺服器時都運作telnet服務端了。
telnet用于探測端口時候開啟時主要是根據建立連接配接及傳回值來判斷
舉例說明:Telnet外網位址的81端口
點選(此處)折疊或打開
- [root@localhost ~]# telnet 61.135.169.105 81
- Trying 61.135.169.105...
- telnet: connect to address 61.135.169.105: Connection refused
- telnet: Unable to connect to remote host: Connection refused
ok.看以看到該外網的81端口是未開放的。那麼開放端口顯示是什麼樣子的呢,别急接下來看
- [root@localhost ~]# telnet 61.135.169.125 80
- Trying 61.135.169.125...
- Connected to 61.135.169.125 (61.135.169.125).
- Escape character is '^]'.
是的,如上顯示,這就說明這個位址的80端口是開放的,很簡單吧 //進入這個狀态,需要按ctrl+c退出即可
linux下telnet顯示與windows下不同
預設win7系統是不安裝telnet程式的,需要手動添加的喲
win7系統需要開控制台,打開程式和功能,看到左邊有個“打開或關閉Windows功能 ,打開找到telnet用戶端,把這項都勾選上,然後确定就可以了。 //telnet服務端可不選
那麼windows系統運作上面的指令有什麼效果呢 來看
- C:\Users\Administrator>telnet 61.135.169.105 81
- 正在連接配接61.135.169.105...無法打開到主機的連接配接。 在端口 81: 連接配接失敗
嗯,可以看到,端口未開啟的情況下,顯示的意思大緻相同,隻不過筆者的win7系統裝的是簡體中文版的,顯示的中文比較容易了解
那麼 端口開啟時會怎麼顯示呢
- C:\Users\Administrator>telnet 61.135.169.105 80
- -
是的,您沒有看錯,會出現一個黑色的指令框,确實是什麼都沒有,隻有一個光标在閃爍,這就說明telnet的端口是開啟的
ok.這就告訴我們telnet指令不僅僅可以用作遠端登入使用,這裡說的探測端口是否開放也僅僅是另外的一個小用法。
那麼telnet還能做什麼用呢,一切都等候你的探索。