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

Linux telnet服务怎么开启,如何配置telnet服务端口

开启 Linux Telnet 服务的核心上文归纳在于:正确安装 telnet-server 软件包、配置 xinetd 超级服务器或 systemd 服务,并精准调整防火墙与 SELinux 策略。 尽管在当前的网络环境中,SSH 协议因其加密特性已成为远程管理的绝对主流,但 Telnet 作为一种经典的网络协议,在排查网络连通性、调试特定端口状态以及维护某些无法使用 SSH 的老旧遗留系统时,依然发挥着不可替代的底层调试作用,本文将基于 CentOS/RHEL 及 Ubuntu/Debian 两大主流发行版,详细阐述 Telnet 服务的开启流程、安全加固方案及故障排查思路。

Linux telnet服务怎么开启,如何配置telnet服务端口

环境准备与软件包安装

在 Linux 系统中,Telnet 服务通常由两部分组成:客户端和服务器端,默认情况下,大多数 Linux 发行版仅预装了客户端,用于连接其他服务,若要将本机配置为 Telnet 服务器,必须手动安装服务端软件包。

对于 CentOS 7/8、RHEL 及 Rocky Linux 等基于 Red Hat 的系统,Telnet 服务通常由 xinetd(超级互联网守护进程)进行管理,需要确认系统是否已安装 telnet-serverxinetd,可以通过 rpm -qa | grep telnet 命令进行查询,若未安装,执行以下命令进行安装:

yum install -y telnet-server xinetd

对于 Ubuntu 20.04/22.04 及 Debian 系统,Telnet 服务通常由 inetd 或直接由 systemd 管理,安装命令如下:

apt-get update
apt-get install -y telnetd xinetd

注意: 在现代 Ubuntu 系统中,有时仅安装 telnetd 即可,但为了保持配置的一致性和兼容性,建议同时安装 xinetd,因为它是管理按需启动服务的传统且高效的方式。

核心配置文件详解与启用

安装完成后,Telnet 服务默认处于禁用状态,这是出于安全考虑,开启服务的核心在于修改配置文件。

配置 xinetd 下的 Telnet

在 Red Hat 系列系统中,Telnet 的配置文件位于 /etc/xinetd.d/telnet,使用文本编辑器(如 vinano)打开该文件,你需要找到 disable = yes 这一行,将其修改为 disable = no,这一步至关重要,它告诉 xinetd 守护进程允许监听 Telnet 连接请求。

为了增强服务的可追溯性,建议在配置文件中增加日志记录选项,例如添加 log_on_success += USERIDlog_on_failure += USERID,这样可以记录下成功或失败连接的源用户信息,便于后续的安全审计。

启动并设置开机自启

配置文件修改完毕后,需要重启 xinetd 服务以使配置生效。

Linux telnet服务怎么开启,如何配置telnet服务端口

systemctl restart xinetd
systemctl enable xinetd

可以使用 netstat -antp | grep :23ss -lntp | grep :23 命令检查系统是否已开始监听默认的 23 端口,如果看到 xinetd 进程正在监听 TCP 23 端口,说明服务端已成功启动。

防火墙与 SELinux 策略调整

即便服务已启动并监听端口,Linux 内核自带的防火墙和 SELinux 安全机制仍会阻断外部连接,这是运维中最容易被忽视的环节。

防火墙配置

对于使用 Firewalld 的系统(如 CentOS 7+),必须将 Telnet 服务添加至信任区域,或者直接开放 23 端口:

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

对于使用 UFW 的 Ubuntu 系统,执行:

ufw allow 23/tcp

如果是传统的 Iptables,则需要添加规则:iptables -A INPUT -p tcp --dport 23 -j ACCEPT,并记得保存规则。

SELinux 设置

在 CentOS/RHEL 系统中,SELinux 处于 Enforcing 强制模式,它会阻止 Telnet 服务访问关键的系统资源,可以通过 getenforce 命令查看状态,若需临时测试,可执行 setenforce 0 将其转为 Permissive 模式,若要永久开启 Telnet 支持,应使用管理工具调整布尔值:

