大家知道,telnet 是一个阉割版的 ssh ,它数据不加密,数据容易被盗窃,也容易受中间人攻击,所以默认情况下 telnet 端口是必须要被关闭的。

telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性。

确认远程主机的端口

在测试端口的连通性之前,我们先使用 nmap 命令来查看目标服务器的端口开放状态。

$ nmap lxlinux.net
 
使用telnet测试指定端口的连通性

 

使用telnet测试端口的连通性

在确认了目标服务器的端口开放性之后,我们就可以使用 telnet 来测试端口的连通性了。测试的格式是:

$ telnet server port
 

比如我们想要测试 http 的端口(80)连通性,我们可以这样测试:

$ telnet lxlinux.net 80
 
使用telnet测试指定端口的连通性

 

从提示中我们可以看出来,它显示 Connected to lxlinux.net. ,这说明这个端口是是连通的。

如果端口是不连通的,那么它将提示 unable connect to remote host: Connection timed out 。

使用telnet测试指定端口的连通性

 

现在我们再来试试关闭的端口。我们来测试一下 22 端口,这个端口没有被 nmap 扫描出来,所以应该是关闭的。为了保险起见,我们可以用 nmap 再来确认一下,这时我们要加上 -p 选项。

$ nmap -p 22 lxlinux.net
 
使用telnet测试指定端口的连通性

 

所以现在确认了 22 端口是关闭的了,我们就可以使用 telnet 来测试它的连通性。

$ telnet lxlinux.net 22
 
使用telnet测试指定端口的连通性

 

提示里显示Connection refused ,这说明这个端口也是不连通的。

当你用 telnet 连接上某个端口后,可以按 CTRL+] 进入到交互界面:

telnet>
 

然后再输入 quit 再敲下回车,即可退出连接。

使用telnet测试指定端口的连通性

 

利用 telnet 的这个特性,我们可以写个脚本来测试多个主机及端口的连通性。

比如我们写了下面这个脚本 multipletelnet.sh :

#!/bin/bash 
telnet lxlinux.net 80 
telnet baidu.com 80 
telnet lxlinux.net 443
 

然后我们再使用 chmod 命令赋予它可执行权限:

$ chmod +x multipletelnet.sh
 
使用telnet测试指定端口的连通性

 

当然,如果你想要同时测试多个端口的话,那么这个脚本就有点力不从心了,在这种情况下,你就需要用到 nmap 及其它相似工具了。


发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

零拷贝(Zero-Copy)知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。