远程连接服务器:Ping通但SSH连接失败的解决办法

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除!


文章目录

  • 前言
  • 常见问题
  • 影响SSH的因素
    • 本地影响因素
      • 防火墙设置
      • 网络配置文件
    • 远程主机影响因素
      • 放行SSH端口/端口故障
      • 开启SSH服务
      • 服务器故障
  • 总结
  • 致谢
  • 参考


前言

题外话1 都一月底了,各位小伙伴都放假回家了没?

随着远程办公的普及,数字化转型成为企业/个人必须面对的课题,可以帮助企业/个人实现更高效、更灵活、更快速的产出。通常企业/学校都有内部的计算机网络,为内部人员提供一个实践的环境和资源。

但是一旦脱离内部的局域网,资源的访问就会存在限制,但一般回家之后如果临时访问资源该如何实现?

咦~,你这都不会?

  • 远程桌面控制:允许用户在不同的地理位置通过互联网访问远程主机资源,如向日葵等,但是该方法需要远程主机安装软件并时刻能连接互联网。
  • 动态端口映射:对远程主机的端口绑定到公网上,实现外网与内网的通信,如花生壳net123,但是该方法需要远程主机时刻能连接互联网。
  • 虚拟专用网络(VPN):在公用网络上建立专用网络,进行加密通讯,创建一个私密的网络环境,但是需要内网提供VPN的服务。

综合来看,如需直接操作远程电脑,网络带宽和稳定性较好的前提下,可以选择远程桌面控制;如果需要远程访问内网中的资源,可以选择动态端口映射或虚拟专用网络(VPN)。
相对来说,动态端口映射和VPN更为常用和方便。

对于只需要跑跑程序或操作无桌面的远程主机的情况下,一般使用VPN更为方便,几年疫情的磨练,多数企业/学校均有特色的连接方式。

但是远程连接VPN可能存在些问题,导致无法成功连接,因此在本文中,将详细介绍SSH连接远程失败的问题和解决步骤,通过这些信息,希望帮助小伙伴更好地解决VPN连接的问题,以便在必要时能够有效地进行居家学习/办公。

常见问题

一般需要使用VPN软件进行连接,然后进行SSH连接,发现无法连接,如下:
在这里插入图片描述
在这里插入图片描述
此时,进一步的使用Ping发现可以Ping通,如下:
在这里插入图片描述

这个时候应该考虑什么因素呢?

先要了解Ping和SSH的关系。Ping和SSH是两个在网络上广泛使用的工具,但它们有着明显的不同。

  • Ping : 用于测试网络连接的命令,它通过发送ICMP回应请求来检测与目标主机之间的连接状态, 目标主机在线并且可以响应,用户将收到一个回应,表明网络连接正常。
  • SSH : 一种安全协议,用于远程登录到另一台计算机。通过SSH,用户可以在远程计算机上执行命令,就像直接在本地计算机上执行一样。

总的来说,Ping主要用于测试网络连接,而SSH则用于远程登录和执行命令,因此Ping通是SSH连接成功的前提,如果网络连接不可达,那SSH是无意义的。因此Ping通后只需考虑SSH相关的因素即可。

影响SSH的因素

因此后续只需考虑SSH相关的因素,大致分为本地因素和远程主机因素。

本地影响因素

本地影响因素主要是防火墙可能会阻止SSH连接,以及网络配置问题。但是Ping通意味着DNS、子网掩码等基本没有问题,因此基本可以考虑以下内容:防火墙以及对应网络配置文件。

防火墙设置

防火墙主要查看关于VPN以及SSH连接软件是否允许操作,如下图,如对应的对象不被允许,需要更改权限以允许访问。
在这里插入图片描述

网络配置文件

现在无论是公开场所还是居家几乎都实现了WiFi覆盖,在没有以太网的情况下,WiFi成为了不二选择。通常WiFi连接成功都会提示是否为专用网络还是公共网络以赋予对应的权限。如下图,如果是专用网络意味着信任该网络,权限基本上都赋予了;但是如果是公用网络类型,则不让其他设备无法识别该电脑,此时SSH可能会失败。因此建议使用专用网络。

