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

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