SSH连接异常:从迷茫到石破天惊的解决之道

零:前言

  • 很多时候,我们只是指导和会使用某个工具,但是还是会遇到知识盲区,只有通过实践才可以慢慢,将很多知识打通。
  • 今天,我就遇到了SSH连接失败的问题,在没遇到这个问题之前,我可能都不会去深入了解SSH

一:SSH

  • SSH(Secure Shell)是一种用于远程登录和安全文件传输的网络协议。 它提供了对网络上的远程计算机进行加密的安全通信通道允许用户通过一个安全的连接,以加密的方式远程访问和管理远程主机

  • 通过SSH,用户可以在本地计算机上的终端或命令行界面中输入命令,并将其发送到远程服务器执行。SSH使用加密技术来保护数据传输的机密性和完整性,以防止未经授权的访问和数据篡改。SSH还支持通过安全的通道进行文件传输、远程执行命令、端口转发、远程端口映射等功能。它在网络和系统管理中被广泛用于远程服务器管理、远程维护和安全访问控制

  • SSH客户端软件通常包括在大多数操作系统中,而SSH服务器软件则需在目标服务器上安装和配置。在使用SSH连接时,需要提供正确的远程主机的IP地址(或域名)、SSH端口号、用户名和密码(或使用SSH密钥)来进行身份验证和建立安全连接。

  • 简单说,SSH提供了一种安全、加密的远程访问方式,可用于远程管理、安全数据传输和远程协作等多种用途。

1.1 SSH的连接类型、方式和端口

  • SSH的默认端口22是TCP(传输控制协议)类型的端口。

  • TCP是一种面向连接的协议,提供可靠的、有序的数据传输。在SSH协议中,TCP被用于建立与远程服务器之间的安全加密连接。

  • SSH(Secure Shell)是一种通过网络进行加密通信的协议,用于远程登录和安全文件传输。默认情况下,SSH服务器监听TCP端口22,并等待客户端的连接请求。

  • 注意:虽然SSH的默认端口是22,但出于安全目的——为了减少暴露在互联网上的常见攻击,因为许多恶意用户会扫描常见端口,如22,以寻找潜在的漏洞,有时会将SSH服务的端口更改为其他非标准端口。如果你的SSH服务器端口不是22,你需要相应地调整防火墙和其他网络配置,以允许该自定义端口的连接。

1.2 常见端口及其类型

  • 计算机上的端口号通常与特定的传输层协议相关联。常见的计算机端口号分为两大类:
  1. TCP(传输控制协议)端口:TCP是一种面向连接的协议,提供可靠的、有序的数据传输。许多常见的服务和协议使用TCP端口进行通信,其中包括:
    • SSH(Secure Shell)使用端口22(默认)或自定义端口。
    • HTTP(超文本传输协议)使用端口80。
    • HTTPS(安全超文本传输协议)使用端口443。
    • FTP(文件传输协议)使用端口20和21。
    • SMTP(简单邮件传输协议)使用端口25。
    • MySQL数据库使用端口3306等。

  1. UDP(用户数据报协议)端口:UDP是一种无连接的协议,它提供了不可靠的数据传输。一些应用程序和服务使用UDP端口进行通信,例如:
    • DNS(域名系统)使用端口53。
    • DHCP(动态主机配置协议)使用端口67和68。
    • TFTP(简单文件传输协议)使用端口69。
    • SNMP(简单网络管理协议)使用端口161和162。

除了TCP和UDP,还存在一些其他类型的传输层协议和对应的端口,如SCTP(流控制传输协议)和 DCCP(数据报拥塞控制协议)。这些协议通常使用非常特定的端口范围。

  • 注意:并非所有的端口号都与特定的协议直接关联。在某些情况下,特定的应用程序可以使用非标准端口进行通信,这要根据应用程序的设置和配置来确定。

  • 总结:计算机上的端口号可以是TCP、UDP或其他特定协议的端口,不同的端口号用于不同的服务和应用程序进行通信。

二:解决SSH连接异常

  • 聊到这里的原因,是因为昨天刚给armbian装了ufw防火墙,今天使用的时候发现,SSH连接失败了,所以折腾一下,顺便记录一下,增长知识。
  • 既然了解了SSH连接的基本知识,现在就可以进行,问题的分析和解决了

第一步:欣赏报错,顺藤摸瓜

Network error: Connection timed out

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Session stopped
    - Press <Return> to exit tab
    - Press R to restart session
    - Press S to save terminal output to file
  • 连接超时错误表明无法建立到目标服务器的网络连接。可能的错误:
    1. 网络连接异常
    2. 防火墙SSH端口(默认为22)未开放
    3. 检查路由器或网络设备:如果目标服务器位于局域网内,检查路由器或其他网络设备的配置,确保它们正确地转发SSH流量到目标服务器
    4. 尝试使用其他网络或位置:如果可能的话,尝试从其他网络或位置连接到目标服务器,以确定是否存在特定网络环境的问题。

第二步:异常窥探,摸石过河

  1. 在本机使用ping命令测试网络连通性:(在命令提示符或终端中执行以下命令,以测试是否能够与目标服务器建立基本的网络连接)
    ping 目标服务器IP地址
    
  • 如果可以正常连接的结果,效果如下,则排除网络异常的错因
    C:\Users\HP>ping 192.168.1.23
    正在 Ping 192.168.1.23 具有 32 字节的数据:
    来自 192.168.1.23 的回复: 字节=32 时间=5ms TTL=64
    来自 192.168.1.23 的回复: 字节=32 时间=4ms TTL=64
    来自 192.168.1.23 的回复: 字节=32 时间=3ms TTL=64
    来自 192.168.1.23 的回复: 字节=32 时间=3ms TTL=64
    
    192.168.1.23 的 Ping 统计信息:
        数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
    往返行程的估计时间(以毫秒为单位):
        最短 = 3ms,最长 = 5ms,平均 = 3ms
    
  1. 使用ufw防火墙来查看SSH端口是否开放
    • 这里需要正常进行到服务器的,否则,无法进行下面的操作;如果,你的服务器安装的有类似1panel的面板,正常情况下,可以使用面板的终端进行操作,这里使用1panel面板进行演示
    root@armbian:~# sudo ufw status
    Status: active
    
    To                         Action      From
    --                         ------      ----
    1234                       ALLOW       Anywhere                  
    9200/tcp                   ALLOW       Anywhere                  
    9200/udp                   ALLOW       Anywhere                  
    1234 (v6)                  ALLOW       Anywhere (v6)             
    9200/tcp (v6)              ALLOW       Anywhere (v6)             
    9200/udp (v6)              ALLOW       Anywhere (v6)             
    
    
    • 可以看到22端口,并未开放

第三步:问题确定,斩首行动

  1. 直接使用1panel的防火墙面板控制,开放22端口
    在这里插入图片描述
    在这里插入图片描述
  • 或者【使用运维面板提供终端】使用命令开放 22 端口(SSH),重启防火墙,确认防火墙规则是否已经生效
    sudo ufw allow 22
    
    sudo ufw enable
    
    sudo ufw status
    
  • 正确的结果:
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere

  • 如果还没有解决问题,请继续奔赴星辰大海!!!

猜你喜欢

转载自blog.csdn.net/yang2330648064/article/details/131339833
今日推荐