在这里插入图片描述

此外也可以进行网络的防火墙和安全设置,对其进行进一步设置,比如传入连接之类的,如下图:

在这里插入图片描述

远程主机影响因素

放行SSH端口/端口故障

SSH默认是22端口,如果在局域网成功连接过,那意味着该主机的SSH服务和端口都是OK的。如果使用的是云服务器,此处以阿里云为例,阿里云对于云服务器需要配置安全组进行人为的端口放行,如下图:

在这里插入图片描述

同样的百度云、腾讯云服务器也是类似的,否则对应的端口无法与本地建立连接。

此外,由于各种因素,如端口被占用/封闭,此时连接是无法畅通。我们需要做的就是检查端口是否有被封,然后通过更换SSH端口来解决,大致的步骤如下:

  • 打开命令提示符或终端,并使用管理员权限登录到系统。

  • 备份原始的SSH配置文件,在命令提示符或终端窗口中输入以下命令将备份原始的SSH配置文件到sshd_config.bak文件,使得后续可以复原:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

  • 使用文本编辑器打开SSH配置文件/etc/ssh/sshd_config。在命令提示符或终端窗口中输入以下命令:sudo vi /etc/ssh/sshd_config

  • 在配置文件中找到该行:#Port 22,将其修改为所需的端口号,例如:Port 1234
    Note: 确保选择的端口号没有被其他服务使用,并且是大于1024的非保留端口。

  • 保存更改并关闭文件。在Vi编辑器中,按下Esc键,然后输入:wq保存并退出。

  • 重启SSH服务以使更改生效。在命令提示符或终端窗口中输入以下命令:sudo systemctl restart sshd

  • 防火墙中放行新端口以确保可以正常连接到SSH服务,使用下列命令:sudo firewall-cmd --zone=public --add-port=1234/tcp --permanent

  • 重载防火墙,使放行端口生效:sudo firewall-cmd --reload

  • 测试SSH连接是否正常。使用SSH客户端尝试连接到新的端口号,例如:ssh username@localhost -p 2222,如果一切正常,您将能够成功连接到SSH服务器。

注意,修改SSH默认端口可能会影响系统的安全性。确保选择一个安全的端口号,并采取其他安全措施来保护系统,例如使用强密码、禁用root登录等。

开启SSH服务

以下是在Linux系统上开启SSH服务的通用步骤:

  • 安装SSH服务器软件包。在终端中输入以下命令:sudo apt-get install openssh-server

  • 启动SSH服务,允许其他计算机通过SSH协议连接到该Linux系统。在终端中输入以下命令:sudo systemctl start ssh

  • 设置SSH服务为开机自启动。在终端中输入以下命令:sudo systemctl enable ssh

  • 防火墙设置。启用防火墙后,需要确保允许SSH流量通过。具体防火墙设置方式因系统而异,但通常需要打开SSH相关的端口(默认为22端口)。

  • 测试SSH服务是否正常。在终端中输入以下命令:sudo ps -e | grep ssh
    如果看到sshd进程,则表示SSH服务已经启动。如果没有启动,请使用上述命令再次启动SSH服务。

  • 使用SSH客户端连接。使用SSH客户端从其他设备连接到该系统并进行远程管理和文件传输。例如,在终端中输入以下命令:ssh username@your_server_ip_address
    如果一切正常,将成功连接到SSH服务并开始远程管理。

注意,以上步骤仅适用于基于Debian和Ubuntu的Linux发行版。

服务器故障

网络连接问题: 如果网络连接存在问题,如网络延迟、丢包等,也会导致SSH连接失败。
SSH服务出现故障: 如果SSH服务本身出现故障,如程序崩溃等,则SSH连接也会失败

此时,可重启服务器,因为重启基本上能够解决80%问题;重启无效可以重启SSH服务或检查网卡驱动、以及检查硬件是否损坏,如网线故障等。

