下面我将为您提供一个详细的、分步的指南,以在主流的 Linux 发行版(如 Ubuntu/Debian 和 CentOS/RHEL)上安装和配置 Telnet 服务器。

重要警告:Telnet 的安全性
在开始之前,请务必了解:
- 明文传输:Telnet 不会对传输的数据进行加密,这意味着在您的网络中,任何能够嗅探网络流量的设备都可以轻易地截获您的用户名、密码和所有操作命令。
- 现代替代品:对于任何需要安全远程访问的场景,SSH (Secure Shell) 是绝对的标准和推荐选择,SSH 对所有通信进行加密,并且是现代 Linux 系统的默认配置。
- 仅限特定用途:Telnet 仅建议用于以下情况:
- 测试网络连通性(
telnet <ip> <port>)。 - 在完全受信任的内部网络中,连接到特定的、没有 SSH 服务的网络设备(如一些老旧的打印机、交换机、路由器)进行管理。
- 在学习环境中了解网络协议。
- 测试网络连通性(
第一步:安装 Telnet 服务器
根据您的 Linux 发行版,使用相应的包管理器来安装,这里我们介绍最常用的 xinetd 方式,它是一种“按需启动”的服务,效率更高。
对于 Ubuntu/Debian 系统
-
更新软件包列表:
sudo apt update
-
安装 Telnet 服务器: 在 Ubuntu/Debian 上,通常通过安装
telnetd包来启用服务器功能,它依赖于xinetd。
(图片来源网络,侵删)sudo apt install telnetd xinetd
安装过程中,系统可能会自动配置
xinetd,如果没自动配置,请继续下一步。
对于 CentOS/RHEL/Fedora 系统
- 安装 Telnet 服务器:
在 CentOS/RHEL 上,我们同样安装
telnet-server包,它也依赖于xinetd。sudo yum install telnet-server xinetd # 对于 CentOS 8/RHEL 8/Fedora 及以上版本,使用 dnf # sudo dnf install telnet-server xinetd
第二步:配置 Telnet 服务器
xinetd 是一个超级守护进程,它负责管理像 Telnet 这样的网络服务,我们需要确保 xinetd 配置文件中启用了 Telnet 服务。
-
编辑 Telnet 配置文件: 使用您喜欢的文本编辑器(如
nano或vim)打开 Telnet 的xinetd配置文件。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 { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = yes }关键点:
disable = yes:这一行表示 Telnet 服务被禁用,我们需要将其改为no来启用它。server = /usr/sbin/in.telnetd:这指定了 Telnet 服务器的可执行文件路径。
-
启用服务: 将
disable = yes修改为disable = no。# ... (其他内容保持不变) disable = no # <--- 修改这里 # ... (其他内容保持不变)
-
保存并退出: 在
nano中,按Ctrl + X,然后按Y,最后按Enter保存。
第三步:启动并启用服务
我们需要启动 xinetd 服务,并设置它在系统启动时自动运行。
-
启动
xinetd服务:# 对于 systemd 系统 (Ubuntu 16.04+, CentOS 7+) sudo systemctl start xinetd # 对于旧的 SysVinit 系统 (CentOS 6, Ubuntu 14.04 等) # sudo service xinetd start
-
设置
xinetd开机自启:# 对于 systemd 系统 sudo systemctl enable xinetd # 对于旧的 SysVinit 系统 # sudo chkconfig xinetd on
-
检查服务状态:
# 对于 systemd 系统 sudo systemctl status xinetd
您应该看到绿色的
active (running)字样,表示服务正在运行。
第四步:配置防火墙
如果您的服务器启用了防火墙(如 ufw 或 firewalld),需要允许 Telnet 使用的 TCP 端口(默认是 23)。
对于 Ubuntu/Debian (使用 UFW)
-
允许 Telnet 端口:
sudo ufw allow telnet
或者直接指定端口:
sudo ufw allow 23/tcp
-
重新加载防火墙(UFW 已启用):
sudo ufw reload
对于 CentOS/RHEL (使用 Firewalld)
-
永久添加 Telnet 服务规则:
sudo firewall-cmd --permanent --add-service=telnet
-
重新加载防火墙以应用更改:
sudo firewall-cmd --reload
第五步:测试 Telnet 服务器
您可以从另一台计算机(或者在同一个 Linux 系统的终端里)来测试连接。
-
使用 Telnet 客户端连接: 假设您的服务器 IP 地址是
168.1.100,在客户端的命令行中输入:telnet 192.168.1.100
或者直接使用主机名:
telnet your-server-hostname
-
登录: 连接成功后,您会看到类似下面的提示,要求您输入用户名和密码。
Trying 192.168.1.100... Connected to 192.168.1.100. Escape character is '^]'. login: Password:输入您在服务器上创建的有效用户名和密码,如果登录成功,您将看到一个 Shell 提示符,就像直接在服务器前操作一样。
第六步:如何禁用/卸载 Telnet
出于安全考虑,如果您只是临时测试,之后应该立即禁用或卸载它。
-
禁用服务(推荐): 这是最快的方法,它会立即关闭服务但保留软件包。
# 编辑 /etc/xinetd.d/telnet 文件,将 disable = no 改回 disable = yes sudo nano /etc/xinetd.d/telnet # ... 修改 disable = yes ... sudo systemctl restart xinetd # 或 sudo service xinetd restart
-
卸载软件包: 如果您确定不再需要,可以完全卸载。
# Ubuntu/Debian sudo apt remove telnetd xinetd # CentOS/RHEL sudo yum remove telnet-server xinetd # 或 sudo dnf remove telnet-server xinetd
| 步骤 | 操作 | 命令 (示例) |
|---|---|---|
| 安装 | 安装 Telnet 和 xinetd |
sudo apt install telnetd xinetd |
| 配置 | 编辑 xinetd 配置文件启用服务 |
sudo nano /etc/xinetd.d/telnet (修改 disable = no) |
| 启动 | 启动并设置 xinetd 开机自启 |
sudo systemctl start xinetd & sudo systemctl enable xinetd |
| 防火墙 | 开放 23 端口 | sudo ufw allow 23/tcp |
| 测试 | 从客户端连接 | telnet <server_ip> |
| 清理 | 禁用或卸载服务 | 编辑配置文件改回 disable = yes 或 sudo apt remove ... |
再次强调,请务必将 Telnet 的使用限制在安全的、受信任的环境内,并优先考虑使用更安全的 SSH 协议进行远程管理。
