作为一名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还能做什么用呢,一切都等候你的探索。