【5分钟玩转Lighthouse】Win10远程连接同步代码–云惠网

avatar
avatar
云惠网小编
2129
文章
0
评论
2020年11月12日17:27:22 评论 9 次浏览 3970字阅读13分14秒
摘要

小胡同学最近来咨询:之前咱们的Lighthouse教程都是从Linux/Mac笔记本下操作的,能不能出一篇Windows下的实践案例呢?而且,Windows笔记本的环境和远程Linux主机下不完全一致,怎样解决Python代码的编辑/同步和调试运行等问题呢?

0x00 前言

小胡同学最近来咨询:之前咱们的Lighthouse教程都是从Linux/Mac笔记本下操作的,能不能出一篇Windows下的实践案例呢?而且,Windows笔记本的环境和远程Linux主机下不完全一致,怎样解决Python代码的编辑/同步和调试运行等问题呢?

如果你也有同样的困惑,看这一篇教程就足够了。

本文将详细地从零开始,介绍如何从Windows10操作系统下远程连接Lighthouse等云服务器,并通过VSCode/SFTP等工具远程编辑执行Python程序。

0x01 服务器准备

服务器准备,依然还是选用咱们的主角:腾讯云轻量应用服务器(Lighthouse)。当然你可以用CVM(云服务器)产品等,也是完全可以的。Lighthouse实例是当下最流行最方便的创建云主机方式,对于跑些小项目用起来最方便。