总结

本文主要从Ping与SSH的关系进行说明,进一步的以本地和远程服务器无法SSH连接的原因进行说明与解决。具体来说:

  • Ping通是SSH连接成功的前提
  • 本地影响因素:主要是防火墙可能会阻止SSH连接,以及网络配置问题。
  • 远程主机影响因素:放行SSH端口/端口故障、开启SSH服务、 服务器故障。

完成以上因素检查后,SSH应该可以正常工作,希望这些信息能够帮助小伙伴顺利解决VPN连接的问题,以便在必要时能够有效地进行居家学习/办公。


致谢

欲尽善本文,因所视短浅,怎奈所书皆是瞽言蒭议。行文至此,诚向予助与余者致以谢意。


参考

  • 安全加固指南:如何更改 SSH 服务器的默认端口号
  • 老蒋笔记 - 服务器能PING通但是SSH连不上的三个原因

  1. 文末投票 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/248607.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis内存设置

通过redis-cli进入Redis命令行 redis权限认证命令:auth 查看redis内存使用情况的命令:info memory 查看最大内存命令:config get maxmemory 设置最大内存命令:config set maxmemory 也可以通过redis.conf配置文件修改最大内存…

搭建幻兽帕鲁需要什么样的服务器

作为一个开放世界生存制造类游戏《幻兽帕鲁》收获了空前绝后的热度,玩家们在游戏中通过在地图上捕捉收集到的“帕鲁”进行训练,合理利用他们的能力进行战斗,建立自己的家园、开辟新的世界、解锁新的冒险情节,获取更多游戏信息增加…

blender关于几何接近(geometry proximity)节点的理解

