菜鸟科技网

Linux如何开启Telnet服务命令?

在Linux系统中,Telnet是一种用于远程登录的网络协议,它允许用户通过命令行界面与远程主机进行交互,虽然出于安全考虑,现代Linux系统更推荐使用SSH协议,但某些特定场景下仍可能需要启用Telnet服务,以下是Linux系统中开启Telnet服务的详细步骤及相关注意事项。

Linux如何开启Telnet服务命令?-图1
(图片来源网络,侵删)

检查系统是否已安装Telnet服务

在开启Telnet之前,首先需要确认系统中是否已安装Telnet服务器软件,常见的Telnet服务器软件有telnetd和in.telnetd,以CentOS/RHEL系统为例,可以使用以下命令检查:

rpm -qa | grep telnet

如果输出结果中包含telnet-server或xinetd(Telnet服务的依赖服务),则说明已安装;否则需要先安装,对于基于Debian/Ubuntu的系统,可以使用:

dpkg -l | grep telnet

安装Telnet服务

CentOS/RHEL系统

使用yum包管理器安装Telnet服务器:

sudo yum install telnet-server xinetd -y

安装完成后,确保xinetd服务已安装,因为Telnet服务通常由xinetd管理。

Linux如何开启Telnet服务命令?-图2
(图片来源网络,侵删)

Ubuntu/Debian系统

使用apt包管理器安装:

sudo apt update
sudo apt install telnetd xinetd -y

配置Telnet服务

启用xinetd服务

Telnet服务通常由xinetd超级服务器管理,因此需要确保xinetd已启动并设置为开机自启:

sudo systemctl enable xinetd
sudo systemctl start xinetd

编辑Telnet配置文件

在CentOS/RHEL系统中,Telnet服务的配置文件位于/etc/xinetd.d/telnet,使用文本编辑器(如vim)打开该文件:

sudo vim /etc/xinetd.d/telnet

确保文件中的disable参数设置为no,表示启用服务:

Linux如何开启Telnet服务命令?-图3
(图片来源网络,侵删)
service telnet
{
    flags        = REUSE
    socket_type  = stream
    wait         = no
    user         = root
    server       = /usr/sbin/in.telnetd
    log_on_failure  += USERID
    disable     = no  # 确保此处为no
}

在Ubuntu/Debian系统中,配置文件可能位于/etc/inetd.conf,确保添加以下行:

telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

重启xinetd服务

保存配置文件后,重启xinetd服务使配置生效:

sudo systemctl restart xinetd

配置防火墙规则

默认情况下,Linux系统的防火墙可能会阻止Telnet流量(端口23),需要开放23端口:

使用firewalld(CentOS/RHEL 7及以上)

sudo firewall-cmd --permanent --add-service=telnet
sudo firewall-cmd --reload

使用iptables(CentOS/RHEL 6或旧版系统)

sudo iptables -A INPUT -p tcp --dport 23 -j ACCEPT
sudo service iptables save
sudo service iptables restart

使用ufw(Ubuntu/Debian)

sudo ufw allow telnet
sudo ufw reload

测试Telnet服务

本地测试

在本地终端中执行以下命令,测试Telnet是否正常工作:

telnet localhost

如果成功连接,将显示登录提示界面。

远程测试

在另一台主机上执行:

telnet <服务器IP地址>

如果连接成功,说明Telnet服务已正确开启。

安全注意事项

  1. 禁用Telnet(推荐):由于Telnet以明文传输数据,存在严重安全风险,建议仅在内网测试环境中使用,生产环境应改用SSH。
  2. 限制访问IP:通过防火墙规则限制允许连接Telnet的IP地址,
    sudo iptables -A INPUT -p tcp --dport 23 -s <允许的IP> -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
  3. 使用更安全的替代方案:如SSH协议,可通过以下命令安装SSH服务:
    sudo yum install openssh-server -y  # CentOS/RHEL
    sudo apt install openssh-server -y  # Ubuntu/Debian

常见问题排查

  1. 连接超时:检查防火墙设置和Telnet服务状态,确保端口23已开放。
  2. 拒绝连接:确认xinetd服务正在运行,且配置文件中disable = no

相关问答FAQs

问题1:为什么现代Linux系统默认不开启Telnet服务?
答:Telnet协议在传输过程中不加密数据,用户名、密码等信息以明文形式传输,极易被窃取,出于安全考虑,现代Linux系统默认禁用Telnet,推荐使用加密的SSH协议。

问题2:如何彻底禁用Telnet服务?
答:首先停止xinetd服务(sudo systemctl stop xinetd),然后卸载Telnet相关软件包(sudo yum remove telnet-server xinetdsudo apt remove telnetd xinetd),最后删除配置文件并重启防火墙以确保端口23被关闭。

分享:
扫描分享到社交APP
上一篇
下一篇