setsebool -P telnetd_disable_trans 1

或者确保 SELinux 策略允许 telnet 监听网络,这通常需要安装特定的策略包或正确配置文件上下文。

安全风险与专业运维见解

必须强调的是,Telnet 协议采用明文传输数据。 这意味着用户的账号、密码以及传输的所有数据在网络上都是以纯文本形式发送的,极易被中间人攻击嗅探截获,在生产环境中开启 Telnet 存在极大的安全隐患。

Linux telnet服务怎么开启,如何配置telnet服务端口

专业的解决方案与独立见解:

  1. 严格限制访问来源: 不要将 Telnet 服务暴露在公网,应在防火墙中配置,仅允许内网特定的管理 IP 地址访问 23 端口,仅允许 192.168.1.0/24 网段连接。
  2. 利用 TCP Wrappers: 通过配置 /etc/hosts.allow/etc/hosts.deny 文件,在服务层面进一步限制访问权限,在 hosts.allow 中写入 in.telnetd: 192.168.1.,在 hosts.deny 中写入 in.telnetd: ALL
  3. 仅用于调试,禁用于登录: 在很多现代运维场景中,开启 Telnet 仅仅是为了测试某台服务器的端口连通性(telnet ip port),而非为了远程 Shell 管理,如果是为了连通性测试,建议在测试完成后立即关闭服务。
  4. 容器化隔离: 如果必须使用 Telnet 服务进行某些老旧设备的通信,建议将其部署在独立的容器或虚拟机中,与核心业务系统隔离,降低被攻破后的横向移动风险。

常见故障排查

在配置过程中,可能会遇到“Connection refused”或“Connection timed out”错误。

  • Connection refused: 通常表示服务未启动,或端口被防火墙拒绝,且目标主机可达,此时应检查 systemctl status xinetd 及防火墙规则。
  • Connection timed out: 通常表示请求在传输途中被丢弃,可能是中间网络设备(如路由器、ACL)拦截,或者是目标主机的内核防火墙直接 DROP 了包,没有返回拒绝信息。
  • 无法登录(Login incorrect): 如果服务连接正常但无法登录,除了检查密码外,还应检查 /etc/securetty 文件(在某些旧版系统中,它限制了 root 只能从物理终端登录),以及 PAM 模块配置。

相关问答

Q1:为什么在现代 Linux 系统中,Telnet 默认都是关闭的,使用它有什么替代方案吗?
A: Telnet 默认关闭是因为其明文传输机制存在严重的安全隐患,容易被黑客窃听账号密码,目前的标准替代方案是 SSH (Secure Shell) 协议,SSH 使用非对称加密进行身份验证,并对所有传输的数据进行加密,能够完美防御流量劫持、中间人攻击等威胁,在 99% 的远程管理场景下,都应优先使用 SSH。

Q2:我已经开启了 Telnet 服务,但无法使用 root 用户登录,提示“Login incorrect”,密码是正确的,这是为什么?
A: 这通常是由于系统安全策略限制导致的,在许多 Linux 发行版(如 Red Hat 系列)中,默认配置禁止 root 用户通过 Telnet 直接远程登录,以防止特权账号泄露,这是通过 /etc/securetty 文件或 PAM(Pluggable Authentication Modules)配置控制的。解决方案是: 先使用普通普通用户登录 Telnet,然后通过 su -sudo -i 命令切换至 root 用户,如果必须允许 root 直接登录,需要修改 /etc/securetty(添加 pts/0 等伪终端)或调整 PAM 配置,但出于安全考虑,强烈不建议这样做。


互动环节:
您在日常运维工作中是否遇到过必须使用 Telnet 才能解决的特殊网络故障?或者您所在的团队是如何管理 Telnet 这种高风险服务的?欢迎在评论区分享您的实战经验和安全策略,欢迎关注本网站,获取更多 Linux 运维与网络技术干货。

赞(0)
未经允许不得转载:好主机测评网 » Linux telnet服务怎么开启,如何配置telnet服务端口