1. 程式人生 > >使用telnet測試指定埠的連通性

使用telnet測試指定埠的連通性

大家好,我是良許。 大家知道,`telnet` 是一個閹割版的 `ssh` ,它資料不加密,資料容易被盜竊,也容易受中間人攻擊,所以預設情況下 telnet 埠是必須要被關閉的。 telnet為使用者提供了在本地計算機上完成遠端主機工作的能力,因此可以通過telnet來測試埠的連通性。 #### 確認遠端主機的埠 在測試埠的連通性之前,我們先使用 `nmap` 命令來檢視目標伺服器的埠開放狀態。 ``` $ nmap lxlinux.net ``` ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194254753-1318159371.jpg) #### 使用telnet測試埠的連通性 在確認了目標伺服器的埠開放性之後,我們就可以使用 telnet 來測試埠的連通性了。測試的格式是: ``` $ telnet server port ``` 比如我們想要測試 http 的埠(80)連通性,我們可以這樣測試: ``` $ telnet lxlinux.net 80 ``` ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194254918-793691210.jpg) 從提示中我們可以看出來,它顯示 `Connected to lxlinux.net.` ,這說明這個埠是是連通的。 如果埠是不連通的,那麼它將提示 `unable connect to remote host: Connection timed out` 。 ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194255099-195196279.jpg) 現在我們再來試試關閉的埠。我們來測試一下 22 埠,這個埠沒有被 nmap 掃描出來,所以應該是關閉的。為了保險起見,我們可以用 nmap 再來確認一下,這時我們要加上 `-p` 選項。 ``` $ nmap -p 22 lxlinux.net ``` ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194255301-482499845.jpg) 所以現在確認了 22 埠是關閉的了,我們就可以使用 telnet 來測試它的連通性。 ``` $ telnet lxlinux.net 22 ``` ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194255493-606895337.jpg) 提示裡顯示`Connection refused` ,這說明這個埠也是不連通的。 當你用 telnet 連線上某個埠後,可以按 **CTRL+]** 進入到互動介面: ``` telnet> ``` 然後再輸入 `quit` 再敲下回車,即可退出連線。 ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194255646-1005932557.jpg) 利用 telnet 的這個特性,我們可以寫個指令碼來測試多個主機及埠的連通性。 比如我們寫了下面這個指令碼 **multipletelnet.sh** : ``` #!/bin/bash telnet lxlinux.net 80 telnet baidu.com 80 telnet lxlinux.net 443 ``` 然後我們再使用 `chmod` 命令賦予它可執行許可權: ``` $ chmod +x multipletelnet.sh ``` ![](https://img2020.cnblogs.com/other/1218435/202007/1218435-20200703194255844-533491355.jpg) 當然,如果你想要同時測試多個埠的話,那麼這個指令碼就有點力不從心了,在這種情況下,你就需要用到 nmap 及其它相似工具了。 --- 公眾號:良許Linux ### 有收穫?希望老鐵們來個三連擊,給更多的人看到這