如何配置Pycharm服务器并结合内网穿透工具实现远程开发

在这里插入图片描述
🔥博客主页 小羊失眠啦.
🎥系列专栏《C语言》 《数据结构》 《Linux》《Cpolar》
❤️感谢大家点赞👍收藏⭐评论✍️


在这里插入图片描述
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

    • 一、前期准备
      • 1. 检查IDE版本是否支持
      • 2. 服务器需要开通SSH服务
    • 二、Pycharm本地链接服务器测试
      • 1. 配置服务器python解释器
    • 三、使用内网穿透实现异地链接服务器开发
      • 1. 服务器安装Cpolar
      • 2. 创建远程连接公网地址
    • 四、使用固定TCP地址远程开发

本文主要介绍如何使用Pycharm进行远程开发,并实现在家远程与公司服务器资源同步。

新版本Jetbrains系列开发IDE(IntelliJ IDEAPyCharmGoLand)等都支持远程使用服务器编译,并且可以通过SFTP同步本地与服务器项目代码

这样做的好处是**我们只要连接上服务器就能开始干活儿,不用折腾环境,**不占用个人笔记本资源,最重要的是不用忍受笔记本的烂风扇噪音。

接下来我来教大家如何配置实现在家远程利用公司服务器资源开发

image-20231212102555634

一、前期准备

1. 检查IDE版本是否支持

本文以Pycharm举例,IntelliJ IDEA操作方式相同。

确认您安装的PyCharm是社区版还是专业版,只有专业版才支持远程开发功能。

在这里查看软件版本:工具栏help->about

image-20231208150235397

显示 Professional Edition,即为专业版。

2. 服务器需要开通SSH服务

执行:

sudo systemctl status sshd 

image-20231208150906432

active表示已开通

二、Pycharm本地链接服务器测试

1. 配置服务器python解释器

找到工具栏的 [File] -> [Settings],打开以下设置弹窗,搜索interpreter找到[Python interpreter]设置项

image-20231208153546354

点击Add Interpreter,选择On SSH

image-20231208153729790

将实例SSH指令中的Host、Port与Username进行匹配和填写(Username均为root,Host和Port查看自己实例的SSH指令)

image-20231208155245563

输入服务器登陆密码:

image-20231208155311697

继续下一步,直到看到 completed 字样,再点下一步。

image-20231208160307404

选择System Interpreter(选择服务器的代码解释器),选择服务器的远程Python解释器路径(如果您安装了其他Python或虚拟环境则根据实际情况填写)

image-20231208160812489

配置项目路径,意思是本地项目和远程实例中的哪个目录进行关联,这里设置为我演示项目的目录(不建议使用默认的/tmp目录)

选择好自定义同步项目文件夹,点击文件夹图标:

image-20231208160849772

弹窗内左侧为本地项目路径,右侧为服务器项目路径,可以自行修改:

image-20231208160947156

我修改的远程路径为:/root/projects/pythonlearn,点 ok

image-20231208162225503

检查一下远程服务器的解释器和同步路径,点 Create

image-20231208162318367

如果配置均无误PyCharm会配置一下,之后我们在本机项目最下边可以看到 SFTP 字样和服务器信息,说明我们的配置成功,此时我们不光使用服务器编译代码,项目还能与服务器同步。

我链接服务器后同步出的数据如下:

image-20231208164704600

此处我们在本地测试成功,但是这样配置的意义就是可以实现异地使用服务器的资源开发,这里我们**需要将SSH时使用的本地IP映射为公网TCP地址,才能实现异地开发。**这样我们只需本地编写代码,远程到服务器编译并同步代码。

三、使用内网穿透实现异地链接服务器开发

1. 服务器安装Cpolar

本地测试完成后,我们需要在服务器上安装cpolar内网穿透工具,通过cpolar 转发本地端口映射的公网地址,我们可以很容易实现远程访问。下面是安装cpolar步骤:

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

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

image-20230831171159175

Ubuntu18及Centos7之前的系统,需要使用手动安装Cpolar,详见:

Linux手动安装Cpolar方法 - cpolar 极点云

2. 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

image-20231208170230024

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:22 (本地ssh默认端口)
  • 域名类型:临时随机TCP端口
  • 地区:选择China

点击创建

创建成功后,打开左侧在线隧道列表,查看刚刚创建隧道后生成的tcp地址,这个地址就是公网连接地址,接下来使用这个地址:1.tcp.cpolar.cn:20747 ,替换我们的本地地址。

image-20231211140133059

我们再次回到编译器设置界面, 点击Add Interpreter,选择On SSH

image-20231208153729790

找到[Python interpreter]设置项,选择Existing,修改Python编译器地址:

image-20231211142344417

选择后边是 agent 这个 sever选项

image-20231211142404132

点 管理

image-20231211142422538

修改本地地址为公网TCP地址,修改端口号。

