code-server是开源web版vscode,通过远程服务器运行、ipad浏览器访问实现完整开发体验;需配置bind-addr:0.0.0.0:8080、强密码及ssl证书,推荐使用code app客户端并确保服务器端环境一致。

VSCode 不能直接在 iPad 上安装运行,但通过远程开发方案,能获得几乎等同于桌面的完整体验。核心路径只有一条:把 VSCode 实例跑在远程服务器(云主机 / 家庭服务器 / 树莓派),iPad 仅作为终端访问。
code-server 是最轻量、最可控的远程方案
code-server 是开源版 Web 版 VSCode,由 Coder 团队维护,和 VSCode 源码同源,插件兼容性高,无功能阉割。它不依赖浏览器 WebAssembly 渲染,而是服务端渲染 UI + WebSocket 传输交互,对 iPad Safari 支持稳定。
常见错误现象:code-server 启动后 iPad 打不开页面,或提示“连接被拒绝”——大概率是 bind-addr 仍为默认的 127.0.0.1:8080,没放开外网监听。
- 安装命令必须用官方脚本:
curl -fsSL https://code-server.dev/install.sh | sh - 配置文件路径固定为
~/.config/code-server/config.yaml,务必修改bind-addr: 0.0.0.0:8080 - 密码必须设,且不能用纯数字——
code-server会拒绝弱密码,日志里报auth: password validation failed - 若服务器在家庭宽带后,需额外配
cpolar或frp做 TCP 穿透,目标端口是8080(不是 SSH 的 22)
SSH 连接方式比网页更安全,但需要多一层端口转发
如果你已习惯用 Termius 或 Blink Shell 连服务器,不想暴露 code-server 的 HTTP 端口,推荐走 SSH 隧道。这本质是把远程的 8080 映射到 iPad 本地,再用 Safari 访问 http://localhost:9000,全程流量加密,不经过公网 IP。
使用场景:公司内网服务器、校园网环境、或你明确不想让 code-server 被扫描到。
- 在 Termius 中新建连接,填好
HostName和User - 进入「Advanced」→「Port Forwarding」→ 添加本地端口转发:
Local port: 9000→Remote host: 127.0.0.1→Remote port: 8080 - 连接成功后,Safari 打开
http://localhost:9000,输密码即可 - 注意:这个
127.0.0.1是指服务器本机,不是 iPad;如果code-server绑的是0.0.0.0,就完全没问题
Code App 是目前 iPad 上体验最好的客户端
直接用 Safari 访问 code-server 可以用,但缺少快捷键映射、多标签管理、离线缓存和键盘响应优化。Code App(App Store 搜索 “Code App”,开发者 Coder.com, Inc.)专为这类 Web IDE 设计,底层用 WKWebView,支持外接键盘的 Cmd+S、Cmd+Shift+P 等原生快捷键,并能保存多个服务器连接配置。
容易踩的坑:Code App 默认启用 TLS 验证,如果你用自签证书或未配 HTTPS,会卡在白屏——此时需在设置里关掉 Verify SSL Certificates。
- 添加服务器时,URL 填完整地址,例如:
https://your-domain.com:8443(带协议和端口) - 如果用
cpolar分配的免费域名(如xxx.cpolar.io),必须配 Let’s Encrypt 证书,否则 Code App 拒绝加载 - 它不支持 HTTP Basic Auth,所以
code-server的密码必须走其内置 auth,不能套 Nginx 的auth_basic
Flutter/React Native 开发必须在服务器端配齐 CLI 工具链
iPad 上的 Code App 或 Safari 只是显示层,所有 flutter run、npx react-native run-android 都在远程服务器执行。这意味着 Android SDK、JDK、Flutter SDK、Xcode CLI(如需 iOS 构建)全得装在服务器上,且 PATH 和环境变量要对所有 shell 会话生效。
性能影响:Flutter 编译本身很吃 CPU 和内存,建议服务器至少 4 核 8GB;Android 构建还会大量读写磁盘,SSD 是刚需。
-
flutter doctor -v必须在服务器终端里全绿,尤其是Android toolchain和Connected device项 - Android SDK 的
platform-tools和build-tools版本要匹配项目要求,比如 React Native 0.73+ 强制要求build-tools;34.0.0 - 不要试图在 iPad 上用 USB 连 Android 手机调试——ADB 必须在服务器端识别设备,需配置
adb connect或物理直连服务器
真正麻烦的从来不是连接本身,而是环境一致性:服务器上的 Node.js 版本、Python 解释器路径、Shell 初始化逻辑(~/.bashrc vs ~/.zshrc)、甚至 git 的 credential helper,都会让远程终端行为和本地预期不一致。每次换新服务器,先跑一遍 which node && echo $PATH && git config --list,比盲目装插件有用得多。











