【vscode远程开发】使用SSH远程连接服务器 「内网穿透」

news2024/11/18 20:38:32

文章目录

  • 前言
  • 视频教程
  • 1、安装OpenSSH
  • 2、vscode配置ssh
  • 3. 局域网测试连接远程服务器
  • 4. 公网远程连接
    • 4.1 ubuntu安装cpolar内网穿透
    • 4.2 创建隧道映射
    • 4.3 测试公网远程连接
  • 5. 配置固定TCP端口地址
    • 5.1 保留一个固定TCP端口地址
    • 5.2 配置固定TCP端口地址
    • 5.3 测试固定公网地址远程

转发自CSDN远程穿透的文章:【vscode远程开发】使用SSH远程连接服务器 「内网穿透」

前言

远程连接服务器工具有很多,比如XShell、putty等,可以通过ssh来远程连接服务器,但这用于写代码并不方便,可能需要现在本地写好代码后再将源代码传送到服务器运行、服务器上的图片也无法直接查看…

而vscode可以很好的解决这些问题,它的核心组件都运行在远程环境中,本地的开发机器完全不需要拥有远程开发环境的源代码,在vscode上编写代码可以直接同步更新到服务器上,给你带来丝滑般的远程开发体验。

所以这篇文章教程,我们将通过vscode实现远程开发,并做内网穿透实现在公网环境下的远程连接,在外任意地方也可以远程连接服务器进行开发写代码。

视频教程

【VS Code远程开发】公网使用SSH远程连接服务器开发写代码

1、安装OpenSSH

打开Windows开始页面,直接进行搜索PowerShell,打开第一个Windows PowerShell,点击以管理员身份运行

在这里插入图片描述

打开之后,输入以下指令:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

此时出现的结果就是电脑里没有安装OpenSSH的情况:
在这里插入图片描述

如果已经安装了OpenSSH那么跳过这一步,没有安装的话则输入以下指令

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

在这里插入图片描述

最终结果为如下,则代表着OpenSSH安装成功:

在这里插入图片描述

显示OpenSSH安装成功后,在打开本地cmd进入之后输入命令ssh

ssh

如果显示的是这样结果的话,则说明正确:

在这里插入图片描述

2、vscode配置ssh

在windows上安装vscode,安装成功后并打开。

点击左侧工具栏中的扩展,搜索“ssh”,选择第一个Remote - SSH进行安装(我已经安装过了,所有此时显示的是禁用状态)

在这里插入图片描述

点击左下角的“设置”按钮,紧接着点击“设置”

在这里插入图片描述

根据截图的提示,找到Show Login Terminal并勾选该选项

在这里插入图片描述

点击左侧工具栏中的远程按钮,可以查看远程连接,点击SSH TARGETS下面显示的服务器旁边的按钮进行连接操作

在这里插入图片描述

3. 局域网测试连接远程服务器

以ssh连接ubuntu为例,打开vscode后,先尝试使用局域网地址ssh远程ubuntu

输入命令到对话框中,并回车

ssh  username@ip

在这里插入图片描述

选择一个配置文件

在这里插入图片描述

输入完成在右侧会显示出来刚刚添加的ssh 连接,点击 -->图标 连接,出现输入密码,输入密码即可

在这里插入图片描述

出现绿色标志表示连接成功

在这里插入图片描述

4. 公网远程连接

目前我们只能在局域网内进行远程,具有一定的局限性。不过我们通过内网穿透来实现在公网环境下的远程连接。这里我们借助工具cpolar内网穿透来实现,无需公网IP,也不用设置路由器,操作简单。

cpolar官网:https://www.cpolar.com/

4.1 ubuntu安装cpolar内网穿透

本次教程我们使用的是ubuntu 图形化系统,我们需要先在ubuntu上安装配置cpolar内网穿透,支持一键自动安装脚本。

  • 国内安装
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或 cpolar短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,正常显示即为安装成功
cpolar version
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里

cpolar authtoken xxxxxxx

在这里插入图片描述

  • 简单穿透测试
cpolar http 8080

有正常生成相应的公网地址,按ctrl+c退出

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar
  • 查看服务状态,显示如下图所示为active则为已启动状态
sudo systemctl status cpolar

在这里插入图片描述

cpolar安装并配置完成后,在浏览器上访问本地9200端口,使用cpolar邮箱账号登录cpolar web UI管理界面

在这里插入图片描述

cpolar安装成功后,默认会安装2条样例隧道,可以自行编辑或者删减:

  • ssh隧道:指向本地22端口,TCP协议
  • website隧道:指向本地8080端口,HTTP协议

4.2 创建隧道映射

我们可以直接使用样例隧道ssh,或者重新创建一个隧道,使用tcp协议,指向22端口。点击左侧仪表盘的隧道管理——创建隧道

  • 隧道名称:可自定义,注意不要重复
  • 协议:tcp
  • 本地地址:22
  • 端口类型:随机临时TCP端口
  • 地区:China vip

点击创建
在这里插入图片描述

隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到,刚刚创建的隧道已经有生成了相应的公网地址,将其复制下来

在这里插入图片描述

4.3 测试公网远程连接

