服务器测评网
我们一直在努力

Linux如何开启telnet服务,telnet服务启动命令详解?

在Linux运维管理中,开启Telnet服务通常用于网络连通性测试或特定老旧设备的维护。核心上文归纳是:在Linux系统中开启Telnet服务需完成安装服务端软件包、配置守护进程、开放防火墙端口以及调整SELinux策略四个关键步骤,且必须严格限制在内网环境使用。 由于Telnet以明文传输账号密码,极易被嗅探,因此现代生产环境默认使用SSH,仅在调试或特殊需求下启用Telnet,以下将基于CentOS/RHEL和Ubuntu/Debian两大主流发行版,详细解析专业的部署流程与安全加固方案。

Linux如何开启telnet服务,telnet服务启动命令详解?

安全前置与准备工作

在执行任何操作之前,必须明确Telnet协议的安全缺陷,它不具备加密能力,数据包在网络中传输时以明文形式存在。开启Telnet服务的首要原则是配置防火墙规则,仅允许受信任的IP地址访问,或确保服务器运行在隔离的局域网内。

准备工作包括检查系统是否已安装相关软件包,以及确认23号端口是否被占用,可以使用netstat -tunlp | grep :23ss -tunlp | grep :23命令进行端口探测,若端口被占用,需先停止占用该端口的服务或修改Telnet默认端口(虽然不推荐修改标准端口,但在特定安全策略下是一种手段)。

CentOS/RHEL系统下的Telnet服务部署

在CentOS 7、8、9及RHEL系列系统中,Telnet服务通常由telnet-server包提供,且依赖于xinetd超级服务进行管理(尽管新版本逐渐支持独立运行,但xinetd模式仍是管理Telnet的最佳实践)。

安装软件包
使用yum或dnf包管理器安装服务端和客户端软件,执行命令:
yum install -y telnet-server telnet xinetd
这里安装telnet是为了本机测试连接,telnet-server是服务主体,xinetd是守护进程管理器。

配置服务
安装完成后,需要修改/etc/xinetd.d/telnet配置文件来激活服务,使用vi编辑器打开该文件,找到disable = yes这一行,将其修改为disable = no,这一步至关重要,它告诉xinetd允许监听Telnet连接请求。

启动并设置开机自启
配置修改完毕后,启动xinetd服务:
systemctl start xinetd
systemctl enable xinetd
Telnet服务已随xinetd启动,可以通过systemctl status xinetd查看运行状态。

Linux如何开启telnet服务,telnet服务启动命令详解?

Ubuntu/Debian系统下的Telnet服务部署

在基于Debian的系统中,Telnet服务通常由inetdopenbsd-inetd管理,配置逻辑与红帽系略有不同。

安装软件包
执行apt命令进行安装:
apt-get update
apt-get install -y telnetd openbsd-inetd
在Ubuntu中,安装telnetd通常会自动配置好inetd,无需手动编辑复杂的配置文件即可运行。

服务管理
安装完成后,inetd服务通常会自动启动,如果没有启动,可以手动执行:
systemctl start openbsd-inetd
systemctl enable openbsd-inetd
在Ubuntu系统中,Telnet服务是作为inetd的子进程运行的,当有请求到达时才由inetd拉起,这种按需唤醒机制更加节省系统资源。

防火墙与SELinux策略配置

这是确保Telnet服务能够被外部访问且符合系统安全策略的关键环节,很多情况下,服务已启动但无法连接,原因皆在于此。

配置防火墙
对于使用Firewalld的CentOS系统,需要开放TCP 23端口:
firewall-cmd --permanent --add-port=23/tcp
firewall-cmd --reload
对于使用UFW的Ubuntu系统,执行:
ufw allow 23/tcp
专业建议: 在生产环境中,应使用rich rule(富规则)限制来源IP,例如仅允许192.168.1.0/24网段连接:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="23" accept'

调整SELinux策略
在CentOS/RHEL系统中,如果SELinux处于Enforcing强制模式,它会阻止Telnet服务,即使防火墙开放,连接也会被拒绝,需要调整SELinux布尔值:
setsebool -P telnet_disable_trans 0
或者,如果系统策略较新,可能需要检查并允许telnet使用网络:
getsebool telnetd_disable_trans
如果返回为on,则需要关闭它以允许服务运行,这一步是很多运维人员容易忽视的“隐形坑”。

Linux如何开启telnet服务,telnet服务启动命令详解?

服务验证与故障排查

配置完成后,首先在本地进行回环测试,验证服务是否正常监听:
telnet 127.0.0.1 23
如果看到Connected to 127.0.0.1Escape character is '^]'字样,说明服务端运行正常。

随后在客户端进行远程连接测试,如果连接失败,应按以下顺序排查:

  1. 检查端口监听: 确认23端口确实处于LISTEN状态。
  2. 检查防火墙: 使用tcpdump抓包分析,观察SYN包是否到达服务器,是否有回包。
  3. 检查SELinux: 查看/var/log/audit/audit.log,是否有AVC DENY拒绝记录。
  4. 检查PAM日志: 如果连接上但立即断开,可能是/etc/securetty文件限制(仅允许root在tty终端登录),需注释掉该文件中的限制或使用普通用户登录。

专业建议与替代方案

虽然本文详述了Telnet的开启方法,但作为专业的运维人员,必须意识到Telnet已被时代淘汰,在必须使用Telnet的场景下(如无法升级固件的老旧网络设备),建议结合VPN技术使用,通过加密隧道传输Telnet流量,从而规避明文传输风险,对于Linux服务器之间的远程管理,SSH协议是唯一标准的选择,其配置灵活、安全性高,完全能够替代Telnet的所有功能。


相关问答

Q1:为什么在Linux上开启Telnet服务后,远程连接显示“Connection refused”?
A: “Connection refused”错误通常意味着请求到达了服务器,但目标端口没有服务在监听,或者被防火墙/安全策略直接拒绝,首先检查telnet-serverxinetd服务是否真正启动(使用systemctl status),在CentOS/RHEL系统上,极有可能是SELinux处于强制模式并拦截了Telnet服务,尝试执行setsebool -P telnet_disable_trans 0并重启服务,确认/etc/xinetd.d/telnet文件中的disable属性是否已设置为no

Q2:Telnet服务是否支持多用户同时登录?
A: 是的,Telnet协议本身支持多用户并发连接,在Linux中,这通常由xinetdinetd超级服务器进行管理,默认配置下,只要系统资源允许且没有在/etc/xinetd.d/telnet配置文件中通过instances参数进行限制,就可以允许多个客户端同时连接到服务器的23端口,如果需要限制并发数以防止资源耗尽攻击,可以在配置文件中添加instances = 5(限制为5个连接)等参数。

赞(0)
未经允许不得转载:好主机测评网 » Linux如何开启telnet服务,telnet服务启动命令详解?