【经验】VScode远程连接Ubuntu出错的解决办法(2023年,完整的排查思路)

news2025/1/21 20:23:02

用VScode常常会碰到以下情况,Could not establish connection。

在这里插入图片描述

先介绍一下VScode远程连接和终端SSH连接的区别:终端直接用SSH连接时,只需要开启SSH服务,并消耗少量的内存即可;VScode连接时,会自动在服务器或虚拟机的用户目录(也就是~/.vscode)下安装相关插件,并且会启动一个vscode node,消耗的内存比终端直连要多一些。

我看网上查到的一些资料都蛮古老的,一篇说要配置Remote-SSH的config路径的的文章被转发了好多好多次,这个emm,在2023年,已经不需要配置了。遂写下现在可能会遇到的问题。

接下来,介绍一下我遇到过的所有原因,以及完整的排查思路,希望对你有所启发。

文章目录

    • 情形1:连接不上前,没有弹出过输入密码的框
    • 情形2:输入密码之后显示连接不上

情形1:连接不上前,没有弹出过输入密码的框

注意:没有弹出要求输入密码的框,
说明VScode和服务器并没有成功地进行交互。
这个时候需要排查没有成功交互的原因。

  1. 首先要考虑的是网络原因。尝试在主机上ping虚拟机或服务器的ip地址,ip地址可以使用ifconfig或者ipconfig指令查看。如果ping不通且使用的是虚拟机,转2;如果ping不通且使用的是服务器,转5;如果ping得通,转6;
    ping不通的图

  2. 主机和虚拟机不互通,多半是虚拟机网卡或防火墙有问题。如果虚拟机本身上不了网,请直接配置成NAT模式并通过这篇文章《Ubuntu虚拟机连不上网》解决上网问题再回来;如果可以上网,单纯是不互通,转3。

  3. 先排除是防火墙的原因,先关掉双方的防火墙。把虚拟机的防火墙直接关掉,自行搜索关闭xx系统防火墙的方式,Ubuntu的是sudo ufw disable;主机的防火墙一般不用管,但如果你怀疑是它的原因也可以关掉,Windows电脑的具体关闭方式就是搜索“防火墙和网络保护”,然后直接关。如果不是防火墙的原因,转4。

  4. 有个解决办法非常诡异,但确实百试百灵:尝试重启虚拟机的网卡。具体操作方式是搜索“网络连接”,如下图所示,禁用再启用虚拟机相关的网卡,过一分钟左右再次尝试ping。如果ping得通,转5;如果还是ping不通,可以考虑去找找windows的VMware相关的网络服务有没有启动,具体搜索“服务”,如果全都是对的但是还是ping不通,我就没办法了。
    在这里插入图片描述

  5. 主机与服务器不互通,多半是主机网卡或者双方防火墙有问题。极端情况下,服务器可能禁用了ping端口,这种情况考虑尝试别的网络连接方式,因此转7。其他的常见情况,一是该服务器有访问范围的限制,所以需要连上公司或学校的VPN才能访问;二是主机上不了网,可能连百度都访问不了;三是主机防火墙禁用了对服务器网段的访问,或者服务器防火墙禁了主机,这时需要关闭主机或服务器的防火墙。检查完之后能ping通了就转6。

  6. 尝试在终端中ssh连接服务器或主机,ssh [用户名]@[ip地址] -p [端口号,默认是22]。连不上,转7;连得上,转8。
    在这里插入图片描述

  7. ssh连不上通常是没开ssh服务或者ssh相关端口被禁用或更改。ubuntu虚拟机或服务器开启ssh服务的方式是sudo apt install openssh-serversystemctl start ssh。ssh端口被禁用请关闭防火墙,若更改请换个端口。
    极端情况1:服务器或虚拟机没内存了,可以考虑重启服务器或者虚拟机。
    极端情况2:ssh之前连接的时候,针对Are you sure you want to continue connecting (yes/no/[fingerprint])? 这个问题不小心选择了其他选项而不是yes,导致默认拒绝连接,此时可以去~/.ssh文件夹下删除know_hosts文件。
    连得上之后转8

  8. 到这里,应该是终端能够顺利使用ssh连接服务器或虚拟机了。此时你再去使用VScode连接服务器或虚拟机,就应该会发现起码能弹出输入密码的框了。如果可以,转情形2;如果还不可以,转9。

  9. 网络没问题了但还是交互不了,大概率是你的VScode的SSH连接配置文件写得有问题。一个简单的SSH连接配置文件示意如下图,应该包含Host、HostName、User,而Port默认是22,可加可不加。如果修正后可以弹出输入密码的框了,转情形2;如果还不可以,转10。
    在这里插入图片描述

  10. 如果还弹不出来,还有一种极端情况——VScode新建连接时,有时会弹窗要选择服务器的系统类型,可选项有Linux、Windows和MacOS,这个选错了的话,即使网络环境最终被修好了,VScode也无法识别对面的服务器或者虚拟机是什么系统,从而导致连接失败。解决方法是左下角点开设置,搜索remote platform,把平台改对:
    在这里插入图片描述

