Telnet 是一个经典的网络协议,用于通过命令行界面远程访问其他计算机。虽然由于安全性问题(明文传输)在现代环境中已较少使用,但在某些内部网络或测试环境中仍有应用价值。
大多数 Linux 发行版默认不安装 Telnet 客户端,需要手动安装:
# Debian/Ubuntu
sudo apt-get install telnet
# CentOS/RHEL
sudo yum install telnet
# Fedora
sudo dnf install telnet
# Arch Linux
sudo pacman -S inetutils
如果需要让其他机器通过 Telnet 连接到本机:
# Debian/Ubuntu
sudo apt-get install telnetd
# CentOS/RHEL
sudo yum install telnet-server
# Fedora
sudo dnf install telnet-server
# 对于使用xinetd的系统(如CentOS 6)
sudo vi /etc/xinetd.d/telnet
# 修改 disable = no
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
# 重启xinetd服务
sudo service xinetd restart
# 启用telnet.socket
sudo systemctl enable telnet.socket
sudo systemctl start telnet.socket
# 开放23端口
sudo ufw allow 23/tcp # Ubuntu
sudo firewall-cmd --permanent --add-port=23/tcp # CentOS/Fedora
sudo firewall-cmd --reload
telnet [主机名或IP地址] [端口]
# 例如:
telnet 192.168.1.100
Ctrl+]
然后输入 quit
Ctrl+]
然后输入 help
Telnet 常被用来测试端口是否开放:
telnet example.com 80
如果不再需要 Telnet 服务:
# 对于xinetd系统
sudo vi /etc/xinetd.d/telnet
# 修改 disable = yes
sudo service xinetd restart
# 对于systemd系统
sudo systemctl stop telnet.socket
sudo systemctl disable telnet.socket
# 移除防火墙规则
sudo ufw delete allow 23/tcp # Ubuntu
sudo firewall-cmd --permanent --remove-port=23/tcp # CentOS/Fedora
sudo firewall-cmd --reload
考虑使用更安全的 SSH:
# 安装SSH
sudo apt-get install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # CentOS/RHEL
# 连接
ssh username@hostname
Telnet 虽然简单易用,但由于其安全性缺陷,建议仅在受控环境中使用或用于测试目的。