详解Linux telnet命令:网络协议测试工具

  • Post category:Linux

Linux telnet 命令的使用攻略

简介

telnet 命令是 Linux 系统中常见的远程登录服务器的方式之一,它能够建立与目标主机的 TCP 连接,并通过该连接进行远程操作。使用 telnet 命令需要先在目标主机开启 Telnet 服务,因为该服务虽然方便,但也因为明文传输密码等安全问题而不被建议使用。因此,更加安全的选择是使用 SSH 连接。

使用方法

在使用 Linux telnet 命令之前,我们需要先检查本机是否已安装该命令。可以通过 which 命令来确认:

which telnet

如果系统返回命令的路径则表示系统已经安装了 telnet 命令。如果路径为空,则需要通过系统包管理器进行安装。

建立连接

要建立一个 telnet 连接,我们需要指定要连接的主机 IP 或主机名以及 Telnet 服务的端口号。命令格式如下:

telnet <主机名或 IP> <端口号>

示例:

telnet www.baidu.com 80

该命令将建立与百度网站的 80 端口的 Telnet 连接,可以模拟一个 HTTP 请求。

配置 Telnet

telnet 命令可以设置多种参数来调整连接的方式和参数。在使用 telnet 之前可以通过 man 命令查看所有参数。

man telnet

其中常用参数如下:

  • -l:指定用户名;
  • -L:保持本地与远程网络一致;
  • -r:不允许乱序;
  • -u:使用 RFC 854 协议;
  • -v:启用调试模式;
  • -E:转义卡格字符。

退出

退出方法有两种:

  • 直接按下终止键,即通常情况下我们使用的 Ctrl + ]
  • telnet 命令界面中输入 quitexit 命令。

示例

远程登录并进行操作

假设我们要远程登录某台 Linux 服务器,并查看一下该服务器上的 nginx 版本号。该服务器的 IP 是 192.168.0.10,用户名为 alice,密码为 mypassword。假设我们使用 Telnet 服务的默认端口 23。

telnet 192.168.0.10 23

连接成功后,接下来输入用户名和密码登录到远程机器。

Trying 192.168.0.10...
Connected to 192.168.0.10.
Escape character is '^]'.
Username: alice
Password:

然后在远程终端中输入连接的 Linux 命令:

nginx -v

接下来,系统会返回目标机器上的 nginx 版本号。

模拟 HTTP 请求

假设我们要通过 Telnet 命令模拟一个 HTTP 请求。命令格式如下:

telnet <网站域名或 IP> 80

比如我们要请求百度首页,可以执行以下命令:

telnet www.baidu.com 80

接下来模拟请求:

GET / HTTP/1.1
HOST: www.baidu.com

最后,我们可以得到类似于以下的 HTTP 头和内容:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Content-Length: 27766
Content-Type: text/html
Date: Fri, 11 Sep 2020 09:14:33 GMT
Expires: Fri, 11 Sep 2020 09:14:32 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Pragma: no-cache
Server: BWS/1.1
Set-Cookie: ...
Set-Cookie: ...
Tracecode: 7302277862008031017282016103075404523908
X-Ua-Compatible: IE=Edge,chrome=1
Connection: keep-alive

这就模拟了一次 HTTP 请求。当然,在实际的应用中更为常见的是使用 curl 或其他网络请求库来实现 HTTP 请求。