菜鸟科技网

Ubuntu如何安装使用telnet命令?

为什么 telnet 默认不存在?

在许多现代 Linux 发行版(包括 Ubuntu)中,telnet 命令默认没有预装,这是因为 telnet 协议存在严重的安全风险,它以明文方式传输所有数据(包括用户名和密码),非常容易被窃听。

Ubuntu如何安装使用telnet命令?-图1
(图片来源网络,侵删)

Ubuntu 官方软件源默认不包含它,而是推荐使用更安全的替代品,如 ssh(Secure Shell)。


如何安装 telnet

虽然不推荐,但如果你确实需要使用 telnet,安装非常简单,Ubuntu 提供了两个相关的包:

  1. telnetdTelnet 服务器,如果你想让自己的 Ubuntu 机器作为 Telnet 服务器,让别人通过 Telnet 连接过来,就需要安装这个。
  2. telnetTelnet 客户端,这是你用来连接到其他 Telnet 服务器的工具。通常我们说的“使用 telnet 命令”指的是安装这个客户端。

安装 Telnet 客户端(最常见的需求)

打开你的终端,运行以下命令:

# 更新软件包列表
sudo apt update
# 安装 telnet 客户端
sudo apt install telnet

安装完成后,你就可以使用 telnet 命令了。

Ubuntu如何安装使用telnet命令?-图2
(图片来源网络,侵删)

安装 Telnet 服务器(可选)

如果你想让你的 Ubuntu 机器成为一个 Telnet 服务器,可以运行:

sudo apt install telnetd

⚠️ 安全警告:强烈不建议在公网或任何不安全的网络环境中启用 Telnet 服务器,如果必须使用,请确保只在受信任的内网环境中运行,并考虑将其限制在特定的 IP 地址访问。


如何使用 telnet 命令

telnet 命令最常用的功能是测试网络连接和检查端口是否开放。

基本语法

telnet [主机名或IP地址] [端口号]
  • 主机名或IP地址:你想连接的目标计算机。
  • 端口号:目标计算机上监听服务的端口号,如果省略,默认尝试连接 23 端口(这是 Telnet 服务的标准端口)。

常见使用场景

测试网络连通性

Ubuntu如何安装使用telnet命令?-图3
(图片来源网络,侵删)

你可以通过连接到目标主机的常见端口(如 80 或 443)来测试是否能到达该主机。

示例:连接到 Google 的 Web 服务器 (端口 80)

telnet google.com 80

如果连接成功,你会看到类似下面的输出,并且光标会闪烁,等待你输入:

Trying 142.250.196.142...
Connected to google.com.
Escape character is '^]'.

你已经成功连接到了 Google 的 Web 服务器,你可以输入 HTTP 请求来获取网页信息(这是高级用法),要退出,请按 Ctrl+],然后输入 quit

如果连接失败,你会看到 Connection refusedUnable to connect 之类的错误信息。

检查特定端口是否开放

这是 telnet 最强大的诊断功能之一,它可以帮你确定一个服务是否正在运行并监听指定的端口。

示例:检查本地邮件服务器 (SMTP, 端口 25)

telnet localhost 25
  • 如果成功:说明本地 SMTP 服务正在运行并监听 25 端口。
  • 如果失败:说明该端口没有被任何服务监听,或者被防火墙阻止了。

示例:检查本地 SSH 服务 (端口 22)

telnet localhost 22
  • 如果成功:你会看到 SSH 协议的欢迎信息,这表明 SSH 服务正在运行。
  • 如果失败:SSH 服务可能未启动或防火墙阻止了连接。

telnet 命令常用选项

  • -e <字符>:设置转义字符,默认是 ^] (Ctrl + ])。
  • -l <用户名>:指定登录时要使用的用户名(仅对某些服务器有效)。
  • -a:尝试自动登录。

示例: telnet -l myuser server.example.com 尝试用 myuser 用户名连接到 server.example.com


如何退出 telnet

有几种方法可以退出 telnet 会话:

  1. telnet 内部退出

    • Ctrl + ] (Ctrl + 右方括号),这会进入 telnet 的命令提示符模式。
    • 你会看到 telnet> 提示。
    • 输入 quitexit,然后按回车。
  2. 强制中断会话

    • Ctrl + C,这会立即终止 telnet 进程。

更安全的替代方案:nc (Netcat)

nc (或 netcat) 是一个被称为“网络工具中的瑞士军刀”的强大工具,它可以实现 telnet 的几乎所有功能,并且更灵活、更强大。

在 Ubuntu 上,nc 通常默认安装,如果没有,可以用 sudo apt install netcat 安装。

使用 nc 检查端口是否开放:

语法和 telnet 非常相似。

# 检查 Google 的 80 端口
nc -zv google.com 80
# 检查本地 22 端口
nc -zv localhost 22

nc 命令选项解释:

  • -z:表示 Zero-I/O 模式,只扫描端口,不发送数据。
  • -v:表示 Verbose(详细模式),显示更详细的信息。
  • -u:表示 UDP 模式(默认是 TCP),用于测试 UDP 端口。

nc 的输出示例:

$ nc -zv google.com 80
Connection to google.com 80 port [tcp/http] succeeded!
$ nc -zv localhost 22
Connection to localhost 22 port [tcp/ssh] succeeded!

相比 telnetnc 的输出更清晰,并且不会进入交互式会话,非常适合在脚本中使用。


功能 telnet nc (Netcat) 备注
安装 sudo apt install telnet 通常预装或 sudo apt install netcat nc 更常用
检查端口 telnet host port nc -zv host port nc 输出更清晰,适合脚本
交互连接 (连接到 Telnet 服务器) (但无特殊协议处理) telnet 主要用于此
安全性 极低 (明文传输) 无内置安全 (取决于上层协议) 两者都不适合传输敏感数据
推荐度 仅用于诊断 强烈推荐,功能更强大 对于日常网络诊断,优先使用 nc

最终建议:

  • 如果你只是想快速检查一个网络端口是否开放,请使用 nc -zv host port
  • 如果你必须连接到一个古老的、只支持 Telnet 协议的服务,那么安装并使用 telnet
  • 对于所有现代远程管理需求,请始终使用 ssh,它是安全、现代且功能丰富的标准。
分享:
扫描分享到社交APP
上一篇
下一篇