凌峰创科服务平台

Linux如何开启并配置Telnet服务器?

⚠️ 重要安全警告

Telnet 是一种不安全的协议,它在网络上传输所有数据(包括用户名和密码)时都是明文的,这意味着任何在网络上进行嗅探(sniffing)的人都能轻易地截获你的凭据。

Linux如何开启并配置Telnet服务器?-图1
(图片来源网络,侵删)

强烈建议

  • 仅在完全信任的内网环境中使用,例如在家庭实验室或没有外部网络访问的测试环境中。
  • 对于任何需要安全连接的生产环境,请使用 SSH (Secure Shell),现代 Linux 发行版默认都安装并启用 SSH 服务,它使用加密来保护所有通信。

如果你已经了解并接受风险,请继续下面的步骤。


第一步:检查并安装 Telnet 服务器

大多数现代 Linux 发行版默认不安装 Telnet 服务器,但通常会包含 telnet 客户端工具,我们需要单独安装服务器端软件。

检查是否已安装

在终端中运行以下命令,检查 xinetd 是否已安装(Telnet 服务通常由 xinetd 超级服务器管理):

Linux如何开启并配置Telnet服务器?-图2
(图片来源网络,侵删)
rpm -q xinetd        # 适用于 CentOS, RHEL, Fedora
# 或
dpkg -l xinetd       # 适用于 Debian, Ubuntu

如果命令没有输出或显示“package is not installed”,则表示需要安装。

安装 Telnet 服务器

对于基于 Debian/Ubuntu 的系统:

# 更新软件包列表
sudo apt update
# 安装 xinetd 和 telnetd
sudo apt install xinetd telnetd

对于基于 CentOS/RHEL/Fedora 的系统:

# 安装 xinetd 和 telnet-server
sudo yum install xinetd telnet-server
# 对于 CentOS 8+ / RHEL 8+ / Fedora, 使用 dnf
# sudo dnf install xinetd telnet-server

第二步:配置 Telnet 服务

Telnet 服务通常由 xinetd 来管理,所以我们需要编辑 xinetd 的配置文件。

Linux如何开启并配置Telnet服务器?-图3
(图片来源网络,侵删)

编辑配置文件

打开 telnet 的配置文件:

sudo nano /etc/xinetd.d/telnet

如果文件不存在,你可以手动创建一个,文件内容应该如下所示:

# default: on
# description: The telnet server serves telnet sessions; it uses \
#       unencrypted username/password pairs for authentication.
service telnet
{
        disable         = yes    # <-- 将这里的 yes 改为 no
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd
        log_on_failure  += USERID
}

关键配置项:

  • disable = yes:这行控制 Telnet 服务是否被禁用。将其修改为 disable = no,以启用该服务。

保存并关闭文件(在 nano 中是 Ctrl+X,然后按 Y,再按 Enter)。


第三步:启动并启用服务

启动 xinetd 服务

xinetd 是一个超级服务器,它会根据配置文件来管理它下面的各种服务(如 Telnet),我们需要确保 xinetd 本身正在运行。

# 对于 systemd 系统 (Ubuntu 16.04+, CentOS 7+, Debian 8+)
sudo systemctl start xinetd
sudo systemctl enable xinetd
# 对于较旧的系统使用 SysVinit
sudo service xinetd start
sudo chkconfig xinetd on

检查服务状态

验证 xinetd 是否正在运行,Telnet 端口(通常是 23)是否在监听。

# 检查 xinetd 服务状态
sudo systemctl status xinetd
# 检查端口 23 是否在监听
netstat -tuln | grep 23
# 或者使用 ss 命令 (更现代)
ss -tuln | grep 23

如果看到类似 tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 的输出,说明 Telnet 服务器已经成功启动并正在监听。


第四步:配置防火墙(非常重要)

如果你的服务器启用了防火墙(如 ufwfirewalld),你需要开放 Telnet 的 23 端口,否则外部无法连接。

对于使用 UFW (Uncomplicated Firewall) 的系统 (如 Ubuntu):

# 允许 TCP 端口 23 的入站连接
sudo ufw allow 23/tcp
# 检查防火墙规则
sudo ufw status

对于使用 Firewalld 的系统 (如 CentOS/RHEL/Fedora):

# 永久开放 TCP 端口 23
sudo firewall-cmd --permanent --add-port=23/tcp
# 重新加载防火墙规则以应用更改
sudo firewall-cmd --reload
# 检查是否已添加
sudo firewall-cmd --list-ports

第五步:测试连接

你可以从另一台计算机(在同一局域网内)上使用 Telnet 客户端来连接你的服务器。

  1. 打开命令行终端。
  2. 使用 telnet 命令,后跟服务器的 IP 地址。
telnet <你的服务器IP地址>
telnet 192.168.1.100

如果连接成功,你将看到类似以下的提示,并可以输入用户名和密码进行登录。

Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
CentOS 7 (Core)
Kernel 3.10.0-1160.36.2.el7.x86_64 on an x86_6
localhost login:

常见问题排查

  1. 连接被拒绝 (Connection refused)

    • 原因1xinetd 服务未运行,检查 sudo systemctl status xinetd
    • 原因2telnet 服务在 xinetd 配置中仍是 disable = yes,检查 /etc/xinetd.d/telnet 文件。
    • 原因3:防火墙阻止了端口 23,检查并开放防火墙端口。
    • 原因4:服务器绑定了特定的 IP 地址,而不是 0.0.0,检查 netstat -tuln | grep 23 的输出。
  2. 登录后立即断开

    • 这通常是由于 /etc/securetty 文件配置导致的,该文件列出了允许 root 用户通过 telnet 登录的终端设备。
    • 要允许 root 通过 Telnet 登录,可以编辑 /etc/securetty 文件,确保其中包含 pts/0, pts/1 等内容(或者直接清空该文件,但这会降低安全性)。
    • 最佳实践不要使用 root 用户通过 Telnet 登录,建议创建一个普通用户,并使用 susudo 来提升权限。

如何禁用/卸载 Telnet 服务器

如果你不再需要 Telnet,出于安全考虑,应该禁用或卸载它。

  1. 禁用服务

    # 编辑 /etc/xinetd.d/telnet 文件,将 disable = no 改回 disable = yes
    sudo nano /etc/xinetd.d/telnet
  2. 停止 xinetd 服务

    sudo systemctl stop xinetd
  3. 卸载软件包

    # Debian/Ubuntu
    sudo apt remove xinetd telnetd
    # CentOS/RHEL/Fedora
    sudo yum remove xinetd telnet-server
  4. 关闭防火墙端口

    # UFW
    sudo ufw delete allow 23/tcp
    # Firewalld
    sudo firewall-cmd --permanent --remove-port=23/tcp
    sudo firewall-cmd --reload
分享:
扫描分享到社交APP
上一篇
下一篇