使用telnet測(cè)試指定端口的連通性
大家好,我是良許。
大家知道,telnet 是一個(gè)閹割版的 ssh ,它數(shù)據(jù)不加密,數(shù)據(jù)容易被盜竊,也容易受中間人攻擊,所以默認(rèn)情況下 telnet 端口是必須要被關(guān)閉的。
telnet為用戶提供了在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的能力,因此可以通過(guò)telnet來(lái)測(cè)試端口的連通性。
確認(rèn)遠(yuǎn)程主機(jī)的端口
在測(cè)試端口的連通性之前,我們先使用 nmap 命令來(lái)查看目標(biāo)服務(wù)器的端口開(kāi)放狀態(tài)。
- $ nmap lxlinux.net
使用telnet測(cè)試端口的連通性
在確認(rèn)了目標(biāo)服務(wù)器的端口開(kāi)放性之后,我們就可以使用 telnet 來(lái)測(cè)試端口的連通性了。測(cè)試的格式是:
- $ telnet server port
比如我們想要測(cè)試 http 的端口(80)連通性,我們可以這樣測(cè)試:
- $ telnet lxlinux.net 80
從提示中我們可以看出來(lái),它顯示 Connected to lxlinux.net. ,這說(shuō)明這個(gè)端口是是連通的。
如果端口是不連通的,那么它將提示 unable connect to remote host: Connection timed out 。

現(xiàn)在我們?cè)賮?lái)試試關(guān)閉的端口。我們來(lái)測(cè)試一下 22 端口,這個(gè)端口沒(méi)有被 nmap 掃描出來(lái),所以應(yīng)該是關(guān)閉的。為了保險(xiǎn)起見(jiàn),我們可以用 nmap 再來(lái)確認(rèn)一下,這時(shí)我們要加上 -p 選項(xiàng)。
- $ nmap -p 22 lxlinux.net
所以現(xiàn)在確認(rèn)了 22 端口是關(guān)閉的了,我們就可以使用 telnet 來(lái)測(cè)試它的連通性。
- $ telnet lxlinux.net 22
提示里顯示Connection refused ,這說(shuō)明這個(gè)端口也是不連通的。
當(dāng)你用 telnet 連接上某個(gè)端口后,可以按 CTRL+] 進(jìn)入到交互界面:
- telnet>
然后再輸入 quit 再敲下回車,即可退出連接。
利用 telnet 的這個(gè)特性,我們可以寫(xiě)個(gè)腳本來(lái)測(cè)試多個(gè)主機(jī)及端口的連通性。
比如我們寫(xiě)了下面這個(gè)腳本 multipletelnet.sh :
- #!/bin/bash
- telnet lxlinux.net 80
- telnet baidu.com 80
- telnet lxlinux.net 443
然后我們?cè)偈褂?chmod 命令賦予它可執(zhí)行權(quán)限:
- $ chmod +x multipletelnet.sh
當(dāng)然,如果你想要同時(shí)測(cè)試多個(gè)端口的話,那么這個(gè)腳本就有點(diǎn)力不從心了,在這種情況下,你就需要用到 nmap 及其它相似工具了。
本文授權(quán)轉(zhuǎn)載自公眾號(hào)「良許Linux」。良許,世界500強(qiáng)外企Linux開(kāi)發(fā)工程師,公眾號(hào)里分享大量Linux干貨,歡迎關(guān)注!