Linux Telnet命令开启指南
在Linux系统中,Telnet协议曾广泛用于远程登录和管理设备,尽管因其安全性问题逐渐被SSH替代,但在某些特定场景(如网络设备调试、旧系统兼容性测试)中仍具有实用价值,本文将详细介绍如何在Linux系统中开启Telnet服务,包括安装配置、安全设置及常见问题解决,帮助用户高效完成Telnet服务的部署与使用。

Telnet协议概述与适用场景
Telnet(Telecommunication Network)是一种基于文本的远程协议,通过TCP端口23实现客户端与服务器之间的通信,其特点是简单易用、跨平台支持广泛,但所有数据(包括密码)均以明文传输,存在严重的安全隐患,建议仅在以下场景谨慎使用:
- 网络设备调试:部分老旧路由器、交换机仅支持Telnet管理接口。
- 本地测试环境:在隔离的实验环境中快速验证网络连通性。
- 兼容性需求:与必须使用Telnet的第三方系统对接。
若涉及敏感操作或公网环境,请优先选择SSH协议。
检查系统是否已安装Telnet服务
在开启Telnet服务前,需确认系统中是否已安装相关软件包,以主流发行版为例,可通过以下命令检查:
-
基于Debian/Ubuntu的系统:
dpkg -l | grep telnetd
若输出中包含
telnetd,则已安装;否则返回空结果。 -
基于RHEL/CentOS的系统:
rpm -qa | grep telnet-server
若未安装,需根据系统类型选择对应的安装方法。
安装Telnet服务
Debian/Ubuntu系统
使用apt包管理器安装:

sudo apt update sudo apt install telnetd -y
安装完成后,服务会自动启动,可通过systemctl status inetd(或xinetd)检查状态。
RHEL/CentOS 7/8系统
使用yum或dnf安装:
sudo yum install telnet-server -y # CentOS 7 sudo dnf install telnet-server -y # CentOS 8
启动并设置开机自启
安装后需手动启动服务并配置开机自启:
sudo systemctl enable telnet.socket sudo systemctl start telnet.socket
注意:部分系统依赖xinetd管理Telnet,需确保xinetd服务运行:
sudo systemctl enable xinetd sudo systemctl start xinetd
配置Telnet服务安全设置
默认情况下,Telnet服务允许任何IP地址连接,且使用root登录存在风险,需通过以下步骤加固安全:
限制允许登录的IP地址
编辑/etc/hosts.allow和/etc/hosts.deny文件(需xinetd支持):
sudo echo "telnet: 192.168.1.0/24" >> /etc/hosts.allow # 允许内网段 sudo echo "telnet: ALL" >> /etc/hosts.deny # 禁止其他IP
禁止root直接登录
创建普通用户并分配权限:
sudo useradd testuser sudo passwd testuser
在/etc/securetty文件中注释或删除pts/0等虚拟终端,限制root仅通过物理终端登录。

修改默认端口(可选)
编辑/etc/services文件,将telnet端口从23改为自定义端口(如2323):
telnet 2323/tcp # 原行为23/tcp
防火墙与SELinux配置
开放Telnet端口
- UFW(Ubuntu默认防火墙):
sudo ufw allow 23/tcp
- Firewalld(RHEL/CentOS):
sudo firewall-cmd --permanent --add-port=23/tcp sudo firewall-cmd --reload
关闭SELinux(临时或永久)
若SELinux启用,可能阻止Telnet连接,临时关闭(重启后失效):
sudo setenforce 0
永久关闭需编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled后重启系统。
客户端连接测试
在本地或另一台Linux主机上使用telnet命令测试连接:
telnet <服务器IP> 23
若成功,将显示登录提示,输入用户名和密码即可访问。
常见问题解决
“Connection refused”错误
- 原因:Telnet服务未启动或防火墙拦截。
- 解决:检查服务状态(
systemctl status telnet.socket)及防火墙规则。
“Login incorrect”错误
- 原因:用户名或密码错误,或SSH与Telnet登录配置冲突。
- 解决:确认用户账户有效,检查
/etc/passwd和/etc/shadow权限。
连接超时
- 原因:服务器未监听23端口或网络不通。
- 解决:使用
netstat -tuln | grep 23检查端口监听状态。
替代方案与安全建议
尽管Telnet在某些场景下仍有价值,但长期使用存在风险,建议采取以下措施提升安全性:
- 替换为SSH:安装
openssh-server,使用加密连接替代Telnet。 - VPN隔离:通过VPN建立专用网络,再使用Telnet管理设备。
- 日志审计:启用
auditd记录所有Telnet连接日志,便于追溯异常行为。
开启Linux系统的Telnet服务需完成安装、配置、安全加固及测试验证等多个步骤,尽管操作简单,但必须充分认识其安全局限性,仅在可控环境中使用,对于生产环境,优先推荐SSH协议,并结合防火墙、访问控制等策略构建安全体系,通过合理配置与风险管控,可平衡Telnet的便利性与安全性需求。



















