⚠️ 安全提醒:Telnet协议以明文传输所有数据(包括用户名、密码),极易被中间人攻击窃取敏感信息。生产环境中强烈建议使用SSH(Secure Shell)替代Telnet,SSH通过加密通道保障通信安全。以下教程仅用于测试或特殊场景。
CentOS默认安装Telnet客户端(telnet),但需手动安装服务端(telnet-server)及依赖(xinetd,Telnet的服务管理工具):
sudo yum install -y telnet-server xinetd
xinetd(超级守护进程)管理,需启动xinetd及telnet.socket:sudo systemctl start xinetd
sudo systemctl start telnet.socket
sudo systemctl enable xinetd
sudo systemctl enable telnet.socket
CentOS默认使用firewalld防火墙,需开放Telnet的默认端口(23/tcp):
# 临时放行(立即生效)
sudo firewall-cmd --add-port=23/tcp
# 永久放行(重启后保留)
sudo firewall-cmd --permanent --add-port=23/tcp
# 重载防火墙规则
sudo firewall-cmd --reload
修改securetty文件:
默认情况下,CentOS限制root用户通过Telnet远程登录。需编辑/etc/securetty文件,添加允许的终端设备(如pts/0、pts/1):
sudo vi /etc/securetty
在文件末尾添加以下内容(允许所有伪终端登录):
pts/0
pts/1
pts/2
pts/3
保存退出后,root用户即可通过Telnet远程登录。
调整SELinux策略(可选):
若SELinux处于Enforcing模式(默认),需允许Telnet连接。可临时设置为Permissive模式测试:
sudo setenforce 0
若需永久更改,编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=permissive。
在本地终端(如Windows的telnet客户端或另一台Linux机器)输入以下命令,替换<远程IP>为目标CentOS服务器的IP地址:
telnet <远程IP>
连接成功后,会提示输入用户名和密码(输入时无显示,输完回车):
Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
login: root
Password:
Last login: Mon Oct 15 10:00:00 from 192.168.1.101
[root@remote ~]#
输入正确的用户名和密码后,即可进入远程服务器的命令行界面。
user)通过Telnet登录,再通过su -切换至root,降低root账户泄露的风险:# 普通用户登录
telnet <远程IP>
login: user
Password:
# 切换至root
su -
Password:
# 安装OpenSSH服务器
sudo yum install -y openssh-server
# 启动SSH服务
sudo systemctl start sshd
# 设置开机自启
sudo systemctl enable sshd
# 测试SSH连接(加密)
ssh user@<远程IP>
SSH默认使用22端口,可通过firewall-cmd开放端口并配置密钥认证,进一步提升安全性。