学习Telnet命令以测试和解决连接问题
Telnet是一种流行的网络协议,可以让您虚拟连接到远程计算机。这是一个1969年开发的旧协议。
如今,SSH(Secure Shell)已经取代了Telnet。SSH也是一种网络通信协议,可以让网络和系统管理员安全地连接到远程计算机。
至于Telnet,现在主要用于故障排除和测试连接问题。学习Telnet命令可以帮助您更好地管理网络。
在本文中,我们将更详细地介绍telnet命令,包括学习其工作原理和如何排除连接问题。让我们开始吧。
Telnet是什么?
Telnet是一个代表Teletype Network的网络协议。它提供了一个命令行界面/解释器,用于与远程服务器通信。系统和网络管理员使用Telnet的终端对终端通信来实现远程控制和执行不同的操作,例如初始设备设置。
为了方便Telnet协议,您需要Telnet客户端。该客户端使用户能够通过TCP/IP在远程系统上登录和使用应用程序。Telnet客户端使用Telnet服务器应用程序来执行操作。此外,Telnet客户端在所有现代操作系统上都可用,例如Windows、Linux和macOS。
注意:在本文中,当我们提到“Telnet”时,如果没有另外说明,它指的是“Telnet客户端”。
Telnet安全吗?
在其1969年的创立时,安全性不是执行网络任务的主要关注点。这就是为什么Telnet没有使用任何encryption。由于它不安全,也不建议通过TCP/IP网络连接到远程客户端。
如果这样做,您会使自己暴露于可能中断未加密数据的hackers。SSH是一种提供安全远程连接的很好的替代协议。
Telnet如何工作?
从可视化的角度来看,Telnet协议的工作方式如下。
Telnet是一种文本导向的通信,创建了一个双向(客户端-服务器协议)交互式通信系统。它利用一个八字节的连接进行传输。此外,您需要将键盘和屏幕连接到终端才能使用Telnet。
您从终端输入命令以连接到远程计算机。连接成功后,Telnet会提供您对服务器的控制权,包括其文件和进程。
要连接到远程服务器,用户应该在命令提示符中输入“Telnet”。语法如下:
telnet hostname port
连接成功后,您可以使用Telnet提示符输入更多的Telnet命令。
您可以使用Telnet进行以下操作:
- 检查开放的端口
- 编辑文件,运行程序
- 配置网络设备,如交换机,routers等
要结束会话,您需要在Telnet提示符中输入“Telnet”。
如何在Windows/Linux和macOS中启用Telnet客户端
Telnet客户端在所有主要平台和操作系统上都可用。但是,在使用之前,您需要安装或启用它。
#1. Windows
如果您使用的是Windows 7或更高版本(8、10、11)或Windows Vista,您可以按照以下步骤启用Telnet客户端:
- 转到开始菜单,搜索控制面板。您还可以通过按下Win + R键,然后输入“control”来打开控制面板。它应该打开控制面板。
- 现在选择“程序”>“程序和功能”。
- 从左窗格中选择“打开或关闭Windows功能”。
- 现在选中“Telnet客户端”旁边的复选框,然后点击“确定”。
- 现在,在Windows启用并显示消息“Windows已完成所请求的更改”后,点击“关闭”。
注意:您可以立即开始使用Telnet客户端,无需重新启动计算机。
#2. Linux
与Windows一样,Linux也没有预装Telnet。
要在Ubuntu上安装Telnet,请使用以下命令。
# sudo apt-get install telnet
注意:该命令的具体内容取决于您的Linux发行版。
#3. macOS
MacOS也支持Telnet。要安装它,您需要使用Homebrew。如果尚未预装Homebrew,可以通过运行以下命令来安装它:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
它会要求您输入管理员密码以授权安装。
安装了Homebrew后,输入以下命令在MacOS上安装Telnet。
brew install telnet
使用Telnet测试和排除网络连接问题
尽管Telnet不适用于远程连接,但它仍然对测试和排除网络连接问题非常有用。
在继续之前,让我们快速查看Telnet语法。
telnet
这里,服务器/主机IP地址是您要连接的服务器,端口是TCP端口号。
例如,如果您想连接到服务器IP地址example.com的端口80,您需要键入以下命令。
telnet example.com 80
这意味着您必须事先了解远程服务器的IP地址/名称和端口号以进行故障排除。
让我们开始吧。
故障排除Web服务器
Telnet提供了一种简单的方式来测试服务器连接。您只需连接到服务器/主机IP地址和接受连接的端口。
例如,如果您要连接到23.45.75.22的532端口,您需要运行以下命令。
telnet 23.45.75.22 532
在这里,可能发生两种情况:
- 与服务器的连接成功。它将显示“与服务器连接成功”或任何其他确认消息,或等待其他输入。
- 与服务器的连接失败。在这种情况下,您可能会收到“连接失败”或“连接被拒绝”等消息。
- Telnet未返回任何消息。
连接到远程服务器的Telnet尝试失败的原因有很多。此外,如果Telnet未返回任何错误消息,可能是您这一端或服务器上的防火墙或防病毒软件阻止了连接。
如果我们连接到yaoweibin.com的端口80,您将立即看到连接成功,并等待进一步的命令。
telnet yaoweibin.com 80
Connected to yaoweibin.com.
Escape character is '^]'.
现在,输入以下命令。
GET / HTTP/1.1
Host: yaoweibin.com
它将返回以下内容:
HTTP/1.1 200 OK
日期:2022年11月18日星期五 04:40:33 GMT
内容类型:text/plain; charset=UTF-8
内容长度:16
X-Frame-Options:SAMEORIGIN
引用策略:same-origin
缓存控制:私有,最大有效期=0,不存储,不缓存,必须重新验证,不进行预检查
[以下是额外的服务器输出]
现在,看一下连接到服务器的失败尝试。
telnet 23.45.75.222 532
连接到23.45.75.222…无法在端口532上打开到主机的连接
检查端口是否已打开
如果服务器可以通过Telnet远程访问,则还可以使用它来检查端口是否已打开。
要检查服务器上的端口是否已打开,请使用以下命令。
telnet
例如,您的服务器IP地址是23.45.47.53,要检查的端口是532。
telnet 23.45.47.53 532
如果命令成功,您将获得一个空屏幕,表示端口已打开。如果它显示为“connecting…”,然后显示一个错误消息,表示端口未打开。
连接到23.45.47.53:532 – 失败
错误#110(连接超时)
故障排除SMTP邮件服务器
简单邮件传输协议(SMTP)管理邮件服务器之间的通信。
您可以使用Telnet来排除SMTP服务器,以查看它们是否接收和发送消息。您可以向服务器发送手动消息请求。如果一切正常,您将收到一个响应。
Telnet可让您以两种方式测试STMP连接:
从Internet到您的邮件服务器的邮件流测试。
从您的邮件服务器到另一个服务器的邮件流测试。
要运行示例交换,请在终端中键入以下命令。
telnet mail.yaoweibin.com 25
Trying 192.168.0.68…
Connected to mail.yaoweibin.com
Escape character is ‘^]'.
220-mail.yaoweibin.com ESMTP Exim 4.7
220-We do not authorize the use of this system to
220 transport unsolicited and/or bulk e-mail.
EHLO mail.yaoweibin.com
250-yaoweibin.com Hello yaoweibin.com [192.168.3.200]
250-AUTH PLAIN LOGIN
QUIT
在这里,用户键入的其他两个命令是:
EHLO mail.yaoweibin.com
QUIT
ECLO命令在使用MAIL FROM命令之前标识域名。QUIT命令退出Telnet会话。
如果您想要更高级的命令,请查看这篇关于的文章。
故障排除FTP服务器
与SMTP和Web服务器一样,您也可以排除FTP服务器。您需要做的就是输入FTP服务器IP地址并连接到端口21。
telnet ftp.yaoweibin.com 21
如果尝试成功,您现在已连接到服务器。否则,您将看到错误消息。
错误#0(php_network_getaddresses:getaddrinfo失败:主机名没有关联的地址)
故障排除SSH
SSH是安全连接的现代替代品,取代了Telnet。您可以使用Telnet来查看服务器是否正在运行SSH。
要这样做,请使用带有服务器IP地址和端口22的Telnet命令。
telnet yaoweibin.com 22
Trying 192.168.0.62…
Connected to yaoweibin.com.
Escape character is ‘^]'.
SSH-2.0-OpenSSH_5.3
最后的话
Telnet是当前时代的一个方便工具。它使您可以在不过多依赖更复杂的工具或命令行的情况下成功排除网络连接问题。使用Telnet,您可以检查是否可以访问Web服务器,查看端口是否已打开,并排除SSH和FTP问题。
您可以查看关于how to resolve ‘telnet command not found’ error的这篇文章。