如何开启linux的telnet服务

在Linux系统中,telnet服务是一种用于远程登录的协议,允许用户通过网络连接到远程主机并执行命令,尽管由于telnet采用明文传输,存在一定的安全风险(建议生产环境优先使用SSH加密协议),但在某些测试环境或特定场景下,仍需开启telnet服务,本文将详细介绍在不同Linux发行版中开启telnet服务的完整步骤,包括安装、配置、防火墙设置及服务验证等内容,帮助用户顺利完成telnet服务的部署。

如何开启linux的telnet服务

检查系统是否已安装telnet服务

在开启telnet服务前,需先确认系统是否已安装telnet服务端(telnet-server)和客户端(telnet-client),服务端用于提供远程登录服务,客户端用于连接其他telnet服务器。

检查服务端安装状态

  • CentOS/RedHat系统
    使用以下命令检查是否已安装telnet-server:

    rpm -qa | grep telnet-server

    若返回结果为空,则表示未安装;若显示类似“telnet-server-0.17-66.el7.x86_64”,则已安装。

  • Ubuntu/Debian系统
    使用以下命令检查:

    dpkg -l | grep telnetd

    若未安装,返回结果为空;已安装则显示类似“telnetd-0.17-41ubuntu1.3”。

检查客户端安装状态

客户端通常用于测试本地或远程telnet连接,检查命令与服务端类似:

  • CentOS/RedHatrpm -qa | grep telnet
  • Ubuntu/Debiandpkg -l | grep telnet

若未安装客户端,后续可通过安装命令一并安装(客户端通常随服务端安装包一同提供)。

安装telnet服务

若系统未安装telnet服务端或客户端,需根据不同发行版使用包管理器进行安装。

CentOS/RedHat系统

使用yum(CentOS 7及以下)或dnf(CentOS 8及以上)安装:

# CentOS 7及以下
yum install telnet-server telnet -y
# CentOS 8及以上
dnf install telnet-server telnet -y

安装过程中,若提示依赖冲突或仓库问题,可更新包列表(yum updatednf update)后重试。

Ubuntu/Debian系统

使用apt安装:

sudo apt update
sudo apt install telnetd telnet -y

telnetd是Ubuntu/Debian中telnet服务端的包名,telnet为客户端包名,安装完成后,可通过systemctl status telnetd(Ubuntu 18.04+)或service telnetd status(旧版)检查服务状态。

不同发行版安装命令对比

发行版系列 服务端包名 客户端包名 安装命令
CentOS/RHEL telnet-server telnet yum install telnet-server telnet -y(CentOS 7-)
dnf install telnet-server telnet -y(CentOS 8+)
Ubuntu/Debian telnetd telnet sudo apt install telnetd telnet -y

配置telnet服务

telnet服务通常通过xinetd(超级服务器)或独立模式运行,多数传统Linux发行版(如CentOS 7、Ubuntu 16.04)默认使用xinetd管理telnet服务,而新版系统(如CentOS 8+、Ubuntu 20.04+)可能需手动配置独立模式或启用xinetd

如何开启linux的telnet服务

基于xinetd的配置(适用于CentOS 7、Ubuntu 18.04及以下)

  • 检查xinetd是否安装

    # CentOS
    rpm -qa | grep xinetd
    # Ubuntu
    dpkg -l | grep xinetd

    若未安装,需先安装:yum install xinetd -y(CentOS)或sudo apt install xinetd -y(Ubuntu)。

  • 修改telnet服务配置
    编辑/etc/xinetd.d/telnet文件:

    vim /etc/xinetd.d/telnet

    修改以下参数:

    service telnet
    {
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
        disable         = no  # 将“yes”改为“no”以启用服务
    }

    关键参数说明:disable = no表示启用telnet服务,默认为yes(禁用)。

  • 重启xinetd服务

    systemctl restart xinetd  # CentOS 7+/Ubuntu 18.04+
    # 或
    service xinetd restart    # 旧版系统

独立模式配置(适用于CentOS 8+、Ubuntu 20.04+)