如图,可以见到,我输入了一个立方体,一个圆锥体,为了便于区分 ,将原生的立方体与圆锥转为了曲线,而进行了几何接近处理的网格不进行此转换。 几何接近的输入端,分为target(目标&…

Cache Lab:Part A【模拟出使用LRU策略的高速缓存存储器组织结构】

目录 任务描述 知识回顾 实验内容 测试结果 Cache Lab 对应《CS:APP》6.3节至第六章结束的内容。 任务描述 Your job for Part A is to fill in the csim.c file so that it takes the same command line arguments and produces the identical output as the reference …

2024年最新 MySQL的下载、安装、启动与停止

一、MySQL的下载 MySQL最常用的2个版本: 社区版:免费开源,自由下载,不提供官方技术支持,大多数普通用户选择这个即可。企业版:需要付费,不能在线下载,可以使用30天,提供…

Java学习笔记(十一)——常用类

一、包装类 (一)包装类和基本数据类型的转换 ​编辑 (二)包装类型和String类型的相互转换 (三)Integer类和Character类的常用方法 二、String (一)创建String对象的两种方式 …

Jenkins(三):自动化部署SpringBoot项目

前言 在软件开发过程中,自动化部署已经成为不可或缺的一环。Jenkins是一个广泛使用的开源自动化部署工具,它提供了强大的功能和灵活的配置选项,可以帮助开发团队实现高效的持续集成和持续部署。本文将详细介绍如何使用Jenkins自动化部署Spri…

Windows系统本地安装Wnmp服务并结合内网穿透公网远程访问

目录 前言 1.Wnmp下载安装 2.Wnmp设置 3.安装cpolar内网穿透 3.1 注册账号 3.2 下载cpolar客户端 3.3 登录cpolar web ui管理界面 3.4 创建公网地址 4.固定公网地址访问 结语 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家聊聊Windows…

探索数字经济:从基础到前沿的奇妙旅程

新一轮技术革命方兴未艾,特别是以人工智能、大数据、物联网等为代表的数字技术革命,催生了一系列新技术、新产业、新模式,深刻改变着世界经济面貌。数字经济已成为重组全球要素资源、重塑全球经济结构、改变全球竞争格局的关键力量。预估到20…

第5章 python深度学习——波斯美女

第5章 深度学习用于计算机视觉 本章包括以下内容: 理解卷积神经网络(convnet) 使用数据增强来降低过拟合 使用预训练的卷积神经网络进行特征提取 微调预训练的卷积神经网络 将卷积神经网络学到的内容及其如何做出分类决策可视化 本章将…

wordcloud库和jieba库的使用

文章目录 wordcloud库的简单示范使用wordcloud库报错记录anaconda安装第三方jieba库jieba库的简单示范任务 1:三国演义中的常见词汇分布在“三国"这两个隶书字上,出现频率高的词字体大任务 2:三国演义中出现频率前十的人名。必须是以下这…

ES的一些名称和概念总结

概念 先看看ElasticSearch的整体架构: 一个 ES Index 在集群模式下,有多个 Node (节点)组成。每个节点就是 ES 的Instance (实例)。每个节点上会有多个 shard (分片), P1 P2 是主分片, R1 R2…

伊恩·斯图尔特《改变世界的17个方程》毕达哥拉斯定理笔记

它告诉我们什么? 直角三角形的三个边之间有什么关系。 为什么重要? 它提供了几何和代数之间的重要联系,使我们能够根据坐标计算距离。它也催生出了三角学。 它带来了什么? 测绘、导航,以及较近代出现的狭义和广义相对论…

无法解析的外部符号_WinMain@16

错误示例&#xff1a; #include <Windows.h>int main() {return 0; } 正确示例1&#xff1a; 控制台&#xff1a; #include <Windows.h>int main() {return 0; } 正确示例2&#xff1a; Windows窗口 #include <Windows.h>int WINAPI wWinMain(HINSTANC…

微信小程序如何实现点击上传图片功能

如下所示,实际需求中常常存在需要点击上传图片的功能,上传前显示边框表面图片显示大小,上传后将图形缩放到边框大小。 实现如下: .wxml <view class="{{img_src==?blank-area:}}" style="width:100%;height:40%;display:flex;align-items: center;jus…

MySQL原理(三)锁定机制(1)综述

一、介绍&#xff1a; 1、锁的本质 业务场景中存在共享资源&#xff0c;多个进程或线程需要竞争获取并处理共享资源&#xff0c;为了保证公平、可靠、结果正确等业务逻辑&#xff0c;要把并发执行的问题变为串行&#xff0c;串行时引入第三方锁当成谁有权限来操作共享资源的判…

探索智能巡检机器人深度学习的奥秘

机器人深度学习&#xff08;Robot Deep Learning&#xff09;是指利用深度学习技术&#xff0c;使机器人能够从大量数据中学习和提取特征&#xff0c;进而实现自主感知、决策和行动的能力。通过深度学习算法&#xff0c;机器人可以从传感器获取的数据中自动学习模式和规律&…

flask基于python的个人理财备忘录记账提醒系统vue

在当今高度发达的信息中&#xff0c;信息管理改革已成为一种更加广泛和全面的趋势。 “备忘记账系统”是基于Mysql数据库&#xff0c;在python程序设计的基础上实现的。为确保中国经济的持续发展&#xff0c;信息时代日益更新&#xff0c;蓬勃发展。同时&#xff0c;随着信息社…

在Mixamo网站上,下载的动画导入unity给自己的模型添加后出错怎么解决

在Mixamo网站上&#xff0c;下载的动画导入unity给自己的模型添加后出错 一、在Mixamo下载的模型可以正常使用二、在自己的模型和unity自带模型上就出错1.解决方法2.解决成功 注意 一、在Mixamo下载的模型可以正常使用 二、在自己的模型和unity自带模型上就出错 1.解决方法 选…

力扣hot100 单词搜索 深度优先搜索 特殊字符判重

Problem: 79. 单词搜索 Code class Solution{int n, m;char[][] b;String word;int[] dx { 1, 0, -1, 0 };int[] dy { 0, 1, 0, -1 };public boolean exist(char[][] board, String word){b board;this.word word;n b.length;m b[0].length; // 以所有点作为起点来进行…