怎么在Linux中安装并配置Telnet服务端

半杯拿铁
半杯拿铁
发布时间:2026-11-07| 3人浏览过
原创

详细讲解在常见Linux发行版(Ubuntu/Debian与CentOS/RHEL)中安装、配置和管理Telnet服务端的完整流程,包括xinetd与systemd配置、防火墙放行及关键安全替代方案。

在Linux环境中,配置Telnet服务端的核心流程是安装守护软件包、配置托管进程(如xinetd或systemd套接字)、放行防火墙23端口,并创建非特权用户用于身份验证。由于Telnet在网络中全程采用明文传输,现代运维通常将其作为隔离局域网调试、嵌入式系统维护或SSH服务升级故障时的临时备份通道。本文将按照标准实施路径,讲解在主流Linux发行版中完成Telnet服务端搭建的具体操作与验证方式。

一、基础认知与运行机制

Telnet服务端并不总是作为独立的持久守护进程在后台监听,在许多Linux体系中,它通过超级服务器守护进程(xinetd)或现代系统的套接字激活(systemd socket activation)来按需调用。当有客户端发起TCP 23端口的连接请求时,监听器捕获该请求并派生出Telnet会话进程与终端登录程序交互。

怎么在Linux中安装并配置Telnet服务端
图 1:Telnet 架构与服务派生交互机制

二、标准安装与配置流程

在Linux操作系统中,不同发行版的包管理器和服务管理器存在差异。总体上可以归纳为以Ubuntu/Debian为代表的Deb包体系,以及以CentOS/RHEL为代表的RPM包体系。以下为标准的四阶段实施步骤:

怎么在Linux中安装并配置Telnet服务端
图 2:服务端完整实施步骤流程图

1. Ubuntu / Debian 系统环境安装与配置

在Debian系发行版中,通常使用 telnetd 或结合超级守护进程 openbsd-inetd 来管理连接。

执行以下命令更新软件源并安装服务端套件:

sudo apt update
sudo apt install -y telnetd openbsd-inetd

安装完成后,openbsd-inetd 会自动在 /etc/inetd.conf 中注册服务配置项。我们可以通过检查该文件确认配置是否生效:

grep "^telnet" /etc/inetd.conf

示例输出:

telnet		tcp		nowait		root	/usr/sbin/tcpd	/usr/sbin/in.telnetd

接下来启动 inetd 服务并将其设为开机自启:

sudo systemctl restart inetutils-inetd || sudo systemctl restart openbsd-inetd
sudo systemctl enable openbsd-inetd

2. CentOS / RHEL / Rocky Linux 系统环境安装与配置

在RedHat系发行版中,Telnet服务端软件包名为 telnet-server。早期的版本依赖 xinetd,而在较新的版本(如CentOS 8/9、Rocky Linux等)中,直接提供原生的 telnet.socket 供 systemd 进行套接字激活。

通过 dnf 或 yum 安装服务组件:

sudo dnf install -y telnet-server telnet

若系统通过 systemd socket 管理,直接启动 telnet.socket 即可:

sudo systemctl enable --now telnet.socket

如果使用的是基于 xinetd 的旧系统,需创建或编辑 /etc/xinetd.d/telnet 文件,确保服务未被禁用(即 disable = no):

service telnet
{
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.telnetd
    log_on_failure  += USERID
    disable         = no
}

保存后重启 xinetd:

sudo systemctl restart xinetd
sudo systemctl enable xinetd

3. 防火墙策略放行

Telnet使用标准端口 23/tcp。如果在宿主机启用了防火墙,外部请求将会被直接阻断或丢弃。

在 CentOS/RHEL (firewalld) 中放行端口:

sudo firewall-cmd --permanent --add-service=telnet
sudo firewall-cmd --reload

在 Ubuntu/Debian (ufw) 中放行端口:

sudo ufw allow 23/tcp
sudo ufw reload

三、状态验证与连接测试

完成配置后,必须在服务端本地确认端口已处于监听状态,再从客户端进行连通性测试。

1. 检查服务端监听端口

使用 ss 命令查看系统当前是否在 23 端口正常监听:

ss -tulpn | grep :23

示例输出:

tcp   LISTEN 0      128          *:23             *:*    users:(("systemd",pid=1,fd=45))

输出中看到 LISTEN 即代表监听通道已正常建立。

2. 客户端发起连接

在同一局域网下的客户端计算机上,输入目标主机的IP地址进行连接:

telnet 192.168.1.100 23

连接成功后,终端将输出如下所示的提示信息:

Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.

Kernel 5.15.0 on an x86_64
server-node login: 

在此输入非 root 用户名及密码,即可成功进入远程终端环境。

注意:Root 用户直接登录受限机制

出于安全防御设计,绝大多数 Linux 系统的 PAM 模块和 /etc/securetty 会默认禁止 root 用户直接通过 Telnet 登录。如果输入 root 账号并提供正确密码,仍会提示 Login incorrect。

推荐做法:使用普通用户登录系统后,通过 su - 或 sudo -i 提权切换至管理员角色。不建议通过清空 /etc/securetty 来强制允许 root 直登,这会显著增加安全隐患。

四、安全风险排查与协议对比

理解为什么Telnet在现代生产环境中被限制,有助于评估其适用范围。Telnet与SSH的核心差异在于传输层是否具备非对称加密、会话密钥协商与完整性校验机制。

怎么在Linux中安装并配置Telnet服务端
图 3:协议特性与安全维度矩阵分析

五、操作全周期总结与常见排障

为了保障配置完成后系统处于可控状态,请依照以下总结路径复核整个部署环节:

怎么在Linux中安装并配置Telnet服务端
图 4:配置生命周期总结与故障排查导图

在排障过程中,若遇到无法连接的问题,可以按照以下三个具体现象对症处理:

  • 提示 Connection timed out:优先排查网络路径和防火墙。确认服务端主机与客户端之间是否处于同一网段,或者云服务器安全组是否已经放行 23 端口入站流量。
  • 提示 Connection refused:代表目标宿主机网络可达,但 23 端口没有进程在监听。可通过 systemctl status telnet.socket(CentOS)或 systemctl status openbsd-inetd(Ubuntu)确认守护程序是否处于 active 运行状态。
  • 任务完成后及时关闭服务:如果搭建 Telnet 服务端仅是为了升级 OpenSSH 或排查临时故障,任务结束之后应立即停止服务并关闭端口,避免系统长期暴露在明文传输的安全风险中:
    sudo systemctl stop telnet.socket || sudo systemctl stop openbsd-inetd
    sudo systemctl disable telnet.socket || sudo systemctl disable openbsd-inetd
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。