CentOS7.6 开启 Telnet 服务

一、Telnet 服务简介

Telnet 协议 是 TCP/IP 协议族中的一员,是 Internet 远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用 Telnet 程序,用它连接到服务器。终端使用者可以在 Telnet 程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 Telnet 会话,必须输入用户名和密码来登录服务器。Telnet 是常用的远程控制 Web 服务器的方法。

参考:Telnet_百度百科

二、开启步骤

以下操作基于 CentOS7.6:

[root@showayCentOS ~]# tail /etc/redhat-release                // 查看 centos 版本
CentOS Linux release 7.6.1810 (Core) 

1、安装软件

1)、检查是否已安装 telnet

需要安装的软件有三个:

  • telnet-server:telnet 服务端
  • xinetd:telnet 的自启动依赖它

安装之前先检测是否已安装了这些软件包:

[root@showayCentOS ~]# rpm -qa|grep telnet                    // 检查是否安装了 telnet
[root@showayCentOS ~]# rpm -qa|grep xinetd                    // 检查是否安装了 xinetd
[root@showayCentOS ~]# 

如上所示,执行结果没有输出,表明该服务器上没有安装 telnet 和 xinetd。

2)、安装 telnet 及 xinetd

查询可以安装的 telnet 和 xinetd 程序包:

[root@showayCentOS ~]# yum list|grep telnet                    // 显示所有已安装和可安装的程序包
telnet.x86_64                               1:0.17-64.el7              base    // 客户端,可以安装以方便自测
telnet-server.x86_64                        1:0.17-64.el7              base    // base 表示可安装
[root@showayCentOS ~]# yum list|grep xinetd
xinetd.x86_64                               2:2.3.15-13.el7            base

安装 telnet 服务端 和 xinetd(程序名在上面可以看到):

[root@showayCentOS ~]# yum install -y telnet-server            // 安装 telnet 服务端
...
...
...
已安装:
  telnet-server.x86_64 1:0.17-64.el7
完毕!
[root@showayCentOS ~]# yum install -y xinetd                   // 安装 xinetd
...
...
...
已安装:
  xinetd.x86_64 2:2.3.15-13.el7
完毕!

安装 telnet 客户端(选装,安装上可以方便自测 telnet 服务是否正常启动):

[root@showayCentOS ~]# yum install -y telnet
...
...
...
已安装:
  telnet.x86_64 1:0.17-64.el7
完毕!

3)、设置开机自启动并开启服务

设置开机自启动(为了防止服务器意外重启):

[root@showayCentOS ~]# systemctl enable xinetd.service        // 开机启动 xinetd 服务
[root@showayCentOS ~]# systemctl enable telnet.socket         // 开机启动 telnet 服务
Created symlink from /etc/systemd/system/sockets.target.wants/telnet.socket to /usr/lib/systemd/system/telnet.socket.

开启服务:

[root@showayCentOS ~]# systemctl start telnet.socket
[root@showayCentOS ~]# systemctl start xinetd.service

查看 telnet 和 xinetd 服务状态:

[root@showayCentOS ~]# systemctl status xinetd.service
● xinetd.service - Xinetd A Powerful Replacement For Inetd
   Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2019-12-19 23:16:14 CST; 12s ago
  Process: 15846 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 15847 (xinetd)
   CGroup: /system.slice/xinetd.service
           └─15847 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid

12月 19 23:16:14 showayCentOS xinetd[15847]: removing discard
12月 19 23:16:14 showayCentOS xinetd[15847]: removing discard
12月 19 23:16:14 showayCentOS xinetd[15847]: removing echo
12月 19 23:16:14 showayCentOS xinetd[15847]: removing echo
12月 19 23:16:14 showayCentOS xinetd[15847]: removing tcpmux
12月 19 23:16:14 showayCentOS xinetd[15847]: removing time
12月 19 23:16:14 showayCentOS xinetd[15847]: removing time
12月 19 23:16:14 showayCentOS xinetd[15847]: xinetd Version 2.3.15 started with libwrap loadavg labeled-networking options compiled in.
12月 19 23:16:14 showayCentOS xinetd[15847]: Started working: 0 available services
12月 19 23:16:14 showayCentOS systemd[1]: Started Xinetd A Powerful Replacement For Inetd.
[root@showayCentOS ~]# systemctl status telnet.socket
● telnet.socket - Telnet Server Activation Socket
   Loaded: loaded (/usr/lib/systemd/system/telnet.socket; enabled; vendor preset: disabled)
   Active: active (listening) since 四 2019-12-19 23:15:58 CST; 8min ago
     Docs: man:telnetd(8)
   Listen: [::]:23 (Stream)
 Accepted: 1; Connected: 0

12月 19 23:15:58 showayCentOS systemd[1]: Listening on Telnet Server Activation Socket.

可以看到,xinetd 和 telnet 服务都已成功启动(每个命令执行结果的第三行)。

4)、测试 telnet 是否可连接

本机自测(因为此时因防火墙原因,telnet 默认连接端口 23 是关闭的,外部无法连接进来测试):

[root@showayCentOS ~]# telnet localhost                // telnet 客户端连接主机服务器(localhost)
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-957.el7.x86_64 on an x86_64
showayCentOS login: 

当看到登录提示时,表明本机的 telnet 服务已正常运行。

但,这时如果用 root 帐号登录,输入密码后,我们会发现登录失败:

[root@showayCentOS ~]# telnet localhost
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-957.el7.x86_64 on an x86_64
showayCentOS login: root
Password: 
Login incorrect                // 登录不正确

showayCentOS login: 

这是因为默认情况下,centos 系统是不允许 root 用户通过 telnet 方式远程登录系统的。如果要使 root 用户可以直接登录,需将以下内容添加到 /etc/securetty 文件末尾:

pts/0
pts/1
pts/2
pts/3

可以通过 vi 或 vim 打开  /etc/securetty ,在文件末尾加入以上内容,或这通过以下命令直接在文件末尾追加:

[root@showayCentOS ~]# echo -e 'pts/0\npts/1\npts/2\npts/3' >>/etc/securetty

添加完成之后的文件如下所示:

[root@showayCentOS ~]# tail -5 /etc/securetty            // 显示末尾 5 行
xvc0
pts/0
pts/1
pts/2
pts/3

重启 telnet 服务,使上述配置生效:

[root@showayCentOS ~]# systemctl restart xinetd.service

当我们再次自测 telnet 登录时,没有提示登录不正确:

[root@showayCentOS ~]# telnet localhost
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Kernel 3.10.0-957.el7.x86_64 on an x86_64
showayCentOS login: root
Password: 
Last login: Fri Dec 20 00:06:37 from localhost

5)、开启防火墙 telnet 远程 23 端口

CentOS 默认采用 firewalld 防火墙。查询防火墙是否开启了 23 端口:

[root@showayCentOS ~]# firewall-cmd --query-port=23/tcp
no

执行结果 no 表示未开启,通过以下命令开启 23 端口:

[root@showayCentOS ~]# firewall-cmd --zone=public --add-port=23/tcp --permanent    // 永久(--permanent)开启 23 端口
success    // 开启成功
[root@showayCentOS ~]# firewall-cmd --complete-reload                              // 重载防火墙配置,使变更生效
success    // 重载成功
[root@showayCentOS ~]# firewall-cmd --query-port=23/tcp                            // 查询开启状态
yes        // 开启

然后,我们就可以通过其他电脑上的 telnet 客户端远程连接并登录到这台服务器了。

  • 15
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值