开发者必备:推荐将闲置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流,有的视频声音正常,有的视频声音就偏低,即使放到最大音量声音也是比较小,所以就产生了某种需求,能否自动感知视频声音的大小,如果发现声音比较小的情况&…...
KV260视觉AI套件到手后,我跳过了图形界面,直接用SSH搞定了网络配置(附详细命令)
KV260视觉AI套件极简配置指南:从串口到SSH的全命令行实战 拿到KV260开发板的第一天,我就决定抛弃图形界面——毕竟在嵌入式开发领域,真正的效率永远来自命令行。本文将分享如何通过纯命令行完成从开箱到网络配置的全过程,包括串口…...
GLM-OCR与Transformer架构解析:从原理到高效部署
GLM-OCR与Transformer架构解析:从原理到高效部署 你是不是也好奇,那些能“看懂”图片里文字的AI,比如GLM-OCR,到底是怎么工作的?它凭什么能在一张复杂的海报里,准确无误地把文字抠出来,还能理解…...
别再纠结选哪个了!CAN、串口、蓝牙、TCP,手把手教你根据项目场景选通信协议(附Android实战代码)
通信协议选型实战指南:从车载系统到智能家居的黄金法则 当你在凌晨三点的办公室里盯着四块显示器,面前摆着CAN分析仪、蓝牙嗅探器和串口调试终端时,突然意识到项目deadline就在明天——这种场景对嵌入式开发者来说再熟悉不过了。选择错误的通…...
硬件(6)——定时器
硬件中如何确定引脚电平的高低?硬件内部有一个比较器,类似门电路,有两个输入一个输出,其中一个输入接稳定的参考值(DCDC 3.3V),另一个输入接引脚。当引脚高于3.3V就输出高电平,引脚低于3.3V就输…...
别再混淆了!JavaScript与Java的10个本质区别(附常见面试题解析)
别再混淆了!JavaScript与Java的10个本质区别(附常见面试题解析) 当面试官问"Java和JavaScript有什么区别"时,超过60%的初级开发者会给出"它们就像汽车和地毯的关系"这类玩笑式回答。但真正理解这两种语言的核…...
避坑指南:Jetson AGX Xavier刷机全流程(含显示器兼容性测试)
Jetson AGX Xavier刷机避坑指南:从零配置到显示器兼容性实战 第一次拿到Jetson AGX Xavier开发板时,那种既兴奋又忐忑的心情至今记忆犹新。作为NVIDIA边缘计算产品线的旗舰级设备,这块开发板在机器人、自动驾驶和工业检测等领域展现出了惊人的…...
【项目实战】ESP8266 WiFi模块从零接入物联网 - 硬件连接、固件烧录与云端通信
1. ESP8266 WiFi模块入门指南 第一次拿到ESP8266这个小玩意儿时,我完全没想到它能在物联网领域掀起这么大风浪。这个比硬币大不了多少的模块,内置了完整的WiFi功能,价格还不到一杯奶茶钱。记得去年帮学弟调试毕业设计时,我们用ESP…...
RAG-SQL Router实战:让AI智能判断文档与数据库查询,小白也能轻松搭建收藏版
本文介绍RAG-SQL Router系统,解决AI问答时判断信息来源(文档或数据库)的困境。通过LlamaIndex框架和OpenAI模型,实现智能路由决策,支持非结构化和结构化数据查询。提供完整代码和实战步骤,帮助开发者快速搭…...
手把手教你用SRIO IP核实现FPGA与DSP间高速数据互传:基于AXI-Stream接口的实战
基于SRIO IP核的FPGA与DSP高速数据互传实战指南 在异构计算系统中,FPGA与DSP的高效协同已成为雷达信号处理、无线通信基带处理等领域的核心技术需求。传统的数据传输方式如SPI、UART等已无法满足现代系统对带宽和实时性的严苛要求,而Serial RapidIO&…...
告别手动配置:用STM32CubeMX和Arduino库玩转ADS1115与STM32 ADC
告别手动配置:用STM32CubeMX和Arduino库玩转ADS1115与STM32 ADC 在嵌入式开发的世界里,ADC(模数转换器)就像一位不知疲倦的翻译官,将模拟世界的连续信号转换为数字世界能理解的离散数值。然而,传统的寄存器…...
