2026年Linux服务器Telnet远程登录完全指南:从安装到安全配置(2026)

一、Telnet协议概述

Telnet是一种古老的远程登录协议,通过TCP端口23连接远程主机。在Linux服务器管理中,Telnet曾是最常用的远程管理方式之一。

核心特点
– 明文传输:所有数据(包括用户名和密码)以明文形式传输
– 简单易用:无需复杂配置即可使用
– 跨平台:客户端支持Windows、macOS、Linux等多种系统

2026年的使用现状
– Telnet因安全问题已逐渐被SSH取代
– 在某些特定场景(如路由器管理console、内网调试)仍有使用
– 学习Telnet有助于理解网络协议原理

二、Telnet客户端安装

2.1 Ubuntu/Debian系统

# 安装Telnet客户端
sudo apt update
sudo apt install telnet -y

# 验证安装
telnet --version

2.2 CentOS/RHEL系统

# 安装Telnet客户端
sudo yum install telnet -y

# 或使用dnf
sudo dnf install telnet -y

2.3 Windows系统

Windows 10/11内置Telnet客户端,需要手动启用:

# 以管理员身份运行PowerShell
dism /online /enable-feature /featurename:TelnetClient

或通过”控制面板” → “程序” → “启用或关闭Windows功能” → 勾选”Telnet客户端”。

2.4 macOS系统

macOS默认已安装Telnet客户端,可直接使用:

# 验证
which telnet
telnet localhost

三、Telnet服务器安装与配置

3.1 安装Telnet服务器(Ubuntu)

# 安装telnetd
sudo apt install telnetd -y

# 检查服务状态
sudo systemctl status inetd

# 启动服务
sudo systemctl start inetd
sudo systemctl enable inetd

3.2 安装Telnet服务器(CentOS)

# 安装xinetd
sudo yum install xinetd telnet-server -y

# 启动服务
sudo systemctl enable xinetd
sudo systemctl start xinetd

# 配置防火墙放行
sudo firewall-cmd --permanent --add-port=23/tcp
sudo firewall-cmd --reload

3.3 配置Telnet服务器

编辑配置文件 /etc/inetd.conf(Ubuntu)或 /etc/xinetd.d/telnet(CentOS):

# Ubuntu - /etc/inetd.conf
telnet stream tcp nowait root /usr/sbin/telnetd telnetd

# CentOS - /etc/xinetd.d/telnet
service telnet
{
    disable = no
    flags = REUSE
    socket_type = stream
    wait = no
    user = root
    server = /usr/sbin/in.telnetd
    log_on_failure += USERID
}

四、连接远程Linux服务器

4.1 基本连接命令

# 连接到远程服务器
telnet 192.168.1.100

# 指定端口连接(默认23)
telnet 192.168.1.100 23

# 使用域名连接
telnet example.com

4.2 连接交互过程

Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.

Ubuntu 22.04 LTS
login: username
Password: 
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-52-generic x86_64)
 * Documentation:  https://help.ubuntu.com/
 * Management:     https://landscape.canonical.com/
 * Support:       https://ubuntu.com/advantage

Last login: Mon May 11 06:00:00 2026 from 192.168.1.10
username@server:~$

4.3 Telnet子命令

在Telnet会话中可使用以下子命令:

命令 简写 说明
open hostname o 连接到指定主机
close c 关闭当前连接
quit q 退出Telnet
status 显示连接状态
set 设置会话参数
unset 取消设置
z 暂停Telnet(按回车继续)
? 显示帮助

五、安全配置与加固

5.1 关键安全���告

⚠️ 重要提醒
– Telnet传输数据为明文,密码和敏感信息可被窃听
– 强烈建议仅在内网或可信网络环境使用
– 生产环境优先使用SSH协议

5.2 限制IP访问

# Ubuntu - 使用/etc/hosts.deny和/etc/hosts.allow
# 禁止所有访问
echo "ALL: ALL" | sudo tee /etc/hosts.deny

# 仅允许特定IP
echo "in.telnetd: 192.168.1.0/255.255.255.0" | sudo tee /etc/hosts.allow

5.3 使用TCP Wrapper

编辑 /etc/hosts.allow

# 仅允许192.168.1.0/24网段访问
in.telnetd: 192.168.1.

# 拒绝其他所有
in.telnetd: ALL: deny

5.4 防火墙限制

# iptables限制来源IP
sudo iptables -A INPUT -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 23 -j DROP

5.5 替代方案:SSH

强烈建议使用SSH代替Telnet

# 安装SSH客户端
sudo apt install openssh-client -y

# 连接到远程服务器
ssh username@192.168.1.100

# 使用密钥登录
ssh -i ~/.ssh/id_rsa username@192.168.1.100

SSH优势:
– 加密传输
– 密钥认证
– 端口转发
– 文件传输(SFTP)

六、故障排查

6.1 连接被拒绝

# 1. 检查Telnet服务是否运行
sudo systemctl status inetd

# 2. 检查端口是否监听
sudo netstat -tlnp | grep 23

# 3. 检查防火墙
sudo iptables -L -n | grep 23

6.2 连接超时

# 1. 检查网络连通性
ping 192.168.1.100

# 2. 检查路由
traceroute 192.168.1.100

# 3. 检查TCP端口
nc -zv 192.168.1.100 23

6.3 登录失败

# 1. 检查用户名密码是否正确
# 2. 检查/etc/securetty是否包含pts/0等终端
# 3. 检查用户是否被禁用
sudo passwd -l username

6.4 乱码问题

Telnet可能显示乱码,通常是编码问题:

# 在Telnet中设置编码
set locale en_US.UTF-8

七、常见问题解答

Q1: Telnet和SSH有什么区别?

A: Telnet是明文传输,SSH是加密传输。SSH更安全,已成为主流远程管理方式。

Q2: Telnet可以传输文件吗?

A: 标准Telnet协议不支持文件传输,可使用FTP或SFTP代替。

Q3: 如何测试Telnet端口是否开放?

A: 使用telnet hostname 23nc -zv hostname 23测试。

Q4: Telnet安全吗?

A: 不安全。仅在内网可信环境使用,生产环境使用SSH。

Q5: 为什么连接Telnet后无法输入?

A: 可能是终端设置问题,尝试按Enter键激活,或使用set locale设置编码。

八、总结

Telnet作为早期远程管理协议,虽然因安全问题逐渐被SSH取代,但在某些特定场景仍有使用价值。了解Telnet协议有助于:

  • 学习网络协议基础
  • 内网调试和网络诊断
  • 管理和访问特定设备

核心要点
– Telnet明文传输,存在安全风险
– 仅在内网可信环境使用
– 生产环境优先使用SSH
– 掌握故障排查方法

本文基于2026年Linux系统环境编写,具体命令可能因发行版不同而略有差异。

发表回复

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