近期在做项目时遇到需要连接远程服务器,我们都知道nc(netcat) 是 Linux 系统中十分好用的 TCP/UDP 网络程序。但我在之前又了解到Telnet也同样可以实现
Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。
使用telnet
一般我们可以直接win+r cmd 然后输入telnet:
但我们可能会遇到提示错误的情况
这个问题主要是因为Windows系统默认没有开启telnet命令,可以通过手动方式开启,步骤如下。
- 打开控制面板(win+r -> cmd -> control)
- 单击 程序 > 程序和功能 > 启用或关闭Windows功能。
- 勾选Telnet客户端即可
再次输入telnet就不会显示错误了
我们可以输入telnet -help
来查看命令
测试
我写了一个简易的测试项目(localhost:8888)来使用telnet的远程连接服务器
- 在命令行输入telnet 127.0.0.1 8888
我们会发现此时控制台显示的是乱码,我们可以通过以下方式来解决:
在控制台输入chcp 65001
,再进行连接
chcp 65001
:命令行窗口会切换到使用 UTF-8 编码来解释和显示文本。
chcp
:这是英文"Change Code Page"的缩写,是一个内部命令,用于显示或更改当前控制台窗口的字符编码设置。 65001
:这是一个特定的代码页编号,代表了 UTF-8 字符编码。UTF-8 是一种普遍采用的 Unicode 字符编码标准,能够表示世界上几乎所有的字符和符号,包括多语言文本和特殊字符。
- 修改之后我们再次尝试,发现已经没有乱码的情况了
另外我还发现,尽管 Telnet 协议在过去被广泛使用,但它存在一些安全问题。因为 Telnet 协议在网络上传输所有数据都是明文,包括密码和其他敏感信息。因此,黑客可以很容易地截取和窃取这些信息,这就是为什么现代的安全标准建议使用更加安全的协议,例如 SSH。
不过用于临时的项目调试来说,telnet确实是一个简单实用的工具