情形2:输入密码之后显示连接不上

注意:已经弹出要求输入密码的框,但还是没连上,
说明问题出在VScode应用程序在服务器或虚拟机上的行为上,
这个时候需要排查VScode究竟哪一步操作出现了问题。

  1. 检查密码是否输入错误,如果输入对了还是连不上,转2。
  2. 如果这是你首次连接或异地、异机器连接,转3;如果你以前连过这个服务器或虚拟机,是突然连不上的,转5。
  3. 检查是否是服务器或虚拟机存储空间满了。VScode连接后会安装相关插件,所以很可能是装到一半没存储空间了所以无法连接。如果真的满了,解决办法是先用终端先连上,腾出一部分空间;如果不是这个原因,转4。
  4. 检查服务器或虚拟机上是否存在你的用户目录,检查方式是cd ~看看有没有反应。VScode连接后会安装相关插件,安装的路径默认是~/.vscode,但是有的系统它新安装的时候真没有自动创建用户目录~,这时候就需要手动创建,并且要将这个文件夹的所有者用chown设置成自己这个用户。如果不是这个原因,转5。
  5. 可能是距离上次连接的时间太长了或网络信号弱,自动断开了,点Retry重连就行。如果不行,我目前没有别的解决办法了,可以把报错在评论区发给我看一下。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP实验之MPLS

目录 一,实验题目 ​编辑 拓扑与IP地址规划如图所示 二,实验思路 三,实验步骤 3.1 私网部分IP地址配置 3.2 LSP部分配置 3.3 启动OSPF协议 3.4 启动MPLS协议 3.5 启动MPLS VPN 3.6 实现公网私网互通 3.7 配置BGP 3.8 双向重发布 …

Python软件外包开发框架

Python有许多流行的开发框架,用于不同类型的应用开发,包括Web应用、数据科学、人工智能等。以下分享一些常见的Python开发框架及其特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流…

[MySQL] — 数据类型和表的约束

目录 数据类型 数据类型分类 数值类型 tinyint类型 bit类型 小数类型 float decimal 字符串类型 char varchar char和varchar的区别 日期和时间类型 enum 和 set 表的约束 空属性 默认值 列描述 zeorfill 主键 创建表时在字段上指定主键 删除主键: 追…

Lnton羚通算法算力云平台在环境配置时 OpenCV 无法显示图像是什么原因?

问题&#xff1a; cv2.imshow 显示图像时报错&#xff0c;无法显示图像 0%| | 0/1 [00:00<…

IDEA连接MySQL数据库错误

说明&#xff1a;使用IDEA连接云服务器中的MySQL数据库时&#xff0c;报下面的这个错误&#xff1b; [08S01] Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the serve…

docker cURL error 6: Could not resolve host

场景&#xff1a; 微信小程序 获取 用户 openpid&#xff0c;在此之前&#xff0c;我需要先 "获取稳定版接口调用凭据"&#xff0c;根据手册提示的&#xff0c;要先调用 https://api.weixin.qq.com/cgi-bin/stable_token 我这边就开始了请求&#xff0c;结果返回了…

上班族的高效时间管理软件,可一直显示在电脑桌面上

在现代职场中&#xff0c;相信工作党都深有体会&#xff0c;繁忙的工作带来的压力和任务都堆积如山&#xff0c;如果没有一个良好的时间管理系统&#xff0c;我们可能会一筹莫展。而高效管理时间的好处也是显而易见的&#xff0c;它不仅可以帮助我们更好地安排工作&#xff0c;…

Linux Day09

目录 一、进程替换 二、Linux信号的使用 2.1 kill() 发送信号 2.2 signal() 改变进程对信号的响应方式 2.3 处理僵死进程 2.3.1 在信号处理函数中调用wait 2.3.2 Linux特有的 2.3.3 结果 一、进程替换 linux上创造一个新进程&#xff0c;没有create创建方法&#xf…