在windows上打开vscode,使用所复制的公网地址来远程SSH。

点击SSH TARGETS下面显示的服务器旁边的按钮进行连接操作
在这里插入图片描述

如左侧没有出现添加的连接,点如下按钮刷新

在这里插入图片描述

接着点击小箭头 --> 连接,出现选择ssh 类型,选择linux

在这里插入图片描述

在这里插入图片描述

输入参数,和密码即可远程成功,方便快捷。

在这里插入图片描述

在这里插入图片描述

出现以下信息表示远程连接成功

在这里插入图片描述

5. 配置固定TCP端口地址

由于以上所创建的隧道选择的是随机临时TCP端口,所生成的公网地址会在24小时内随机变化,对于需要长期远程的用户来讲不方便。不过我们可以为其配置固定的地址进行远程连接,后续远程无需先查看随机公网地址再进行远程。

注意:配置固定TCP端口地址功能需要升级至专业版套餐或以上才支持。

5.1 保留一个固定TCP端口地址

打开cpolar官网,登录到官网后台https://dashboard.cpolar.com/reserved,点击左侧的预留,我们来保留一个固定TCP端口地址:

  • 地区:选择china
  • 描述:即备注,可自定义

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

在这里插入图片描述

5.2 配置固定TCP端口地址

在ubuntu系统上打开浏览器访问本地9200端口,登录cpolar web UI管理界面。点击左侧的隧道管理——隧道列表,找到ssh隧道,点击右侧的编辑,我们来修改隧道信息,将固定tcp端口地址配置到隧道中

在这里插入图片描述

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写保留成功的地址

点击更新

在这里插入图片描述

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,找到SSH隧道,可以看到公网地址已经更新成为了固定tcp地址。

在这里插入图片描述

5.3 测试固定公网地址远程

打开vscode,选择添加一个ssh连接

在这里插入图片描述

使用保留的tcp地址连接

在这里插入图片描述

在这里插入图片描述

刷新一下

在这里插入图片描述

刷新出来地址,点击右边小箭头”–>”连接,出现以下提示,输入yes

在这里插入图片描述

出现绿色信息,表示连接成功。

在这里插入图片描述

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

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

相关文章

Rosetta从头蛋白抗体设计、结构优化及在药物研发中的应用

Rosetta从头蛋白抗体设计、结构优化及在药物研发中的应用 第一天 内容 主要知识点 从蛋白质折叠到蛋白质设计教学目标:了解本方向内容、理论基础、研究意义。 蛋白质折叠与结构预测简介 主链二面角与二级结构侧链堆积与三级结构蛋白质设计简介 蛋白质设计的分…

shell编程之条件语句__例题

文章目录 (1) 检查用户家目录中的test.sh文件是否存在,并且检查是否有执行权限. [rootclr /opt/mywork]# cat 1.sh #!/bin/bash #检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权 cd /roottest -f test.shif [ $? -eq 0 ];thentest -x…

插件、组件、控件,你分得清吗?

最近和小伙伴交流,时常发生插件、组件、控件等概念混淆的情况,因此导致经常会错意。感觉还是很有必要带大家整理清楚的,今天就来跟大家来聊一聊插件、组件、控件的区别。 什么是插件 先按照官方的一些解释来看看插件的概念描述?…

搭建Debug(printf)Viewer调试环境

希望对KEIL开发的小白的有用&#xff0c;KEIL开发如果高效正确调用Printf 打印输出调试信息。 需要添加红色字体代码 #include <stdio.h> #define ITM_Port8(n) (*((volatile unsigned char *)(0xE00000004*n))) #define ITM_Port16(n) (*((volatile unsigned short *)(…

Android类似微信聊天页面教程(Kotlin)五——选择发送图片

前提条件 安装并配置好Android Studio Android Studio Electric Eel | 2022.1.1 Patch 2 Build #AI-221.6008.13.2211.9619390, built on February 17, 2023 Runtime version: 11.0.150-b2043.56-9505619 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 11 …

【模拟IC学习笔记】 负反馈系统的稳定性

反馈方程 输出方程 误差方程 环路增益 定义:当输入电压接地、并将环路断开时&#xff0c;所计算的增益就是环路增益 时&#xff08;幅度1&#xff0c;相位-180&#xff09;电路稳定在电源或低状态或在电源和地之间振荡。 分析稳定性时是对环路增益进行分析&#xff0c;通过环…

Java+Selenium+Testng自动化学习(一):环境搭建

目录 一、软件准备及版本介绍&#xff1a; 二、安装步骤及环境变量配置&#xff1a; 2.1 Java安装及配置 2.2 IDE工具&#xff08;Intellij IDEA&#xff09;安装及配置 2.3 Maven安装及配置 2.4 Maven本地仓库配置 2.5 Intellij IDEA配置mvn 一、软件…

全开放式时代来临,南卡OE带给你非同寻常的舒适和听觉感受

NANK南卡一直致力于深耕音频领域&#xff0c;不断创新&#xff0c;将于五月份发布全新形态的全开放式蓝牙耳机。相较于传统耳机&#xff0c;开放式蓝牙耳机除了佩戴零感舒适&#xff0c;还能在沉浸音乐的同时与外界保持沟通。南卡OE作为新推出的开放式蓝牙耳机&#xff0c;采用…

