暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Telnet服务(常见报错)

718

一、telnet服务介绍

  Telnet(Telecommunication Network)是一种远程登录和协作工具,用于通过网络连接到远程计算机并执行命令。Telnet协议是基于TCP/IP协议栈,用于在客户端和远程主机之间传输数据。

  Telnet服务允许用户通过Telnet客户端连接到远程主机,并以字符方式进行交互。用户可以在Telnet客户端上输入命令,这些命令将在远程主机上执行,并返回结果或响应。这使得Telnet可以被用来远程管理和配置网络设备、远程执行命令行操作系统命令,以及在远程计算机上运行其他应用程序。

  Telnet提供了以下功能和特点:

  1. 远程登录:Telnet允许用户通过网络连接到远程主机并登录。用户可以提供用户名和密码进行认证,以获取访问权限。(默认不允许root远程登录)

  2. 命令行交互:一旦连接建立,Telnet客户端提供了一个命令行界面,用户可以在其中输入命令。这些命令将在远程主机上执行,并将结果返回给客户端。

  3. 会话管理:Telnet客户端与远程主机之间可以建立多个会话。这意味着一个Telnet客户端可以同时与多个远程主机进行交互。

  4. 文件传输:尽管Telnet本身没有内置的文件传输功能,但用户可以通过在Telnet会话中执行特定的命令来实现文件传输,如使用FTP命令。

  需要注意的是,由于Telnet的数据传输是明文的,因此Telnet协议在安全性上存在一些问题。攻击者可以截获传输的数据,并在不被察觉的情况下读取、修改或篡改数据。出于安全考虑,现在通常推荐使用SSH(Secure Shell)等加密协议替代Telnet。

  总而言之,Telnet服务提供了一种基于文本的远程登录和协作工具,允许用户通过Telnet客户端远程连接到主机并执行命令。然而,由于其数据传输的明文性质,Telnet在安全性上存在漏洞,并且已被更安全的协议所取代。

二、使用Telnet时常见的错误

  当我们使用Telnet工具测试远程主机某个端口是否对自己开放时,经常会遇到Connection refusedNo route to host的报错,如果不确定报错的具体原因,我们可能会猜测:可能是远程主机ping不通、可能是远程主机启用了防火墙、可能在远程主机上该端口并没有监听。虽然导致问题的原因不多,很快就能通过确认快速排查出具体的原因,但是如果我们能够知道特定报错更具体的原因,岂不更显解决问题的专业性呢!!

1.Connection refused

  出现这个报错,你可以知道两种信息:

  • (1)远程主机能够ping通、远程主机没有开启防火墙、该端口在远程主机上没有监听。
  • (2)远程主机能够ping通、远程主机启用了防火墙并配置了防火墙访问策略、该端口在远程主机上没有监听。

  一目了然,当别人问你这个问题时,你首先想到的是让其确认远程主机上该端口是否处于监听状态,而不是让他去确认远程主机是否ping得通?其次该报错与防火墙无关。
  例如:
  当防火墙关闭时:

# 1.测试机器:10.0.0.100(客户端:alldb)、10.0.0.11(远程主机:PG1)
# 在主机10.0.0.100上访问10.0.0.11上的80端口
[root@alldb ~]# telnet 10.0.0.11 80
Trying 10.0.0.11...
telnet: connect to address 10.0.0.11: Connection refused

# 2.验证
## 在主机10.0.0.100上ping 10.0.0.11,ping得通
[root@alldb ~]# ping 10.0.0.11
PING 10.0.0.11 (10.0.0.11) 56(84) bytes of data.
64 bytes from 10.0.0.11: icmp_seq=1 ttl=64 time=0.730 ms
64 bytes from 10.0.0.11: icmp_seq=2 ttl=64 time=0.441 ms
64 bytes from 10.0.0.11: icmp_seq=3 ttl=64 time=0.536 ms
^C
--- 10.0.0.11 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2023ms
rtt min/avg/max/mdev = 0.441/0.569/0.730/0.120 ms

## 确认远程主机10.0.0.11上的相关信息:端口80没有监听、防火墙没有开启
[root@PG1 ~]# netstat -lntup | grep 80
[root@PG1 ~]# systemctl status  firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
 

  当防火墙开启并配置访问策略时:

# 远程主机
[root@PG1 ~]# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='10.0.0.100/32' port port=80 protocol='tcp' accept"
success
[root@PG1 ~]# netstat -lntup | grep 80
[root@PG1 ~]# systemctl restart firewalld
[root@PG1 ~]# 

# 客户机尝试通过telnet访问远程主机的80端口
[root@alldb ~]# telnet 10.0.0.11 80
Trying 10.0.0.11...
telnet: connect to address 10.0.0.11: Connection refused

2.No route to host

  报这个错误,有两种情况:

  • (1)远程主机ping不通
  • (2)远程主机能够ping通,开启了防火墙但是没有配置访问策略

  问题排查思路就是,先ping一下远程主机,确认远程主机与本机是否网络互通。如果能够ping通,那么就是防火墙的问题,开启了防火墙但没有配置访问控制策略。

  例如:
  远程主机ping不通:

[root@alldb ~]# telnet 10.0.0.12 80
Trying 10.0.0.12...
telnet: connect to address 10.0.0.12: No route to host
[root@alldb ~]# ping 10.0.0.12
PING 10.0.0.12 (10.0.0.12) 56(84) bytes of data.
^C
--- 10.0.0.12 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2017ms

  远程主机能够ping通,开启了防火墙但是没有配置访问控制策略:

[root@PG1 ~]# systemctl is-active firewalld
active
[root@PG1 ~]# firewall-cmd --list-rich-rule

[root@PG1 ~]# firewall-cmd --list-port


# 在客户端测试
[root@alldb ~]# telnet 10.0.0.11 80
Trying 10.0.0.11...
telnet: connect to address 10.0.0.11: No route to host
[root@alldb ~]# ping 10.0.0.11
PING 10.0.0.11 (10.0.0.11) 56(84) bytes of data.
64 bytes from 10.0.0.11: icmp_seq=1 ttl=64 time=0.306 ms
^C
--- 10.0.0.11 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.306/0.306/0.306/0.000 ms

三、使用telnet进行远程连接

  客户端需要安装telnet软件包:

[root@alldb ~]# yum install -y telnet

  远程主机端需要安装telnet-server软件包,并启动telnet服务:

[root@PG1 ~]# yum install -y telnet telnet-server
[root@PG1 ~]# systemctl start telnet.socket
[root@PG1 ~]# systemctl is-active telnet.socket
active

  使用telnet进行远程连接:

[root@alldb ~]# telnet 10.0.0.11
Trying 10.0.0.11...
Connected to 10.0.0.11.
Escape character is '^]'.

Kernel 3.10.0-1160.62.1.el7.x86_64 on an x86_64
PG1 login: root           ### 默认不允许root用户进行远程连接
Password: 
Login incorrect

PG1 login: zb
Password: 
Last failed login: Fri Jun 30 14:17:55 CST 2023 from ::ffff:10.0.0.100 on pts/1
There was 1 failed login attempt since the last successful login.
Last login: Sun Mar 12 23:26:14 on pts/0
[zb@PG1 ~]$ 
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论