【Mysql】MVCC版本机制的多并发

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

Android3:布局

一。线性布局 创建项目Linear Layout Example activity_main.xml <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"an…

微信转账警示!切莫在此时输入密码

微信已经成为我们日常生活中不可或缺的社交工具&#xff0c;通过微信红包和转账完成支付也变得非常普遍。 然而&#xff0c;正如人们常说的&#xff0c;树大招风。随着微信的广泛使用&#xff0c;骗子们也愈发猖獗&#xff0c;他们利用微信进行诈骗活动&#xff0c;使许多人遭受…

手把手教你快速使用java与cpp的互相调用

在jni的开发过程中&#xff0c;如果需要实现java和c之间的接口调用&#xff0c;就要定义一个方法来实现&#xff0c;如果有多个接口调用&#xff0c;就需要定义多个方法来实现&#xff0c;这里介绍一种抽象的接口&#xff0c;只需要分别定义一个javaCallCpp和cppCallJava方法就…

Spring框架入门以及 ioc的三种注入方式

目录 一、Spring是什么&#xff0c;它能够做什么 spring的组成 二、什么是控制反转&#xff08;或依赖注入&#xff09; 三、 如何在spring当中定义和配置一个JavaBean 四、注入方式 1.构造函数注入 2.Setter方法注入 3.自动装配 五、简单属性配置与复杂属性配置 简单…

AIGC:【LLM(六)】——Dify:一个易用的 LLMOps 平台

文章目录 一.简介1.1 LLMOps1.2 Dify 二.核心能力三.Dify安装3.1 快速启动3.2 配置 四.Dify使用五.调用开源模型六.接通闭源模型七.在 Dify.AI 探索不同模型潜力7.1 快速切换&#xff0c;测验不同模型的表现7.2 降低模型能力对比和选择的成本 一.简介 1.1 LLMOps LLMOps&…

vue vs react

vue 简介&#xff1a;渐进式 JavaScript 框架 来源&#xff1a;最初由 Evan You &#xff08;尤雨溪&#xff09;于2014年开发。Evan You之前在Google研究过AngularJS&#xff0c;并提取了Angular的部分特性以提供一个更轻量级的框架 版本&#xff1a; vue 1x&#xff1a;2014…

Android 源码下载(详细版)

经典好文推荐,通过阅读本文,您将收获以下知识点: 一、下载AOSP前的准备 二、国内网络下 clone 清华大学开源软件镜像 三、编写Python脚本,开始下载android-10.0.0_r40 源码 四、源码下载工具包 五、参考文献 一、下载AOSP前的准备 想在国内网络下载AOSP源码,需要电脑配置如…

MySQL之索引和事务

索引什么是索引索引怎么用索引的原理 事务使用事务事务特性MySQL隔离级别 索引 什么是索引 索引包含数据表所有记录的引用指针&#xff1b;你可以对某一列或者多列创建索引和指定不同的类型&#xff08;唯一索引、主键索引、普通索引等不同类型&#xff1b;他们底层实现也是不…

Nginx 配置文件的完整指南 (一)

文章目录 一、简介1.1 配置文件一览 二、全局配置2.0 user2.1 worker_processes2.2 events模块2.3 http模块 三、server模块3.1 listen3.2 server_name3.3 location&#xff1a;请求处理位置 Nginx 配置文件的完整指南 (二) 一、简介 Nginx是一款高性能的Web服务器和反向代理服…

数字孪生三维可视化系统开发平台有哪些优点

随着企业数字化发展的深入&#xff0c;迅速增多的场景化需求要求企业具备更加灵活、敏捷、易用的应用开发能力。而高效、便捷、易用、低本的数字孪生系统制作也是大势所趋&#xff0c;数字孪生公司深圳华锐视点基于3d可视化、数字孪生和VR虚拟仿真技术搭建了3D数字孪生编辑器&a…

【Axure高保真原型】JS日期选择器筛选中继器表格

今天和大家分享JS日期选择器筛选中继器表格的原型模板&#xff0c;通过调用浏览器的日期选择器&#xff0c;所以可以获取真实的日历效果&#xff0c;具体包括哪一年二月份有29天&#xff0c;几号对应星期几&#xff0c;都是真实的&#xff0c;获取日期值后&#xff0c;通过交互…