7年从测试废物到测试主管,如何从纯功能测试内卷中破局?

我大学学的计算机专业&#xff0c;有一点编程基础。我的软件测试职业开始和大多数测试人员一样&#xff0c;一开始在一家电商公司做软件功能测试。 大部分进入测试行业的朋友&#xff0c;最开始接触都是纯功能界面测试&#xff0c;随着工作年限&#xff0c;会接触到一些常用测试…

计算机体系结构总结:内存一致性模型 Memory consistency Model

存储一致性是为了保证多线程背景下的访存顺序&#xff0c;多线程的语句是可以交错执行&#xff0c;使得顺序不同产生不同的执行结果。 下面P2的输出结果可能是什么&#xff1f; P1, P2两个线程的语句是可以交叉执行的&#xff0c;比如1a, 2a, 2b, 1b&#xff1b;一个线程内的语…

网络基础学习:什么是网络与网络发展史

什么是网络与网络发展史 什么是网络&#xff1f;什么是网络发展史&#xff1f;分组交换技术TCP/IP技术Web技术ARPANET&#xff08;1969年&#xff09;Internet&#xff08;1983年&#xff09;万维网&#xff08;1990年&#xff09;移动互联网&#xff08;2007年&#xff09;物联…

Golang - GraphQL 搭配 Database

介绍 上一篇我们用GraphQL 已经有个基本的认识 接着来模拟真实的情境搭配Database 来使用 这篇主要都是在初始化环境 示例代码 通过 Docker 设置 MySQL 数据库 从 DockerHub 拉取 MySQL 镜像docker pull mysql 创建MySQL数据库 $ docker exec -it mysql bash $ mysql -u …

Python代码学习之给图片添加文字或图片水印

前言 图片加水印有什么好处&#xff1f;在现今的数字化时代&#xff0c;网络上的图片泛滥&#xff0c;盗图现象也越来越严重。因此&#xff0c;在发布文章时&#xff0c;为了保护自己的原创作品版权&#xff0c;很多人选择使用水印来保护他们的图片。这样就能更好地做到&#…

Java基础(十九)反射机制

1. 反射(Reflection)的概念 1.1 反射的出现背景 Java程序中&#xff0c;所有的对象都有两种类型&#xff1a;编译时类型和运行时类型&#xff0c;而很多时候对象的编译时类型和运行时类型不一致。 Object obj new String(“hello”); obj.getClass() 例如&#xff1a;某些变…

ChatGPT技术如何助力汽车门店销售服务水平提升?

过往&#xff0c;由于线下销售过程没有数字化记录&#xff0c;销售顾问的销讲要点执行情况、客户在体验展车、试乘试驾等过程中的反馈&#xff0c;没法真实全面地记录下来&#xff0c;因此很难做精细化的销售管理和客户心声分析。销售沟通过程不透明、员工服务质量难评估。 在…

Docker启动多个mysql容器

原有镜像mysql5.7.41&#xff0c;已启动mysql容器端口3306&#xff0c;再启动一个端口号为3400的容器。指定用户名root,mima &#xff0c;密码123456 命令&#xff1a; docker run --name zjfz-mysql -e MYSQL_ROOT_PASSWORD123456 -p 3400:3306 -d mysql 名字&#xff1a;zjfz…

【软考备战·希赛网每日一练】2023年5月5日

文章目录 一、今日成绩二、错题总结第一题 三、知识查缺 题目及解析来源&#xff1a;2023年05月05日软件设计师每日一练 一、今日成绩 二、错题总结 第一题 解析&#xff1a; 有返回消息的就是同步消息&#xff1b;不需要等待返回消息就可以去做其他事情的请求消息就是异步消息…

数影周报:假冒ChatGPT的恶意软件激增,谷歌开启无密码登录

本周看点&#xff1a;假冒ChatGPT的恶意软件激增&#xff1b;谷歌开启无密码登录&#xff1b;京东申请注册Chat相关商标&#xff1b;Flexport收购 Shopify Logistics...... 数据安全那些事 Meta&#xff1a;假冒ChatGPT的恶意软件激增 美东时间周三&#xff0c;Facebook的母公司…

SSM框架(SpringBoot快速构建)

简介 本文意在快速构建一个可以接受前端访问&#xff0c;并进行数据库查找&#xff0c;随后返回相关信息给前端的项目。 ssm为Spring IocSpringMVCMyBatis的缩写 Spring Ioc:管理对象的一个工厂。对象之间有依赖&#xff0c;相互引用Spring MVC:开发代码模式Mybatis:操作数据…

搭建网站使用轻量云服务器怎么样?

​  搭建网站实际上可以从轻量云服务器租用中受益匪浅。如果您正在为个人网站寻找更多的低成本和轻运维&#xff0c;您可以考虑将轻量云服务器作为一个可行的选择。它提供独享资源、独立的IP地址、专属防火墙以及比传统虚拟主机更好的安全性能。本文将介绍轻量云服务器对建站…