文章目录
- 零:前言
- 一:SSH
- 1.1 SSH的连接类型、方式和端口
- 1.2 常见端口及其类型
- 二:解决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 常见端口及其类型
- 计算机上的端口号通常与特定的传输层协议相关联。常见的计算机端口号分为两大类:
- TCP(传输控制协议)端口:TCP是一种面向连接的协议,提供可靠的、有序的数据传输。许多常见的服务和协议使用TCP端口进行通信,其中包括:
- SSH(Secure Shell)使用端口22(默认)或自定义端口。
- HTTP(超文本传输协议)使用端口80。
- HTTPS(安全超文本传输协议)使用端口443。
- FTP(文件传输协议)使用端口20和21。
- SMTP(简单邮件传输协议)使用端口25。
- MySQL数据库使用端口3306等。
- 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
- 连接超时错误表明无法建立到目标服务器的网络连接。可能的错误:
- 网络连接异常
- 防火墙SSH端口(默认为22)未开放
- 检查路由器或网络设备:如果目标服务器位于局域网内,检查路由器或其他网络设备的配置,确保它们正确地转发SSH流量到目标服务器
- 尝试使用其他网络或位置:如果可能的话,尝试从其他网络或位置连接到目标服务器,以确定是否存在特定网络环境的问题。
第二步:异常窥探,摸石过河
- 在本机使用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
- 使用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端口,并未开放
第三步:问题确定,斩首行动
- 直接使用1panel的防火墙面板控制,开放22端口
- 或者【使用运维面板提供终端】使用命令开放 22 端口(SSH),重启防火墙,确认防火墙规则是否已经生效
sudo ufw allow 22
sudo ufw enable
sudo ufw status
- 正确的结果:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
- 如果还没有解决问题,请继续奔赴星辰大海!!!