ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

iPad远程连接PC写代码:SSH、远程桌面与code-server配置实战

iPad远程连接PC写代码:SSH、远程桌面与code-server配置实战 把 iPad 当“第二块开发屏”这件事我前前后后折腾了至少半年踩过的坑能写满一个小本子。最开始我只是想躺在床上改个 Bug不想爬起来开电脑后来发现只要把远程连接链路搭稳iPad 配合一块键盘能在一段时间内完全承担“写代码、改代码、跑测试、看日志”这类工作。今天这篇就专门聊聊怎么让 iPad 变身开发神器远程连接 PC 撸代码把家里那台主力电脑变成一台可以随身带走的“云端开发机”。先说结论这条路完全可行但前提是你得把网络、账号权限、工具选型这三件事理清楚。很多人失败在“拿到 iPad 不知道怎么连”或者连上了却卡到怀疑人生。这篇文章我会把 PC 端和 iPad 端的配置思路、工具选择、常见报错都拆开讲尽量让你照着操作就能跑通。适合的对象也很明确有 iPad家里/办公室有一台 Windows 或 Linux PC想用 iPad 偶尔写代码、做运维、改文档的人。1. 想清楚“远程撸代码”到底需要什么1.1 远程开发解决的三个真实痛点第一个痛点是“人不坐在电脑前但代码在电脑上”。我们大部分人的主力开发环境都在 PC 或服务器上各种依赖、数据库、测试环境、历史分支都在那边。以前想随手看个问题只能选择跑回工位。iPad 做远程连接后等于把电脑的“操作权”通过屏幕搬到了手里。第二个痛点是“iPad 本地写代码体验太别扭”。虽然 iPad 有很好的编辑器、有的还能跑 Python 解释器但真遇到大型项目本地存储、内存、编译环境完全不是一回事。远程连接 PC 后CPU、内存、硬盘空间都还是电脑的iPad 只负责显示和输入这是我选择它而不是在 iPad 上装 IDE 的最主要原因。第三个痛点是“环境一致性”。你在 PC 上搭好的环境通过远程连接访问操作的就是同一个环境不会出现本地环境和服务器环境俩样导致“在我电脑上好的”这种问题。这一点在调试线上 Bug 或折腾开源项目时特别明显远程连接直接消除了环境差异。1.2 三条典型路线SSH 终端、远程桌面、浏览器里的 Code Server我把市面上能用的方案归成了三类你可以根据自己需求选SSH 终端方案iPad 装一个终端工具比如 Termius通过 SSH 连到 PC 的命令行。适合用 Vim、Neovim、Tmux、htop、git 这类命令行工具主要完成日常工作。也能在终端里跑构建命令、看日志带宽占用小不卡。远程桌面方案iPad 上装 Microsoft Remote Desktop 或 Jump Desktop直接看到 Windows/Linux 桌面跑完整 VS Code、浏览器、GUI 程序。适合需要完整 IDE 体验、调试界面化工具的人。Code Server 方案在 PC 上装 code-server把 VS Code 的 Web 版跑起来iPad 用浏览器访问界面接近原生 VS Code文件夹、插件、终端都有。适合想在 Pad 上获得“图形化编辑器”但不那么依赖 Windows 桌面的人。三条路各有各的适用场景。我自己的日常主力是 SSH 终端加 code-server偶尔需要看 GUI 或调试浏览器的时候才切到远程桌面。如果你刚开始折腾也不用全都上先想明白自己主要做什么是终端下能搞定还是非开 VS Code 不可想明白了再动手。2. 先把 PC 端这半边调明白远程连接这件事大头其实在 PC 端配置。很多朋友拿着 iPad 折腾半天连不上最后发现是 Windows 根本没开 SSH 服务或者防火墙按住了端口。所以别急着在 iPad 上装软件先把 PC 这扇门打开。2.1 Windows 开启 OpenSSH ServerWindows 10/11 其实自带 OpenSSH Server只是默认没装。打开“设置 - 系统 - 可选功能”看看能不能找到 OpenSSH 服务器。找不到就点“添加可选功能”去搜索装上。我更习惯用 PowerShell 命令行来做这件事因为开完可以直接看到状态# 查看是否已支持 OpenSSH.Server Get-WindowsCapability -Online | Where-Object Name -like OpenSSH.Server* # 安装 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 # 启动服务并设为自动启动 Set-Service -Name sshd -StartupType Automatic Start-Service sshd # 确认监听端口 netstat -an | findstr :22装完之后默认的登录账号是 Windows 当前用户密码就是你登录电脑的密码。如果你平时用的是微软账户密码可能有点特殊——大多数人在这里会踩坑后面我单独说。防火墙方面安装 OpenSSH Server 时系统一般会自动加规则但为了保险可以手动确认一下控制面板 - Windows Defender 防火墙 - 高级设置找到“OpenSSH Server”相关入站规则确保已启用。如果还是连不上直接临时加一条放行 22 端口的规则也能应急。2.2 Linux/macOS 侧快速确认如果你的 PC 是 LinuxDeFi 系的发行版基本一条命令就能搞定。以 Ubuntu 为例sudo apt update sudo apt install openssh-server -y sudo systemctl enable --now ssh sudo systemctl status ssh看到active (running)就说明 SSH 服务起来了。再用ip addr看看当前 IP建议记下来后面 iPad 要填的就是它。macOS 也有远程登录功能在“系统设置 - 通用 - 共享 - 远程登录”里打开即可。但如果你和我一样主力是 Windows PC下面的实操就按 Windows 来展开。2.3 固定内网 IP 与路由器端口转发这一步是很多新手最容易忽略的PC 的内网 IP 如果是 DHCP 动态分配的今天连得上明天重启路由器可能就变了。建议先到路由器后台把 PC 的 IP 绑定成固定地址或者在 PC 的网络设置里手动指定一个静态 IP。我一般用 DHCP 保留因为这样更省事路由器和 PC 两边都不用反复改。固定好 IP 后先测试局域网内的连接。用 iPad 的 Safari 或其他工具访问一下 PC 的 IP或者直接用后面要讲的终端工具尝试连接。只有局域网通了再考虑外部访问。外网访问是另一个话题。如果你家里的宽带拥有公网 IP可以在路由器上做端口映射把外网的某个端口映射到 PC 的 22 或 3389 端口。没有公网 IP 的通常会用内网组网或内网穿透类工具比如 frp、ZeroTier 这类方案。我这里不刻意推荐某个工具因为不仅各家网络环境差异大而且还要考虑安全风险。只给一个原则任何暴露到公网的服务端口不要用默认端口账号一定要用强密码并优先使用密钥登录。注意公网暴露是有真实风险的别把没有密保的 SSH 直接挂到公网否则你看到的将是每分钟好几十次暴力破解尝试。我自己的习惯是只暴露一个高端口并且只允许密钥登录。3. iPad 端的工具怎么选iPad 端的工具链选得好不好几乎决定了你愿不愿意长期用这个方案。市面上的远程工具不少但真正用下来顺手的主要就那几样。下面按三种方案给你拆开说。3.1 Termius日常 SSH 主力Termius 是我最常用的一款 iPad 终端工具界面干净、支持密码和密钥、能存多台主机。最方便的是一台设备配置好了其他设备登录同一个 Termius 账号可以同步所有连接配置。新建连接的步骤一点都不复杂打开 Termius点击右下角加号创建新主机。Address 填 PC 的内网 IP端口默认 22。Username 填 Windows 用户名或 Linux 用户名。密码填对应账号密码如果有 SSH 私钥可以在 Key 里添加上去。保存后点击连接。Termius 还内置了几种常用快捷键布局对 iPad 外接键盘比较友好。比如特殊键esc、ctrl、tab在屏幕上都能点算是省了不少事。它还支持 SFTP文件传小东西很方便不用每次都在云端转一道。3.2 Microsoft Remote Desktop / Jump Desktop需要完整桌面时当我要打开完整的 VS Code 窗口、调试浏览器页面、或者操作 PC 上的某个 GUI 程序时终端方案就顶不住了。这时远程桌面工具是更合理的选项。iPad 上我首选 Microsoft Remote Desktop微软官方出品免费。前提是 Windows 端已开启“远程桌面”功能设置 - 系统 - 远程桌面 - 启用远程桌面。然后 iPad 上新建连接填 PC 的 IP 和账号密码即可连上。用 Remote Desktop 连上 Windows 后看到的画面就是 Windows 桌面。屏幕方向、分辨率都可以在客户端里调整外接键盘的快捷键大部分也能透传。这套方案的优势是“所见即所得”缺点是对网络带宽要求更高特别是滚动大量代码或看动画时延迟会明显。Jump Desktop 则是更轻量的替代品连接流畅度和触控手感相对松弛但很多功能需要内购。对我来说微软官方客户端已经够用不着急买额外的钱。3.3 用 code-server 让浏览器也能写代码这里要重点说说 code-server因为它是很多“iPad 键盘”用户的最优解。code-server 是 VS Code 的服务器版本质上把 VS Code 的 Web 界面通过端口暴露出来。你在 PC 上装好启动后iPad 用 Safari 打开http://PC的IP:8080就能看到一个和 VS Code 几乎一样的界面。装 code-server 很简单官方提供了安装脚本也可以去 GitHub 下载二进制包。以 Linux 服务器为例curl -fsSL https://code-server.dev/install.sh | sh # 或直接下载二进制 # 然后启动默认端口 8080 code-server --bind-addr 0.0.0.0:8080Windows 上也能跑装完用命令行启动然后用浏览器访问。它也有密码认证默认配置文件会生成一个密码启动输出里能看到。如果你只是局域网内用这个基础防护还够如果要公网访问强烈建议套上 HTTPS 和额外反向代理。我在 iPad 上更常用 code-server 而不是远程桌面因为它的 UI 是为键盘鼠标设计的字体渲染清楚终端集成在编辑器下方写代码和跑命令都不用切换 App。配合 iPad 的分屏功能左边是浏览器里的 VS Code右边是 Termius 终端基本可以做到“一心二用”。4. 从 iPad 连 PC 的完整实操流程理论说了一堆走到这一步才是真正动手的时候。这里我把整个流程串一遍分为最基础的局域网连接和稍微进阶的跨网络访问也会分享一些我日常使用的小技巧。4.1 局域网内最简连接SSH 路线假设你已经按第 2 步在 PC 上装好 OpenSSH 服务且 iPad 和 PC 在同一个 WiFi 下流程如下在 PC 上打开命令行输入ipconfig找到当前局域网 IPv4 地址比如192.168.1.100。在 iPad 上打开 Termius新建主机Address 填192.168.1.100端口填22输入用户名和密码。连接成功后你就获得了 PC 的命令行终端。试一下ls、cd、git status确认能正常响应。如果要用 code-server就在 PC 上把 code-server 跑起来然后用 iPad 的浏览器访问http://192.168.1.100:8080。这一步看起来简单但实际上很多人会卡在用户名上。Windows 上的 OpenSSH 登录名不一定是你屏幕右下角显示的那个名字推荐在命令行里用whoami查看当前用户全名然后拿那个全名去连接。要是带了微软账户邮箱有时候用户名要写整个邮箱前缀这点特别容易出问题。4.2 远程桌面连接的详细步骤如果你打算用远程桌面方案Windows 端需要额外开启远程桌面功能“设置 - 系统 - 远程桌面”打开“启用远程桌面”开关。确认当前用户有远程访问权限可以在“选择可远程访问的用户”里维护。iPad 上安装 Microsoft Remote Desktop点击“Add PC”填入 PC 的 IP。保存后连接输入 Windows 账号和密码。连上之后我习惯在客户端设置中把“显示分辨率”调成和 iPad 匹配的比例减少缩放带来的模糊感。还有就是在外接键盘上尝试一下Win D显示桌面和Alt Tab切换窗口能不能透传不行的话就在屏幕工具栏上点虚拟键否则在 Windows 里切应用会很累。4.3 跨网络、无公网 IP 时怎么处理局域网通了之后自然的下一步就是“人不在家也想连”。这就涉及跨网络的访问方式。最理想的情况是你的宽带运营商给了一个公网 IP那你在路由器上做端口转发就能搞定。流程大致是固定 PC 的内网 IP在路由器后台找到“端口映射”或“虚拟服务器”添加一条规则外部端口选一个不常用的比如22222内部 IP 填 PC 的内网 IP内部端口填22局域网外访问时用公网IP:22222来连接。没有公网 IP 也很正常运营商给的往往是内网地址。这种情况我会用组网工具或内网穿透把多个设备拉进一个虚拟局域网iPad 上直接填虚拟局域网里 PC 的 IP 就行。好处是客户端配置和局域网几乎一样坏处是引入额外节点速度和稳定性取决于中继。实际操作中我建议先测一下“组网后内网 ping 延迟”延迟能保持在 30ms 以内体验基本过关如果延迟上百毫秒远程桌面就会明显感觉不跟手。需要提醒的是跨网络连接的安全配置要比局域网更严格。密钥登录是底线有条件再上两步验证并且不要用默认端口日志里被扫描的几率会低一些。我很少把 SSH 直接暴露在公网更多是用组网工具因为少一个对外开放端口就少一份风险。4.4 在 iPad 上玩转编辑和调试的小技巧工具连上只是开始真正舒服地写代码还得适配 iPad 的交互习惯。几个我实测下来很受用的小技巧外接键盘是必需品。我用的是带触控板的键盘壳虽然比不上笔记本键盘但写长代码、按快捷键都比屏幕虚拟键盘高效太多。快捷键里最常用的是Tab、Ctrl P快速打开文件、Esc。在 Termius 里如果你发现方向键和Esc不好按可以开启屏幕上的功能键区或者用Ctrl [代替Esc。code-server 里可以把字体调大因为 iPad 屏幕在那放着太小看久了眼睛疼。分屏很好用。把 Safaricode-server和 Termius 放一起左侧写代码右侧跑命令或者左侧看文档右侧跑日志。如果你有一支 Apple Pencil在远程桌面上操作界面很方便但在终端和代码编辑里用处不大偶尔点选文件还是比纯手指精准。这些细节虽然琐碎但它们是决定体验的重要因素。刚上手时觉得麻烦习惯之后反而觉得 iPad 比笔记本轻便太多带去开会或咖啡馆都能随时打开远程开发环境。5. 常见问题与排查技巧实录远程连接看着简单实际用起来问题五花八门。这里把我在实操里遇到过的、以及在社群里看到的高频故障整理出来方便你对照排查。5.1 “远程计算机拒绝连接”类报错怎么破这类报错是出现频率最高的症状是 iPad 一端连接时提示“远程计算机拒绝连接”或“找不到主机”。我这里列一个速查表现象可能原因解决办法ping 不通 PC 的 IP不在同一网段或 PC 防火墙拦截确保 iPad 和 PC 在同一路由器下检查 PC 网络类型是否为“专用网络”22 端口连接被拒OpenSSH Server 未启动在 PC 执行Start-Service sshd并查看服务状态3389 端口连不上Windows 远程桌面未开启设置中启用远程桌面并确认防火墙规则已添加用户名/密码错Windows 账号名不完整用whoami查询准确用户名连接后黑屏/闪退远程桌面客户端版本过老更新 Remote Desktop 到最新版关掉“硬件加速”重试外网连不上内网 IP端口映射未生效或运营商无公网 IP检查路由器映射规则或者改用组网工具遇到连接问题时我习惯先在 PC 本地看一下服务状态和端口监听netstat -an | findstr :22如果 22 端口没监听那问题基本出在服务没启动如果监听着但连不上就怀疑防火墙。熟练之后排查顺序就是先本地服务再防火墙再 IP 连通性最后才是认证。5.2 延迟高、画面卡顿、键入不跟手的优化思路远程开发最影响幸福感的不是功能缺失而是延迟。特别是用远程桌面时如果网络条件不好就会感觉鼠标在“飘”键盘按下到屏幕出现字符有明显的间隔。优化思路大致有几条优先走有线网络PC 如果接 Wi-Fi建议换成有线路由器放近一点iPad 用 5GHz 频段别连 2.4GHz。用 SSH 终端方案代替远程桌面终端只传文字和少量控制序列对带宽要求极低即使网络抖一点也不会太难受。远程桌面里降低分辨率和画质例如在 RD Client 里选择低分辨率关闭窗口动画某些客户端还有“优化网络”模式。如果只是终端卡可以试试 Mosh 这类工具。Mosh 在弱网下比 SSH 稳很多掉线也能回放本地输入我用下来明显比裸 SSH 平滑。重启一下路由器有时候真有用遇到诡异卡顿我是认真的。总体来说如果你主要写代码我会更推荐 code-server 或 SSH 终端方案因为它们的延迟敏感度远低于远程桌面。5.3 剪贴板、文件传输与代码同步的那些细节远程连接之后你会很快发现“剪贴板不同步”是个大问题。比如你在 iPad 上复制了一段代码想粘到远程终端里发现啥也没有。各工具的解决方案不太一样Termius 的 SFTP 能满足小文件传输但剪贴板同步需要版本支持。部分场景用它的“Command”面板粘贴文本更方便。Microsoft Remote Desktop 支持剪贴板重定向但需要在连接设置里打开“剪贴板”选项Windows 里复制iPad 里粘贴或者反过来。code-server 毕竟是浏览器界面iPad 上复制粘贴更接近网页习惯Cmd C和Cmd V一般好用。代码同步这件事重点还是交给 Git。远程开发时你在 iPad 上改完代码一样可以git add、git commit、git push回到 PC 后直接git pull完全不用手动传输文件。我自己的习惯是日常代码版本管理严格走 Git偶尔传个配置文件或图片走 SFTP。剪贴板方面则不强求同一个 App 跟手习惯了反而觉得问题不大。6. 用下来的一些真实体会这套方案我用了挺长一段时间整体感受就是“上限很高但下限也很低”。上限高是说只要配置到位几乎可以把 iPad 变成一个轻量开发工作站下限低则意味着网络、工具链、账号权限任何一环没弄好都可能导致你连一次就劝退。我个人的组合拳是Termius 作为稳定的 SSH 入口code-server 作为写代码的主界面远程桌面只做兜底。这样一来平时的代码编辑、日志查看、服务重启都在终端和浏览器里完成远程桌面只在需要 GUI 的时候才打开。长时间的电池续航和轻便是实打实的优势但如果你需要频繁操作大型 IDE 插件、跑本地虚拟机、做视频剪辑那 iPad 终究替代不了 PC。远程连接更适合的是“轻量维护 偶尔开发”而不是“重度开发者的唯一生产工具”。最后再分享一个很实用的经验刚开始不要把所有方案一股脑配齐先搞通一条最简链路比如在局域网内用 Termius 连上 PC 的 SSH然后在这个基础上慢慢加端口转发、加 code-server、加组网工具。亲身走完一遍之后你才会对“远程连接”的每一步有感知以后换网络、换工具也就能举一反三而不会变成只能抄配置的“脚本小哥”。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进