image-20231211142701174

修改为:

image-20231211180151736

点击Apply部署,点 ok,自动跳转为:

image-20231211180230250

点 ok

image-20231211142842310

输入服务器登陆密码:

image-20231211142856221

配置完毕,点Next

image-20231211142934023

我们可以看到已经链接成功,可以看到编译器路径和项目保存路径,点 create:

image-20231211143001964

等待一会加载:

image-20231211143014104

此时Python编译器处已经显示我们配置的公网地址,点Apply,就配置完成。

image-20231211143034013

项目页面左下角已经显示我们编译器的路径,此时我们编译代码使用的就是服务器编译器,运行完毕后结果返回至Pycharm。

image-20231211143120521

小结

为了方便演示,我们在前述过程中使用了Cpolar生成的TCP地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定TCP域名,原因是我希望每天打开开发工具直接上手工作,不用这配置一下那配置一下,接下来我教大家如何固定TCP地址:

四、使用固定TCP地址远程开发

访问官网控制面板,保留TCP:

Cpolar - secure introspectable tunnels to localhost

保留一个固定tcp地址,登录cpolar官网,点击左侧的预留,找到保留的tcp地址,为远程服务器连接保留一个固定tcp地址:

  • 地区:选择China VIP / China VIP Top
  • 描述:即备注,可自定义

点击保留

image-20231211152407635

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

image-20231211153724134

打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击编辑

image-20231211152929870

选择 固定TCP端口:

image-20231211153813707

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

  • 端口类型:修改为固定TCP端口
  • 预留的tcp地址:复制粘贴官网保留成功的地址

点击更新

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

image-20231211162838302

我们仍然重复之前的操作,将原来的随机TCP地址替换为固定TCP地址:

找到工具栏的 [File] -> [Settings],选择Existing,修改Python编译器地址:

image-20231211163234901

按照如下方法填写我们固定好的TCP地址和端口号:

image-20231211163325400

点击Apply后,点 ok

image-20231211173817321

点 Next

image-20231211173840278

点 ok

image-20231211173852245

输入服务器登陆密码

image-20231211173905495

配置完毕,点 Next。

image-20231211173933807

这里我们看到,已经自动查到我们服务器中编译器路径和项目保存路径;点 create。

image-20231211174041679

点Apply部署,点 ok

image-20231211174110219

此时我们可以看到左下角已经显示使用我们固定地址的Python编译器:

image-20231211174136291

本教程最终效果已经达成。我们已经能够使用永久固定地址来远程操作服务器中的Python编译器并将运行结果返回到Pycharm,代码修改还能通过这个TCP地址同步,这样我们就可在任意地点远程使用服务器的强大算力来编译各种复杂的项目而不占用本地资源!

在这里插入图片描述

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

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

相关文章

vue路由-全局前置守卫

1. 介绍 详见:全局前置守卫网址 使用场景: 对于支付页,订单页等,必须是登录的用户才能访问的,游客不能进入该页面,需要做拦截处理,跳转到登录页面 全局前置守卫的原理: 全局前置…

KubeSphere 核心实战之二【在kubesphere平台上部署redis】(实操篇 2/4)

文章目录 1、登录kubesphere平台2、redis部署分析3、redis容器启动代码4、kubesphere平台部署redis4.1、创建redis配置集4.2、创建redis工作负载4.3、创建redis服务 5、测试连接redis 在kubesphere平台上部署redis应用都是基于redis镜像进行部署的,所以所有的部署操…

2022-ECCV-Adaptive Face Forgery Detection in Cross Domain

一、研究背景 1.伪造视频是逐帧生成的,因此会造成时间维度上的伪影。而鲁棒的检测模型需要对同一身份的不同帧有一致的检测结果。 1.利用频率线索进行deepfake检测效果良好,但也会导致帧间不一致问题,即不同帧检测结果不同。 2.以往方法中固定…

【JavaScript】面向后端快速学习 笔记

文章目录 JS是什么?一、JS导入二、数据类型 变量 运算符三、流程控制四、函数五、对象 与 JSON5.1 对象5.2 JSON5.3 常见对象1. 数组2. Boolean对象3. Date对象4. Math5. Number6. String 六、事件6.1 常用方法1. 鼠标事件2. 键盘事件3. 表单事件 6.2 事件的绑定**1…

【咕咕送书 | 第八期】羡慕同学进了大厂核心部门,看懂这本书你也能行!

🎬 鸽芷咕:个人主页 🔥 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 写在前面参与规则 ✅参与方式:关注博主、点赞、收藏、评论,任意评论(每人最多评论…

VMware虚拟机设置NAT网络模式

查看本地服务器网卡ip10.9.158.77 设置vmNet8虚拟网卡ip10.9.58.177,不需要在同一网段 3.点击VMware设置“虚拟网络编辑器”,点击“NAT设置”所有设置的ip网段需要与第二步的VMNet8网卡的网一致

算法 动态分析 及Java例题讲解

动态规划 动态规划(英语:Dynamic programming,简称 DP),是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适…

day-15 按分隔符拆分字符串

思路 依次对words的每个字符进行split(),然后将非空的加入List 解题方法 String arr[]s.split(ss);利用split()方法将words的每个字符串划分为String数组 if(arr[i]!“”) //将非空的加入 list.add(arr[i]); String ss“”separator; //使用转义字符 时间复杂度:…

HCIA——18实验:NAT

学习目标: NAT 学习内容: NAT 1.要求——基本的 2.模型 3.IP分配、规划、优化 1)思路 R2为ISP路由器,其上只能配置ip地址,不得冉进行其他的任何配置—ospf配置 认证 、汇总、沉默接口、加快收敛、缺省路由 PC1-PC2…

制动盘市场分析:预计2029年将达到123亿美元

制动系统是高速列车动车组九大关键技术之一,制动性能的好坏将直接影响列车的行车安全及运行品质。制动系统按照操纵控制方式,主要分为电制动和空气制动。通常情况下,电制动和空气制动联合作用,但是在紧急制动情况下,只…

蓝桥杯备战 每日一题 (2)

今天的题目是回忆迷宫 这个题目我们来熟悉一下 弗洛伊德算法 的代码模板 弗洛伊德算法用来处理最短路径问题 弗洛伊德算法(Floyd’s algorithm)用于解决图中所有节点对之间的最短路径问题。算法的基本思路是通过逐步迭代更新节点对之间的最短路径长度&a…

Windows系统使用手册

点击前往查看🔗我的博客文章目录 Windows系统使用手册 文章目录 Windows系统使用手册Windows10解决大小核调度问题Windows系统安装软件Windows系统Typora快捷键Windows系统压缩包方式安装redisWindows安装dockerWindows系统的docker设置阿里源Windows系统下使用doc…

美颜SDK功能设计:定制化美颜滤镜的应用与开发教学

当下,美颜SDK成为开发者们追逐的焦点之一。然而,如何设计具有个性化特色的美颜滤镜,不仅能够满足用户的需求,还能够在激烈的市场竞争中脱颖而出,成为了一项技术上的挑战。 一、定制化美颜滤镜的重要性 为什么我们需要…

【迅搜19】扩展(二)TNTSearch和JiebaPHP方案

扩展(二)TNTSearch和JiebaPHP方案 搜索引擎系列的最后一篇了。既然是最后一篇,那么我们也轻松一点,直接来看一套非常有意思的纯 PHP 实现的搜索引擎及分词方案吧。这一套方案由两个组件组成,一个叫 TNTSearch &#xf…

Linux多线程——互斥锁

本质Gitee仓库:互斥锁、锁封装 文章目录 1. 线程互斥2. 互斥锁2.1 锁的初始化与释放2.2 加锁与解锁 3. 锁的原理4. 锁的封装5. 线程安全与可重入函数 1. 线程互斥 一个共享资源在被多个线程并发访问的时候,可能会出现一个线程正在访问,而另一个线程又来…

「alias」Linux 给命令起别名,自定义bash命令

0. 背景 Arch 系统没有 ll命令,在其他发行版用惯了一时间没有真不习惯,来配置一下吧! 1. 全局配置 我希望 ll 命令可以被所有人使用,所以应该配置在全局的bash配置文件中,一般这个全局bash配置文件在: /etc/bash.bashrc 切好管理员权限后,命令如下 echo “alias ll‘ls -l -…

hyperf安装

下载docker windows下下载 安装Windows docker,会提示安装 安装wsl https://docs.microsoft.com/zh-cn/windows/wsl/install(插件) 安装>wsl --install -d Ubuntu-16.04 用户名:xxx 密码:xxx supervisor安装 …

ACM题解Day1|1.Accurate Movement ,2.Help the Support Lady, 3.Absolute Game

1.Accurate Movement 思路 : 本题为模拟题主要是模拟方块的移动,其中 以两木块的最右端做为记录点. 先挪动a, 每次a块只能挪到和b块相同的位置, b块每次最多挪动(b-a).为什么因为有限制挡板然后俩木块要不能同时移动只能移动一一个 #include<bits/stdc.h> using namespac…

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2Innovus)

吾爱IC社区星友提问&#xff1a;请教星主和各位大佬&#xff0c;对于一个模块如果不加干预工具会让inst挤成一团&#xff0c;后面eco修时序就没有空间了。如果全都加instPadding会导致面积不够overlap&#xff0c;大家一般怎么处理这种问题&#xff1f; 在数字IC后端设计实现中…

[AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言4.5key价格泄漏ChatGPT4.0使用地址ChatGPT正确打开方式最新功能语音助手存档…