新版系统可能不再默认支持xinetd,需直接启动telnetd服务:

  • 安装telnet-server:确保已安装telnet-server(CentOS 8+为telnet-server,Ubuntu 20.04+为telnetd)。

  • 创建systemd服务单元(若未自带):
    创建文件/etc/systemd/system/telnetd.service

    [Unit]
    Description=Telnet Server
    After=network.target
    [Service]
    ExecStart=/usr/sbin/in.telnetd -l /bin/bash
    Restart=always
    [Install]
    WantedBy=multi-user.target

    ExecStart中的-l /bin/bash指定登录后的默认shell,可根据需求修改。

  • 启用并启动服务

    systemctl daemon-reload
    systemctl enable telnetd
    systemctl start telnetd

配置防火墙规则

telnet服务默认使用23端口,需确保防火墙允许该端口的入站连接,否则远程客户端无法访问。

CentOS 7+/RHEL 7+(firewalld)

# 永久开放23端口
firewall-cmd --permanent --add-port=23/tcp
# 重新加载防火墙规则
firewall-cmd --reload
# 验证端口是否开放
firewall-cmd --list-ports | grep 23

Ubuntu 18.04+/Debian 10+(ufw)

# 开放23端口
sudo ufw allow 23/tcp
# 启用ufw(若未启用)
sudo ufw enable
# 查看规则
sudo ufw status

旧版系统(iptables)

# 添加规则允许23端口
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
# 保存规则(CentOS:service iptables save;Ubuntu:iptables-save > /etc/iptables/rules.v4)

防火墙配置命令对比

发行版 防火墙工具 开放23端口命令 查看端口状态命令
CentOS 7+ firewalld firewall-cmd --permanent --add-port=23/tcp; firewall-cmd --reload firewall-cmd --list-ports
Ubuntu 18.04+ ufw sudo ufw allow 23/tcp sudo ufw status
CentOS 6/Ubuntu 14.04 iptables iptables -A INPUT -p tcp --dport 23 -j ACCEPT; service iptables save iptables -L -n | grep 23

启动telnet服务并设置开机自启

无论采用xinetd还是独立模式,均需确保服务启动并开机自启,避免重启后服务失效。

如何开启linux的telnet服务

基于xinetd的服务

# 启动xinetd
systemctl start xinetd
# 设置开机自启
systemctl enable xinetd
# 检查服务状态
systemctl status xinetd

独立模式服务

# 启动telnetd
systemctl start telnetd
# 设置开机自启
systemctl enable telnetd
# 检查服务状态
systemctl status telnetd

验证端口监听

使用netstatss命令检查23端口是否处于监听状态:

netstat -tuln | grep 23
# 或
ss -tuln | grep 23

若返回类似tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN的结果,表示telnet服务已正常监听。

测试telnet服务连接

本地测试

在本地终端执行:

telnet localhost 23

若成功,将显示登录提示(如Login:),输入用户名和密码即可登录。

远程测试

在另一台机器上执行:

telnet <服务器IP> 23

若连接成功,说明telnet服务已正常开启,若失败,检查防火墙规则、服务状态及网络连通性。

安全注意事项

由于telnet协议采用明文传输,用户名、密码及所有通信内容均可能被窃听,因此需严格限制使用场景:

  1. 限制访问IP:通过防火墙仅允许特定IP连接23端口,
    # firewalld仅允许192.168.1.100访问
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="23" accept"
    firewall-cmd --reload
  2. 避免在公网使用:仅在可信内网环境使用,禁止将telnet服务暴露于互联网。
  3. 替代方案:生产环境优先使用SSH(Secure Shell),默认端口22,支持加密传输,可通过sudo apt install openssh-server(Ubuntu)或yum install openssh-server(CentOS)安装。

相关问答FAQs

