在Linux系统中,Telnet是一种用于远程登录的网络协议,它允许用户通过命令行界面与远程主机进行交互,虽然出于安全考虑,现代Linux系统更推荐使用SSH协议,但某些特定场景下仍可能需要启用Telnet服务,以下是Linux系统中开启Telnet服务的详细步骤及相关注意事项。

检查系统是否已安装Telnet服务
在开启Telnet之前,首先需要确认系统中是否已安装Telnet服务器软件,常见的Telnet服务器软件有telnetd和in.telnetd,以CentOS/RHEL系统为例,可以使用以下命令检查:
rpm -qa | grep telnet
如果输出结果中包含telnet-server或xinetd(Telnet服务的依赖服务),则说明已安装;否则需要先安装,对于基于Debian/Ubuntu的系统,可以使用:
dpkg -l | grep telnet
安装Telnet服务
CentOS/RHEL系统
使用yum包管理器安装Telnet服务器:
sudo yum install telnet-server xinetd -y
安装完成后,确保xinetd服务已安装,因为Telnet服务通常由xinetd管理。

Ubuntu/Debian系统
使用apt包管理器安装:
sudo apt update sudo apt install telnetd xinetd -y
配置Telnet服务
启用xinetd服务
Telnet服务通常由xinetd超级服务器管理,因此需要确保xinetd已启动并设置为开机自启:
sudo systemctl enable xinetd sudo systemctl start xinetd
编辑Telnet配置文件
在CentOS/RHEL系统中,Telnet服务的配置文件位于/etc/xinetd.d/telnet,使用文本编辑器(如vim)打开该文件:
sudo vim /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 # 确保此处为no
}
在Ubuntu/Debian系统中,配置文件可能位于/etc/inetd.conf,确保添加以下行:
telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
重启xinetd服务
保存配置文件后,重启xinetd服务使配置生效:
sudo systemctl restart xinetd
配置防火墙规则
默认情况下,Linux系统的防火墙可能会阻止Telnet流量(端口23),需要开放23端口:
使用firewalld(CentOS/RHEL 7及以上)
sudo firewall-cmd --permanent --add-service=telnet sudo firewall-cmd --reload
使用iptables(CentOS/RHEL 6或旧版系统)
sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT sudo service iptables save sudo service iptables restart
使用ufw(Ubuntu/Debian)
sudo ufw allow telnet sudo ufw reload
测试Telnet服务
本地测试
在本地终端中执行以下命令,测试Telnet是否正常工作:
telnet localhost
如果成功连接,将显示登录提示界面。
远程测试
在另一台主机上执行:
telnet <服务器IP地址>
如果连接成功,说明Telnet服务已正确开启。
安全注意事项
- 禁用Telnet(推荐):由于Telnet以明文传输数据,存在严重安全风险,建议仅在内网测试环境中使用,生产环境应改用SSH。
- 限制访问IP:通过防火墙规则限制允许连接Telnet的IP地址,
sudo iptables -A INPUT -p tcp --dport 23 -s <允许的IP> -j ACCEPT sudo iptables -A INPUT -p tcp --dport 23 -j DROP
- 使用更安全的替代方案:如SSH协议,可通过以下命令安装SSH服务:
sudo yum install openssh-server -y # CentOS/RHEL sudo apt install openssh-server -y # Ubuntu/Debian
常见问题排查
- 连接超时:检查防火墙设置和Telnet服务状态,确保端口23已开放。
- 拒绝连接:确认xinetd服务正在运行,且配置文件中
disable = no。
相关问答FAQs
问题1:为什么现代Linux系统默认不开启Telnet服务?
答:Telnet协议在传输过程中不加密数据,用户名、密码等信息以明文形式传输,极易被窃取,出于安全考虑,现代Linux系统默认禁用Telnet,推荐使用加密的SSH协议。
问题2:如何彻底禁用Telnet服务?
答:首先停止xinetd服务(sudo systemctl stop xinetd),然后卸载Telnet相关软件包(sudo yum remove telnet-server xinetd或sudo apt remove telnetd xinetd),最后删除配置文件并重启防火墙以确保端口23被关闭。
