菜鸟科技网

Ubuntu如何启用telnet命令?

telnet 是一个历史悠久的网络协议和程序,用于远程登录或测试网络连接,它工作在 OSI 模型的第7层(应用层),并且是明文传输的,这意味着所有数据(包括用户名和密码)都以未加密的形式在网络中传输,因此极不安全,在现代生产环境中应被禁用。

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

尽管不安全,telnet 仍然是一个非常有用的网络诊断工具,尤其是在排查服务端口是否可达、服务是否正常响应等问题时。


安装 Telnet

在大多数现代的 Ubuntu 发行版(如 Ubuntu 18.04, 20.04, 22.04)中,出于安全考虑,telnet 客户端通常默认没有安装,你需要手动安装它。

安装 Telnet 客户端

这是最常用的安装方式,它允许你使用 telnet 命令去连接其他主机。

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

Ubuntu如何启用telnet命令?-图2
(图片来源网络,侵删)
sudo apt update
sudo apt install telnetd

注意telnetdtelnet 的守护进程(服务器端)包,安装它通常也会自动安装客户端程序,如果你只想安装客户端,可以尝试 telnettelnet-client,但在 Ubuntu 的软件源中,telnetd 是最标准的选择。

安装 Telnet 服务器(可选)

如果你想让自己的 Ubuntu 机器成为一个 telnet 服务器,允许其他用户通过 telnet 登录,那么你需要安装并配置 telnetd再次强调,这非常不安全,仅建议在受信任的内网环境中使用。

  1. 安装
    sudo apt install telnetd
  2. 配置
    • 主配置文件是 /etc/inetd.conf/etc/xinetd.d/telnet,现在更常用 xinetdsystemd 来管理。
    • 默认情况下,telnet 服务器可能不会自动启动,你需要启用它。
    • 强烈建议禁用 telnet,改用 SSH,SSH (ssh 命令) 是安全、加密的远程登录协议。

使用 Telnet 命令(客户端)

telnet 的主要用途是测试网络连接和检查服务。

基本语法

telnet [主机名或IP地址] [端口号]
  • 主机名或IP地址:你想要连接的目标计算机。
  • 端口号:目标计算机上监听服务的端口号。这是 telnet 最强大的用法之一

常见用法示例

示例 1:测试远程主机的某个端口是否开放

这是 telnet 最经典的用法,你想测试 google.comHTTP 服务(默认端口 80)是否可达。

telnet google.com 80
  • 如果端口开放,你会看到类似下面的输出,并进入一个交互式会话:

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

    你可以按照 HTTP 协议手动发送请求,

    GET / HTTP/1.1
    Host: google.com
    

    发送后,服务器会返回 HTTP 响应头和内容,输入 Ctrl+] 然后回车,再输入 quit 即可退出。

  • 如果端口被防火墙阻挡或服务未运行,你会看到:

    Trying 142.250.196.142...
    telnet: Unable to connect to remote host: Connection timed out

    或者

    Trying 142.250.196.142...
    telnet: connect to address 142.250.196.142: Connection refused
    • Connection timed out:表示目标主机可达,但指定端口没有服务在监听,或者被中间的防火墙(如路由器、主机防火墙 ufw)拦截了。
    • Connection refused:表示目标主机可达,但明确拒绝了你的连接请求,通常是因为该端口上没有运行任何服务。

示例 2:远程登录(不推荐)

如果你想通过 telnet 登录到另一台支持 telnet 服务的服务器。

telnet 192.168.1.100

连接成功后,会提示你输入用户名和密码。再次警告,整个过程都是明文,非常危险!


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

由于 telnet 的不安全性,许多系统管理员更倾向于使用功能更强大且同样简单的 netcat (简称 nc) 来进行网络诊断。

nc 通常默认安装在 Ubuntu 系统中。

使用 nc 测试端口

语法与 telnet 类似:

nc -zv [主机名或IP地址] [端口号]
  • -z:表示只扫描端口,不发送数据。
  • -v:表示详细输出。

示例:

nc -zv google.com 80

输出结果:

Connection to google.com 80 port [tcp/http] succeeded!

如果失败,它会明确告诉你连接失败。nc 的输出信息通常比 telnet 更清晰。


安全的替代方案:nmap

如果你需要进行更全面、更专业的端口扫描,nmap (Network Mapper) 是最佳选择。

安装 nmap

sudo apt install nmap

使用 nmap 扫描端口

nmap [主机名或IP地址]

示例:

nmap google.com

这会扫描 google.com 上所有常见的 1000 个端口。

如果你想扫描特定端口:

nmap -p 80 google.com

工具 主要用途 优点 缺点 推荐度
telnet 网络诊断(端口测试)、远程登录 简单、几乎所有系统都有 不安全(明文)、功能单一 ⭐⭐ (仅用于诊断)
nc (Netcat) 网络诊断(端口测试)、数据传输 功能强大、轻量级、比 telnet 更灵活 相对 telnet 稍复杂一点 ⭐⭐⭐⭐ (强烈推荐用于诊断)
nmap 专业端口扫描、主机发现、服务识别 功能极其强大、信息详细、扫描类型多 相对复杂、需要一定学习成本 ⭐⭐⭐⭐⭐ (专业网络诊断首选)
ssh 安全的远程登录 加密传输、功能丰富(端口转发、文件传输等) telnet 复杂一点 ⭐⭐⭐⭐⭐ (唯一推荐的远程登录方式)

最终建议:

  1. 为了安全永远不要使用 telnet 进行远程登录,请使用 ssh
  2. 为了诊断:在日常工作中,使用 nc -zv 来快速检查端口是否可达,比 telnet 更简洁、更专业,如果需要更详细的扫描信息,使用 nmap
分享:
扫描分享到社交APP
上一篇
下一篇