如何创建Lighthouse实例呢?迫不及待的小伙伴们可以参考视频哦~(移动设备分辨率较低,建议用电脑观看

购买机器

下图是Lighthouse的创建页面,到这里选择一款喜欢的吧->

这里我们创建一台北京地域的镜像为Ubuntu 20.04LTS版本的实例,这是Ubuntu最新的LTS长期维护版本,可以体验更多新特性,后续我们也会在这个系统上做些简单实验。套餐选择上,我们这次以新出的存储型套餐举例,即便时最轻(pian)量(yi)的,也带了200GB的SSD,非常划算。购买流程很简单,需要输入实例名称并选择下时长即可,购买体验非常流畅。

我们创建完成后,可以在实例列表页面看到实例状态,当实例状态为运行中时,点击更多->管理即可进入管理页面了。我们将在管理页面为我们的Lighthouse主机重置密码,以方便后续的SSH登录。

重置密码

Lighthouse实例默认仅能从腾讯云控制台免密登录,其本质是使用了默认密钥。不过,为了咱们后续通过SSH命令进行代理访问,最方便的方法是通过密码登录。

我们需要为我们的实例重置密码,可以在控制台的实例详情页面完成此类操作。我们更新系统默认用户名ubuntu用户的密码。

至此,控制台上全部操作完成,我们可以准备登录机器了。

0x02 Termius

连接登录远端的服务器,一个好用的远程主机终端管理工具是必须的。

虽然Windows10自带/自有的PowerShell、Windows Terminal等软件也能SSH到我们远程的Linux服务器,但是它们的使用体验远不完美。常见的终端管理(SSH客户端)工具而很多如Putty、Xshell等,这里我们推荐一款工具:Termius,它是一款强大的SSH客户端,可以在Windows、Linux、macOS甚至移动设备Android/iOS上使用,界面美观使用方便。另外,Termius除了作为SSH客户端外,还支持主机分组、端口转发、文件传输等多种特性。

在微软的应用商店里就可以搜索到并安装:

termius运行后,点击+ NEW HOST按钮,配置添加服务器的信息,如IP、用户名以及、密码/密钥等。

配置主机IP
配置主机的SSH登录信息

用termius第一次的登录云服务器,通任何SSH客户端一样,需要添加下fingerprint,回车确认即可。

下图示例,用termius首次登录Lighthouse主机后执行命令:

云服务器的登录验证完成,我们开始折腾本地的编辑器吧~

0x03 Visual Studio Code

Visual Studio Code,以下简称VSCode,是微软2015年开源的一款编辑器,支持Windows、Linux和macOS等多个平台,它遵循MIT协议。vscode对代码调试、语法高亮、智能代码补全、代码重构以及,另外由于其还支持插件扩展且社区活跃,VSCode近些年非常受开发人员的青睐,可以说是目前最主流的跨语言通用代码编辑器。

Windows10上安装VSCode也非常容易,官网直接下载即可。这里注意有两种安装选择,UserInstaller和System Installer,它们分别安装在用户主目录(类似C:UsersBrookeAppData)和系统目录下(类似C:Program Files(x86)),单用户使用起来几乎没有区别,根据偏好选择即可。下图是安装界面,添加到PATH中哦我们可以通过code命令打开VSCode。

2020年10月刚刚发布了1.51版本,这次又新加了不少功能如更清晰的固定选项卡、可调整的智能补全窗口、更优化的终端及代码版本控制等等。

其实,VSCode下也有自带的terminal,按Ctrl+`即可打开,个人感觉它在Linux/MacOS下,相比Windows使用上更方便一些。在Windows10下,可以试试结合wsl或gitbash一起使用,使用起来,效果也还可以。但总体体验还是不如上一节的termius。

我们试着可以打开目录Open Folder,这里我们选择F:Codehello目录,并创建编辑第一个文件hello.py

可以看出,VSCode编辑器的风格还是很简约美观的。默认界面中除了主编辑面板,只有菜单栏、快捷按钮边栏、文件浏览器,以及底部状态栏和右侧的缩略展示。

0x04 SFTP插件远端同步代码

上一节中,我们通过VSCode打开目录并创建了代码文件,我们接下来需要将代码同步至远端服务器,并运行。我们这里使用SFTP插件。

安装

打开扩展插件(Extendions)搜索面板,快捷键Ctrl+Shift+X,搜索SFTP,如图安装。

安装过程很快,而且不需要重启编辑器,即时生效。

配置

打开vscode命令面板(Command Palette),快捷键Ctrl+Shift+P ,搜索sftp,可以下拉提示菜单中看到SFTP: Config,点击即可进入sftp的设置编辑界面,其实就是编辑项目目录下的.vscode/sftp.json文件,配置项除了hostportusernamepassword等SSH连接参数外如图:

注意:SFTP必须运行在项目目录中,所以需要先通过open folder打开对应的项目目录。

同步

右键点击左侧边栏(Explorer)中的hello.py,可以看到SFTP插件相关的功能:上传(Upload)、下载(Download)以及和远端的文件对比(Diff with Remote)等等。

另外,如果在配置时打开启了uploadOnSave(如前图所示)选项,则本地文件在保存时将会自动同步上传至云服务器。这个功能有利有弊:一般地,如果本地有和服务器端同样地运行代码的环境(如Linux/wsl下、docker中或者相同版本的python解释器等)推荐不开启这个功能,这样本地可以先测试下再手动上传;如果没有运行环境,开启是最方便的,保存后直接切换到终端运行即可。结合自己习惯综合设置即可。

运行

通过终端远程登陆云服务器,比如我们之前创建地Lighthouse实例,可以验证代码同步无误,试着运行吧。

运行代码不是本篇教程的重点,这里不赘述。我们的目标就是本地编辑,远端运行,因为这样既能最大地发挥本地编辑工具的个性化定制的优势,又能最大化利用远端云服务器的高性能运行环境以及灵活创建/销毁等资源管理的优势。我们的本地Windows主机甚至连Python(解释器)都没有安装,只编辑并保存代码。通过SFTP插件完成自动同步,整个流程是非常清晰且高效的。

0x05 SFTP协议

FTP(File Transfer Protocol, 文件传输协议)相比你不会陌生,它是一个在不同系统间传输文件的主流且传统的方法。而SFTP(SSH File Transfer Protocol, 或者Secure File Transfer Protocol)是一个在SSH协议之上的类似协议,在可靠的数据流(目前是TLS加密数据流)之上提供文件访问、传输和管理等工作。SFTP的好处简单地说就是更加安全,因为它利用了SSH地安全连接。

目前,SFTP已经在大多数场景下基本替代了FTP,而传统的FTP则应该被限制使用在可信的内部网络中。在我们和公有云上的云服务器交互的场景中,所有信息通过公网传输,通过SFTP来加强访问安全性几乎是个必选项。默认情况下,SFTP通过SSH协议来认证双方身份以及建立安全连接,所以能在SSH协议中使用的认证方法也都可以在SFTP中适用,如密码或密钥。

相比FTP,SFTP可以上传文件时保留更多的文件属性(如修改时间戳等),也是一个优势。

另外,SFTP已经被实现为SSHv2的子系统,无需在服务器端启动另外的服务进程,非常方便。注意这点和FTP很不一样,FTP是要在服务器端启动服务并占用特殊端口(通常25)。我们的云服务器相当于SFTP的Server,我们本地的SFTP插件其实就是SFTP的Client,上传/下载的概念也很直接。

0x06 小结

看到这里,你已经和我们一起熟悉了在腾讯云上创建Lighthouse云服务器实例、登录连接,并通过Visual Studio Code的SFTP插件自动同步本地代码。是不是感觉写代码效率更高更好玩了呢?

如果你平时也喜欢用VS Code编辑代码,可以按照这篇教程【5分钟玩转Lighthouse】Theia IDE尝试下Lighthouse新上的Theia IDE 1.5.0应用镜像,这样甚至连本地的VS Code都不用安装了,直接通过浏览器远程编辑服务器端的代码,也是一种全新的体验。

祝你Lighthouse体验愉快,并多和我们一起逐渐发掘Lighthouse的更多新鲜有趣的功能吧!

0x07 参考资料

腾讯云618
avatar
一个基础的SpringBoot项目该包含哪些–云惠网 腾讯云

一个基础的SpringBoot项目该包含哪些–云惠网

  建立一个全新的项目,或者把旧的庞大的项目,进行拆分成多个项目。在建立新的项目中,经常需要做一些重复的工作,比如说拷贝一下常用的工具类,通用代码等等。所以就可以做一个基础的项目方...
腾讯云618
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: