开发者必备:推荐将闲置iPad Pro打造为编程工具,使用VS Code编写代码
文章目录
- 前言
- 1. 本地环境配置
- 2. 内网穿透
- 2.1 安装cpolar内网穿透(支持一键自动安装脚本)
- 2.2 创建HTTP隧道
- 3. 测试远程访问
- 4. 配置固定二级子域名
- 4.1 保留二级子域名
- 4.2 配置二级子域名
- 5. 测试使用固定二级子域名远程访问
- 6. iPad通过软件远程vscode
- 6.1 创建TCP隧道
- 7. ipad远程vscode
- 8. 配置固定TCP端口地址
- 8.1 保留固定TCP地址
- 8.2 配置固定TCP端口地址
- 9. 使用固定TCP地址远程vscode
前言
随着平板电脑的普及,大多数人的生活习惯和生活场景都离不开平板电脑的使用,刷剧,看短视频,玩主流游戏等,但是这些只是娱乐性质的场景,那想实现把平板结合到工作或者生产之中场景中呢,如编辑文档,制作工作表格,编写代码?
所以在入手ipad后,为了防止“买前生产力,买后爱奇艺”。我们可以在linux上搭建code server,然后用ipad通过浏览器或者或app,来远程访问code server。使用服务器的资源来跑代码,而ipad前端上只需要负责撸代码和运行就可以啦,让ipad完美变身移动开发工具!!
并且,为了实现在外随时随地远程移动开发,我们搭配使用了cpolar内网穿透,突破局域网的限制,实现在公网环境下也可以用ipad写代码开发!!
1. 本地环境配置
准备一台虚拟机,Ubuntu或者centos都可以,这里以VMware Ubuntu系统为例
下载code server服务
在浏览器访问:https://github.com/coder/code-server,复制下载命令
打开ubuntu命令行执行
curl -fsSL https://code-server.dev/install.sh | sh
出现需要输入ubuntu的登录账户密码,输入密码即可,然后等待安装完成
以下信息表示安装成功
接着输入以下命令设置code-server的登录密码
export PASSWORD=”000000”
查看IP地址,作局域网访问使用
ifconfig
设置好密码后启动code-server服务,输入以下命令:
code-server --host= “0.0.0.0”
出现地址和端口号信息表示成功
接着打开浏览器通过局域网访问http://192.168.30.128:8080/,出现welcone code-server
表示成功,输入我们设置的密码,登录即可。
2. 内网穿透
接着我们使用cpolar穿透本地code-server服务,使得远程可以进行访问,随时随地写代码。cpolar支持http/https/tcp协议,不限制流量,操作简单,无需公网IP,也无需路由器。
cpolar官网:https://www.cpolar.com/
2.1 安装cpolar内网穿透(支持一键自动安装脚本)
- 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
- 查看服务状态
sudo systemctl status cpolar
正常显示为active
则表示服务为正常在线启动状态
2.2 创建HTTP隧道
在ubuntu系统本地安装cpolar内网穿透之后,在ubuntu浏览器上访问本地9200端口,打开cpolar web ui界面:http://127.0.0.1:9200。
点击左侧仪表盘的隧道管理——创建隧道,由于code-server中配置的是8080端口,因此我们要来创建一条http隧道,指向8080端口:
- 隧道名称:可自定义,注意不要重复
- 协议:http协议
- 本地地址:8080
- 域名类型:选择随机域名
- 地区:选择China VIP
点击创建
创建好后,点击左侧的状态——在线隧道列表,查看公网地址,将其复制下来
3. 测试远程访问
打开ipad浏览器,输入刚刚复制的公网地址访问即可,访问后输入前面设置的密码,出现vscode界面表示成功
4. 配置固定二级子域名
4.1 保留二级子域名
由于以上使用cpolar所创建的隧道使用的是随机临时公网地址,该地址在24小时内会发生变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】
需要注意,配置固定二级子域名需要将cpolar升级到基础套餐或以上。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称
- 地区:选择China vip
- 二级域名:可自定义填写
- 描述:即备注,可自定义填写
4.2 配置二级子域名
访问本地9200端口,打开cpolar web ui 界面,点击左侧的隧道管理——隧道列表,找到vscode隧道,点击右侧的编辑
修改下隧道信息:
- 域名类型改为选择二级子域名
- subdomain:填写刚刚保留成功的二级子域名
点击更新
隧道更新成功之后,点击左侧的状态——在线隧道列表,查看公网地址,此时可以看到地址变成了二级域名,将其复制下来
5. 测试使用固定二级子域名远程访问
接着我们再次打开ipad浏览器,访问刚刚配置成功的固定二级子域名地址,出现vscode界面表示成功,就可以愉快的写代码啦.
6. iPad通过软件远程vscode
接下来我们通过servediter for code-server软件来实现ipad远程访问vscode
6.1 创建TCP隧道
首先需要创建一条TCP隧道,指向我们服务器的22端口,servediter for code-server
这个软件需要连接服务器,在ubuntu上打开浏览器访问本地9200端口,登录cpolar web ui界面,点击左侧的隧道管理——创建隧道
- 隧道名称:可自定义,注意不要重复
- 协议:tcp协议
- 本地地址:22
- 域名类型:选择随机临时TCP端口
- 地区:选择China VIP
点击创建
隧道创建成功之后,点击左侧的状态——在线隧道列表,将所生成的公网地址复制下来。
7. ipad远程vscode
在ipad上,点击打开appstore,下载软件servediter for code-server
下载成功后点击打开,由于该软件是付费的,可以自由选择购买,这里选择免费试用,选择最后一个free
输入相关信息
参数介绍:
- code-server URL:填写前面配置成功的http公网地址【ipad浏览器访问的那个地址】
- Instance password:code-server配置的密码
- Host:这里填写我们前面创建成功的22隧道的公网地址
- Username: 这个填写ubuntu系统的用户名
- Port: 这里默认即可无需修改
- Authentication: 这个填写ubuntu系统用户名对应的密码
输入完信息后点击右上角save后就会自动连接,出现vscode界面表示连接成功啦
8. 配置固定TCP端口地址
由于前面我们创建的ssh 22端口的隧道选择的是随机临时地址,该地址会在24小时内变化,为了使我们ipad里面使用vscode连接更加通畅,我们需要固定ssh 的公网地址。
注意需要将cpolar套餐升级至专业套餐或以上。
8.1 保留固定TCP地址
登录cpolar官网后台,点击左侧的预留,找到保留的TCP地址:
- 地区:选择China VIP
- 描述:即备注,可自定义填写
点击保留
固定TCP地址保留成功,系统生成相应的公网地址+固定端口号,将其复制下来
8.2 配置固定TCP端口地址
浏览器访问http://127.0.0.1:9200/登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到codeserver隧道,点击右侧的编辑
修改隧道信息,配置固定TCP端口地址:
- 端口类型:改为选择固定TCP端口
- 预留的TCP地址:填写刚刚保留成功的固定TCP端口地址
点击更新
提示更新隧道成功,点击左侧仪表盘的状态——在线隧道列表,可以看到刚刚修改的隧道的公网地址已经更新为固定TCP端口地址,将其复制下来。
9. 使用固定TCP地址远程vscode
在ipad上,打开servediter for code-server软件,修改host的参数,将其修改为我们刚刚配置成功的固定TCP端口地址。
点击左上角i
标志
选择self Host Server
把Host值改为我们刚刚官网保留的tcp地址
更改完后点击右上角save,点击完后会自动连接,出现vscde界面表示成功了,至此,教程就结束了,使用ipad开启愉快的编程吧!该公网地址不会再随机变化了。
相关文章:

开发者必备:推荐将闲置iPad Pro打造为编程工具,使用VS Code编写代码
文章目录 前言1. 本地环境配置2. 内网穿透2.1 安装cpolar内网穿透(支持一键自动安装脚本)2.2 创建HTTP隧道 3. 测试远程访问4. 配置固定二级子域名4.1 保留二级子域名4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问6. iPad通过软件远程vscode6.1 创建TCP隧道 7. ipad远…...

c++,标准库std中全局函数 _Destroy_in_place(...)的分析
(1)该函数的定义和位置如下: 可见,传入形参为某种类型的引用,该函数会执行形参的析构函数,还可以有效解决数组的连续析构。很强大的函数。 (2)疑问是,若形参是指针类型…...

java:Tomcat
文章目录 背景服务器web 服务器服务资源的分类服务器软件的分类nginx 和 tomact总结 安装Tomcatbrew安装官网压缩包安装IDEA集成IDEA插件 说明 背景 在讲 Tomcat 是啥之前,我们先来了解一些概念。 服务器 可以理解为一个高性能的电脑,但是这个电脑现在…...

US-P2F-R-C双线圈插头式比例阀放大器
US-P2F-R-C型插头式安装比例放大器控制不带电反馈的单或双比例电磁铁的比例阀,如比例插装阀、比例方向阀、比例压力阀、比例流量阀、比例叠加阀等,带数显区显示及当前参数,如指令、电流、上下斜坡、颤振频率等,指令类型兼容0-10V、…...

clickhouse一次异常排查记录
clickhouse中报错 关闭了自启动,删了status,重启了clickhouse还是报错 1,排查定时执行的脚本日志(每小时第5分钟执行) INSERT INTO quality0529.previously_reported_urls (url) SELECT url FROM quality0529.hourly_…...
Python 数据可视化:玩转 Matplotlib 的散点图、线形图、饼图和热力图
前言 我们来探讨其他几种常用的数据可视化图形:散点图、线形图、饼图和热力图。 可视化图形的优点~ 数据可视化图表是数据分析和演示的重要手段,它有以下优点: 快速理解信息:通过图表,人们可以迅速捕捉到数据的主要模式和趋势,而不需要详细查看每个数据点。 增强记忆:…...

基于python+pyqt实现opencv银行卡身份证等识别
效果展示 识别结果 查看处理过程 历史记录 完整演示视频: 无法粘贴视频........ 完整代码链接 视频和代码都已上传百度网盘,放在主页置顶文章...

惠普台式机装系统记录
1. 问题集锦 1.必须装双系统,就是必须得有win系统,不然会出现蓝屏; 2.装win系统之后,再装ubuntu系统,会出现rst的问题,基本无解,放弃; 2. 装机步骤: 第一步:…...

java八股文面试[JVM]——垃圾回收
参考:JVM学习笔记(一)_卷心菜不卷Iris的博客-CSDN博客 GC垃圾回收面试题: JVM内存模型以及分区,需要详细到每个区放什么 堆里面的分区:Eden,survival from to,老年代,各…...
iOS开发Swift-控制流
1.For-In循环 //集合循环 let names ["a", "b", "c"] for name in names {print("Hello, \(name)!") } //次数循环 for index in 1...5{print("Hello! \(index)") } //不需要值时可以使用 _ 来忽略此值 for _ in 1...5{…...

leetcode875. 爱吃香蕉的珂珂(java)
二分查找 爱吃香蕉的珂珂二分查找 上期经典 爱吃香蕉的珂珂 难度 - 中等 LC - 875.爱吃香蕉的珂珂 珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。 珂珂可以决定她吃香蕉的速度 k (单位&…...

LeetCode-406-根据身高重建队列
题目描述: 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造…...

JVM——类加载与字节码技术—编译期处理+类加载阶段
3.编译期处理 编译期优化称为语法糖 3.1 默认构造器 3.2 自动拆装箱 java基本类型和包装类型之间的自动转换。 3.3泛型集合取值 在字节码中可以看见,泛型擦除就是字节码中的执行代码不区分是String还是Integer了,统一用Object. 对于取出的Object&…...

C#|如何调试进依赖动态库中
第一步:打开项目属性 第二步 打开debug的本地调试可用 第三步 把要调试的代码拖进主界面打断点就可以进断点了...

全新版本QStack云管系统3.5.3 附详细安装教程
源码介绍: QStack云管系统3.5.3,全新版本下载安装包详细搭建教程。 涵盖了服务器、云主机、代理IP等多种云产品管理运维和安全存储。 同时,QStack还支持对接运营众多公有云厂商产品资源,满足不同用户的需求。 通过开放API和插…...
SLB 负载均衡
优质博文:IT-BLOG-CN 一、简介 SLB (Server Loader Balancer)将访问流量根据转发策略分发到后台多台服务器的流量分发控制服务,来实现多台服务器提供相同的业务服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。主要用于…...

多核调度预备知识
进程调度的本质 任务/进程切换 即:上下文切换,内核对处理器上执行的进程进行切换“上下文” 指:寄存器的值“上下文切换”指: 将寄存器的值保存到内存中(进程被剥夺处理器,停止执行)将另一组寄存器的值从内存中加载到…...
什么是Git?解释Git的分布式版本控制系统的优势?
1、什么是Git?解释Git的分布式版本控制系统的优势? Git是一个开源的分布式版本控制系统,用于跟踪和管理代码库的版本历史。它允许用户在本地计算机上跟踪和管理代码库的更改,并与其他人协作开发项目。Git的分布式特性意味着它不需…...
软考高级系统架构设计师系列论文九十五:图书馆网络应用体系安全设计
软考高级系统架构设计师系列论文九十五:图书馆网络应用体系安全设计 一、网络应用体系安全设计相关知识点二、摘要三、正文四、总结一、网络应用体系安全设计相关知识点 软考高级系统架构设计师:计算机网络...

qt 实现音视频的分贝检测系统
项目场景: 目前的产品经常播放m3u8流,有的视频声音正常,有的视频声音就偏低,即使放到最大音量声音也是比较小,所以就产生了某种需求,能否自动感知视频声音的大小,如果发现声音比较小的情况&…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...