telnet命令
简介
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。不过我们平常最常用的就是用来测试端口是否能够访问。linux系统大部分默认没有安装telnet工具,需要自己安装。
安全隐患
虽然Telnet较为简单实用也很方便,因在于Telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,所以许多服务器都会选择禁用Telnet服务。如果我们要使用Telnet的远程登录,使用前应在远端服务器上检查并设置允许Telnet服务的功能。
telnet使用
检查是否安装
root@linuxvm:~# rpm -qa telnet
telnet-1.2-165.63.x86_64
root@linuxvm:~# rpm -qa | grep telnet
telnet-1.2-165.63.x86_64
telnet安装
yum install telnet
telnet卸载
yum remove telnet
telnet使用
端口连通:
root@linuxvm:~ #telnet 192.168.1.100 22
Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2
端口不通:
root@linuxvm:~ #telnet 192.168.1.100 23
Trying 192.168.1.100...
telnet: connect to address 192.168.1.100: Connection refused
其他检测端口连通性的命令
nc命令
nc是Linux常用的测试端口工具,一般默认自带,用法为 nc -v ip port 。另外nc还可以模拟监听端口:nc -lk port 。
端口连通:
root@linuxvm:~# nc -v 192.168.1.100 22
Connection to 192.168.1.100 22 port [tcp/ssh] succeeded!
SSH-2.0-OpenSSH_7.2
端口不通:
root@linuxvm:~# nc -v 192.168.1.100 123
nc: connect to 192.168.1.100 port 123 (tcp) failed: Connection refused
root@linuxvm:~#
监听端口:
root@linuxvm:~ # nc -lk 443
^C
root@linuxvm:~ # nc -lk 80
nc: Address already in use
curl命令
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。
端口连通:
root@linuxvm:~ # curl 192.168.1.100:22
SSH-2.0-OpenSSH_7.2
curl: (56) Recv failure: Connection reset by peer
root@linuxvm:~ #
端口不通:
root@linuxvm:~ # curl 192.168.1.100:8888
curl: (7) Failed to connect to 192.168.1.100 port 8888: Connection refused
root@linuxvm:~ #
wget命令
wget 是一个从网络上自动下载文件的自由工具。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。wget命令使用前需要安装。
端口不通:
root@linuxvm:~ # wget 192.168.1.100:23
--2023-07-12 16:16:57-- http://192.168.1.100:23/
Connecting to 192.168.1.100:23... failed: Connection refused.
端口连通:
root@linuxvm:~ # wget 192.168.1.100:22
--2023-07-12 16:16:47-- http://192.168.1.100:22/
Connecting to 192.168.1.100:22... connected.
HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9
<剩下内容省略>
>方法
对于TCP端口,可以使用重定向进行端口连通性检测,用法:>/dev/tcp/${ip}/${port} 。如下表示成功和失败,端口能连通不打印任何信息。
端口连通:
root@linuxvm:~ # >/dev/tcp/192.168.1.100/22
root@linuxvm:~ #
端口不通:
root@linuxvm:~ # >/dev/tcp/192.168.1.100/8888
-bash: connect: Connection refused
-bash: /dev/tcp/192.168.1.100/8888: Connection refused
root@linuxvm:~ #