问题1:开启telnet服务后,本地连接正常,但远程机器无法连接,可能的原因是什么?
解答:远程无法连接通常由以下原因导致:

  1. 防火墙未开放23端口:检查服务器防火墙(如firewalld、ufw、iptables)是否允许23端口入站连接,可通过firewall-cmd --list-portssudo ufw status查看。
  2. telnet服务未启动:确认服务状态,xinetd模式需检查systemctl status xinetd,独立模式检查systemctl status telnetd
  3. 网络策略限制:若服务器位于路由器或云平台(如阿里云、AWS),需检查安全组规则是否开放23端口。
  4. SELinux或AppArmor拦截:CentOS系统可临时关闭SELinux(setenforce 0)测试;Ubuntu系统检查AppArmor(sudo aa-status)。

问题2:telnet和SSH的主要区别是什么?为什么推荐使用SSH?
解答:

  1. 加密方式:SSH(Secure Shell)采用非对称加密(如RSA)和对称加密传输数据,所有通信内容均加密;telnet采用明文传输,用户名、密码及命令均可被网络监听工具(如Wireshark)捕获。
  2. 端口与功能:SSH默认端口22,支持端口转发、隧道传输、X11转发等高级功能;telnet默认端口23,仅提供基础的远程登录功能。
  3. 安全性:SSH是IETF标准协议,经过多年安全验证;telnet因明文传输,存在严重安全隐患,已被大多数Linux发行版默认禁用。
  4. 兼容性:SSH客户端(如ssh命令)在所有现代系统广泛支持;telnet客户端因安全风险逐渐被淘汰,部分新系统需手动安装。

除非在特殊测试场景,否则应始终优先使用SSH进行远程管理。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15898.html

(0)
酷番叔酷番叔
上一篇 2025年8月24日 09:50
下一篇 2025年8月24日 10:05

相关推荐

  • Linux系统里如何配置OTG USB以实现设备连接?

    在Linux系统中配置OTG(On-The-Go)USB功能,可以让设备在主机(Host)和外设(Device)模式间灵活切换,实现如U盘互传、键盘鼠标连接、串口通信等场景,以下是详细的配置步骤,涵盖硬件准备、驱动加载、模式切换及实际应用场景,硬件准备与基础检查支持OTG的硬件主控芯片:需内置OTG控制器,常见……

    2025年9月22日
    1800
  • Linux系统中如何实现终端与图形界面的分屏显示?

    Linux系统中,分屏显示是提升多任务处理效率的核心功能,无论是终端操作还是图形界面,均支持多样化的分屏方案,以下从终端分屏、图形界面分屏及多显示器配置三个维度展开详细说明,终端分屏:tmux与screen的灵活应用在Linux终端环境中,多任务并行操作常需分屏功能,tmux和screen作为两大主流终端复用器……

    2025年9月16日
    2900
  • 如何将Linux系统制作成镜像?

    制作Linux系统镜像是一个将完整系统环境封装为可部署文件的过程,常用于虚拟机部署、云平台迁移或嵌入式设备开发,以下是详细步骤,涵盖环境准备、系统构建、配置优化及最终打包,准备环境与工具首先需要一台运行Linux的主机(如Ubuntu Server),并安装必要的工具,以Debian/Ubuntu为例,通过以下……

    2025年10月2日
    1100
  • 为什么你的网站流量上不去?

    在Linux系统中添加服务(通常指守护进程)是管理系统后台任务的核心操作,主要依赖Systemd(现代发行版标准)或SysVinit(旧版系统)实现,以下是详细步骤及最佳实践:Systemd 方式(推荐,适用于 Ubuntu 18.04+、CentOS 7+ 等)步骤 1:创建服务配置文件在 /etc/syst……

    2025年7月17日
    4900
  • define GNU_SOURCE

    在Linux系统中,隐藏进程通常涉及高级内核操作或权限隔离技术,需Root权限且主要用于安全研究、渗透测试等合法场景,以下是几种技术原理和实现方法,请严格遵守法律法规:内核模块劫持(动态库注入)原理:通过LD_PRELOAD劫持系统调用(如readdir),过滤进程信息,步骤:创建劫持库文件 hide_proc……

    2025年7月6日
    4800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信