ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Vellum移动端上线:开源Rust编辑器支持SSH远程开发与AI辅助

Vellum移动端上线:开源Rust编辑器支持SSH远程开发与AI辅助 这次我们要看的是一个偏工程向的开源项目Vellum 的 iOS / Android 客户端正式上线。Vellum 本身是一款面向 AI 时代设计的开源编辑器采用 Rust 编写早期主要跑在 Linux 桌面和终端环境里特点是高性能、插件系统灵活、内置 LLM 对话能力。这次移动端客户端上线意味着你可以直接用手机或平板通过 SSH 连回自己的开发机在移动设备上完成代码浏览、轻量修改、AI 辅助补全和终端操作。如果你平时维护一台 Linux 服务器或者有远程开发的习惯这个项目值得关注。它的核心场景不是把手机变成 IDE而是把 Vellum 的编辑体验延伸到移动端服务端负责真正的计算和文件系统移动端负责交互和显示。和直接在手机上装 Termius 不同Vellum 移动端与桌面端共用同一套远程编辑模型你在电脑上改到一半的 session理论上可以换到手机上继续处理。本文会围绕这个移动端上线版本梳理几个实际的问题Vellum 是什么、iOS/Android 客户端的部署模型是什么、服务端怎么准备、移动端怎么连、能测哪些功能、出了常见错误怎么排查。文中不会给出“双击即用”这种不负责的结论涉及命令的地方会区分“官方通用做法”和“需要你按自己的环境替换的部分”。1. Vellum 核心能力速览先说结论Vellum 不是一个“某个模型的一键包”也不是“某个 Chat UI”它是一整套服务端 客户端的开源解决方案。从项目定位来看它主要围绕“远程开发 AI 辅助”展开。能力项说明项目类型开源代码编辑器 / 远程开发客户端客户端平台iOS、Android本次上线重点服务端平台Linux 桌面/服务器为主也可运行于支持 Rust 的类 Unix 环境连接方式SSH / 远程开发服务移动端通过安全通道连接服务端核心功能远程文件浏览、代码编辑、LSP 补全、内置终端、AI 对话助手扩展能力WASM 插件、Python 应用服务器开源情况是代码在 GitHub 等渠道公开是否需要 GPU通常不需要服务端以 CPU、内存和网络带宽为主是否支持 API支持插件和应用服务器接口具体路径以官方文档为准是否支持批量任务不是原生核心卖点但可以通过脚本和插件扩展适合场景远程运维、移动端应急改 bug、轻量开发、多设备同步开发状态需要说明一下上面表格里关于“哪一代显卡、多少显存”这类问题对 Vellum 来说不是首要指标。服务端只要能跑 Rust 编译产物、能维持 SSH 服务和文件系统访问就够了真正吃资源的是你打开的工程规模、LSP 服务数量以及是否启用了本地大模型推理。如果服务端要跑本地 LLM 做代码补全那才需要额外的显存或高性能 CPU。如果只是通过 API 调用云端模型服务端资源压力会小很多。2. 适用场景与使用边界Vellum 移动端适合的人群首先是有 Linux 服务器使用经验的开发者其次是希望在手机/平板上“临时处理”代码的人。比如以下几个场景很典型在通勤路上发现线上测试环境挂了想快速看日志、改一行配置、重启服务。在办公室用 iPad 连接家里或内网中的开发机查看代码 review 结果。不想在手机上装一堆 App希望通过一个客户端统一管理多台服务器。已经在桌面端用了 Vellum 和它的插件机制希望移动端也有接近一致的体验。它不太适合的场景包括完全没有 Linux 基础的用户、只想在手机上“写一个完整项目”的人、对安全配置不敏感又在公网上裸奔服务的用户。使用边界方面必须把安全和合规放在前面。Vellum 移动端本质上是把一个开发服务器的控制入口放到了你的口袋设备里这意味着服务端不要用简单密码登录首选 SSH Key 认证。不要把 22 端口或 Vellum 服务端口直接暴露到公网除非你设置了防火墙、fail2ban 和严格的访问白名单。如果涉及公司代码、客户数据先确认是否有权限远程访问尤其不要用个人手机连接未授权的生产环境。移动设备丢失风险更高建议开启设备锁、远程擦除功能并定期轮换密钥。这些不是“可做可不做”而是远程开发工具的底线。项目本身是开源的部署方式相对自由但自由不意味着可以忽略安全。3. 环境准备与前置条件在安装 Vellum 移动端之前先把服务端环境准备妥当。下面给出一套通用的检查清单你可以按照自己的实际环境调整。3.1 服务端基础要求操作系统Ubuntu 22.04 / Debian 12 / Fedora 等主流 Linux 发行版理论上其他类 Unix 系统也行但用 Linux 服务器最容易验证。架构x86_64 或 ARM64 均可取决于 Vellum 官方发布的二进制。内存普通项目建议 2GB 以上如果打开大工程并启用多个 LSP建议 4GB 以上。磁盘Vellum 编辑器本体不大但你的项目、依赖和插件会占空间建议预留至少 5GB。网络需要保证移动端能访问服务端的 SSH 端口或 Vellum 服务端口同一局域网最简单跨网络需要自行配置安全通道。SSH 服务确保sshd已安装并运行。3.2 客户端要求iOS 设备系统版本需要能安装最新客户端具体最低版本以 App Store 页面为准。Android 设备Android 10 或以上版本通常问题不大具体以应用市场和官方文档为准。网络与服务端网络互通能访问 SSH 端口/TCP 端口。认证材料SSH 私钥或密码。强烈建议使用密钥。3.3 端口规划先确定服务端用哪个端口。SSH 默认是 22但为了减少扫描攻击很多开发者会改成高位端口比如 2200、2222。Vellum 服务端如果有自己独立的服务端口也需要提前在防火墙里放开。# 查看本机 SSH 服务状态 sudo systemctl status sshd # 查看端口监听情况确认 SSH 监听在哪个端口 sudo ss -tlnp | grep sshd如果 SSH 服务没装先安装sudo apt update sudo apt install -y openssh-server sudo systemctl enable --now ssh4. 服务端安装部署与启动Vellum 桌面端/服务端的安装方式官方通常会提供两种渠道一种是直接下载对应平台的二进制或安装包另一种是通过包管理器安装。移动端 App 本身只是一个客户端真正的部署重点在服务端。4.1 获取服务端安装包更稳妥的判断是先到 Vellum 项目官网或 GitHub Releases 页面找对应平台的最新包下载后放到/opt/vellum或~/vellum这类目录然后赋予执行权限。# 以下为通用安装模板具体文件名和路径以实际下载为准 mkdir -p ~/vellum cd ~/vellum wget https://your.download.url/vellum-server-linux-x86_64.tar.gz tar -xzf vellum-server-linux-x86_64.tar.gz chmod x vellum-server注意上面这个地址是占位符。不要直接复制运行你需要去官方渠道确认最新版本的真实下载地址。我这里刻意不写死某个版本号就是怕过几个月文章里的命令全部失效。4.2 启动前配置启动前需要确认几件事当前用户对项目目录有读写权限。服务端监听的端口没有被占用。SSH 密钥已经准备好。如果服务端需要对外提供服务需要监听0.0.0.0或指定网卡地址。# 启动服务端监听 2200 端口这里用 --host/--port 示意 # 实际参数名以官方命令为为准 ./vellum-server --host 0.0.0.0 --port 2200 启动后观察日志。正常情况下会看到类似“listening on 0.0.0.0:2200”的提示。然后把端口放进防火墙白名单sudo ufw allow 2200/tcp sudo ufw reload4.3 用 systemd 托管服务如果是长期运行建议用 systemd 把 Vellum 服务端托管起来避免 SSH 断开后进程跟着退出。# /etc/systemd/system/vellum.service [Unit] DescriptionVellum Server Afternetwork.target [Service] Useryour_username WorkingDirectory/home/your_username/vellum ExecStart/home/your_username/vellum/vellum-server --host 0.0.0.0 --port 2200 Restarton-failure RestartSec5 [Install] WantedBymulti-user.target创建完成后执行sudo systemctl daemon-reload sudo systemctl enable --now vellum sudo systemctl status vellum这一步做完服务端基本就绪。5. 移动端客户端连接与验证服务端启动后开始配置移动端。这是本文最需要动手的部分。5.1 准备 SSH 密钥如果还没有密钥先在任意电脑或手机上生成一对。为了兼容性好推荐使用 ed25519ssh-keygen -t ed25519 -C mobile-vellum -f ~/.ssh/vellum_mobile生成后会得到两个文件vellum_mobile私钥需要放到移动端或手动输入。vellum_mobile.pub公钥需要写入服务端的authorized_keys。然后把这个公钥添加到服务端的~/.ssh/authorized_keysssh-copy-id -p 2200 your_usernameserver_ip如果ssh-copy-id不可用也可以手动追加cat ~/.ssh/vellum_mobile.pub ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys关键点authorized_keys和.ssh目录的权限一定不能过于宽松否则 SSH 服务会拒绝加载公钥。5.2 在移动端新建连接打开 Vellum iOS/Android 客户端找到“新建连接”或“Add Connection”入口。一般需要填写以下内容连接名称比如home-server。服务端地址例如192.168.31.100。SSH 端口例如2200。用户名例如dev。认证方式选择密钥或者密码。如果用密钥把前面生成的私钥导入客户端。iOS 上可以通过文件 App 导入Android 上可以通过文件管理器选择也可以手动粘贴私钥内容。5.3 验证连接是否成功连接成功后应该看到以下几个特征远程文件树能够列出目标目录下的文件通常是服务端当前用户的 home 目录或指定工作目录。点击文件可以在编辑器里打开代码高亮正常。保存文件后服务端文件内容确实被更新。内置终端能执行ls、pwd、git status等命令。建议连接成功后先做一个最小验证在服务端创建一个测试文件然后在移动端打开、修改、保存再回到服务端确认内容变化。# 在服务端执行 echo hello vellum mobile /home/dev/test_vellum.txt移动端打开这个文件改成别的文本并保存然后回到服务端cat /home/dev/test_vellum.txt如果看到修改后的内容说明移动端读写通道已经完整打通。6. 功能测试与效果验证Vellum 移动端不是简单的 SSH 终端它带着编辑器和 AI 辅助能力。功能测试可以按模块拆开做。6.1 远程文件浏览与搜索测试目的确认移动端能浏览大目录和快速定位文件。操作方式在 App 内进入一个真实项目目录比如一个几万文件的 node_modules 或一个大型 Rust 工程。观察目录列表加载时间尝试用内置搜索找某个文件名。预期结果目录加载不卡死搜索能在可接受的时间内返回结果。常见问题如果目录文件特别多、服务端磁盘 IO 慢列表会转圈。重点排查服务端是否在执行大量索引任务比如 LSP 首次启动。6.2 代码编辑与保存测试目的验证移动端编辑的可靠性和保存回写是否稳定。操作方式在移动端打开一个 Python 或 TypeScript 文件修改函数名或变量名保存。预期结果保存成功服务端文件变化LSP 返回的诊断信息同步更新。失败排查保存失败先看是不是目录权限问题再看 SSH 连接是否断开。Vellum 移动端在弱网环境下可能出现“保存冲突”需要确认编辑的是最新版本。6.3 AI 助手 / 代码补全测试这一项依赖服务端是否配置了 LLM。Vellum 的 AI 能力可以走两种路子调用云端 LLM API需要在服务端配置 API Key。在本地跑一个模型服务通过 Vellum 的模型配置指到本地推理端口。测试时给 AI 助手发一个简单的指令比如“给这个函数补一个单元测试”观察响应是否正常。预期结果AI 返回结果能插入编辑器或至少在对话面板里给出可用代码。这里容易遇到两类问题API Key 没配置好导致 401网络不稳定导致长文本生成被中断。建议先用短 prompt 验证连通性再测长任务。6.4 内置终端与远程命令测试目的确认移动端终端能完成基本运维操作。操作方式打开内置终端执行git pull、docker ps、journalctl -u vellum --no-pager | tail -n 20这类命令。预期结果命令输出正常显示没有乱码没有卡死。注意移动端虚拟键盘占用屏幕空间终端交互体验不如桌面但查看日志、执行短命令是够用的。如果输入命令时出现自动补全干扰可以在设置里关闭相关选项。6.5 断线重连与多设备切换测试目的模拟移动设备锁屏、切换 Wi-Fi 后能否恢复连接。操作方式连接状态下手动断开网络再恢复观察客户端是自动重连还是需要手动恢复。预期结果重新联网后客户端能恢复文件列表或者至少给出明确的重新连接入口。这里更稳妥的判断是Vellum 移动端不一定保留所有未保存的缓冲区状态。建议重要编辑随时保存不要把移动端当成“永不丢数据”的工具。7. 插件与 API 扩展Vellum 比较吸引开发者的一点是它的扩展机制。移动端本身只是客户端但服务端可以装插件、跑 Python 应用服务器这样移动端也能间接使用这些能力。从公开信息看Vellum 支持通过 Python 编写应用服务器逻辑用 WASM 做插件隔离。这意味着你可以给服务端写一个小服务比如一个用于快速查找日志的 HTTP 接口。一个把某个目录打成 tar 包并下载的接口。一个对接内部发布流程的 Python 插件。下面给一个通用的 Python 插件/App Server 代码模板具体需要按官方插件 API 调整# app.py —— 通用模板实际接口函数名以官方插件 API 为准 from vellum_plugin import App, Request, Response app App() app.route(/api/hello) def hello(req: Request) - Response: name req.query.get(name, vellum) return Response.json({message: fhello {name}}) if __name__ __main__: app.run(port7000)启动插件服务后用 curl 验证curl http://127.0.0.1:7000/api/hello?namedev如果返回 JSON说明插件服务逻辑已通。Python 请求接口的通用调用示例import requests url http://127.0.0.1:7000/api/hello params {name: vello} resp requests.get(url, paramsparams, timeout10) print(resp.status_code) print(resp.json())需要明确一点接口路径、参数名、返回结构完全取决于 Vellum 当前版本的插件 API我的示例只是演示“服务端跑了一个本地 HTTP 服务”这种思路不是官方文档的照搬。如果你只是想通过移动端触发一些远程任务也完全可以用 SSH 终端跑脚本不一定非要写插件。插件适合需要长期复用、带参数、要暴露成 HTTP 接口的场景。8. 资源占用与性能观察Vellum 的移动端界面做得再流畅真正的性能瓶颈仍然在服务端和网络链路。8.1 服务端资源观察启动 Vellum 服务端后可以用top或htop观察进程占用top -p $(pgrep -f vellum-server)重点观察CPU 占用编辑器进程在空闲时应该很低如果持续 100%可能是在做索引或构建任务。内存占用LSP、AI 模型、插件会叠加内存开销项目越大越明显。磁盘 IO首次打开大目录时会扫描文件磁盘繁忙可能短暂升高。如果服务端启用了本地 LLM 做补全内存和显存占用会明显上升。这属于正常现象但你要确认设备散热和资源余量是否足够。8.2 移动端网络延迟Vellum 移动连接最明显的体验差异来自网络延迟。同一局域网内输入和保存基本是“跟手”的走公网或跨运营商每一次补全、目录刷新都会变慢。测试网络延迟的通用方法ping -c 10 你的服务器IP再测试端口连通性nc -vz 你的服务器IP 2200如果 ping 延迟高于 50ms移动端编辑体验会明显打折。更稳妥的方案是让手机和服务端处于同一局域网或者通过可靠的组网方案接入内网。8.3 降低资源占用的建议打开项目时尽量避免把node_modules、.git、target这类大目录直接暴露给文件树必要时通过忽略规则过滤。不需要的 LSP 插件可以关掉尤其是不常用的语言服务器。移动端不要同时打开几十个文件标签页Vellum 服务端会为每个文件维护缓冲区状态。如果服务端内存不足优先关掉本地 LLM 推理改用云端 API。9. 常见问题与排查方法远程开发工具的问题基本集中在网络、权限、密钥、端口四个维度。下面列一个排查表。问题现象可能原因排查方式解决方案移动端无法连接服务端服务端没启动 / 端口错误 / 防火墙拦截服务端执行ss -tlnp | grep 2200客户端执行nc -vz IP 2200启动服务、修正端口、放行防火墙SSH 认证失败公钥未写入authorized_keys或私钥格式错误服务端看/var/log/auth.log重新添加公钥检查.ssh目录权限连接成功但目录列表为空工作目录配置错误或当前用户无读权限检查服务端配置中的 root/workspace 路径修改为有权限的目录保存文件提示失败目录写权限不足 / 磁盘满 / 连接中断服务端执行df -h检查目录属主修正目录权限清理磁盘代码高亮不生效LSP 未安装或未配置查看服务端日志确认 LSP 是否启动安装对应语言服务重启 Vellum 服务端AI 助手不回复API Key 缺失 / 模型服务未启动 / 网络不通在服务端手动 curl 模型 API配置 Key、启动本地模型服务终端中文乱码客户端字体或服务端 locale 问题执行locale查看编码启用 UTF-8调整终端字体长时间操作后断连SSH 空闲超时 / 移动网络切换查看客户端日志和服务端 SSH 日志开启心跳保活参数必要时重启客户端插件接口 404插件未加载或路由路径不匹配看插件启动日志核对路由配置和端口这里给几条排查命令遇到问题时先跑一遍# 检查服务端口监听 ss -tlnp | grep -E 2200|22 # 检查防火墙状态 sudo ufw status # 检查 SSH 登录日志 sudo journalctl -u ssh --since 10 minutes ago # 检查 Vellum 服务日志 sudo journalctl -u vellum --no-pager -n 50运维思路很简单先确认服务端本地能否访问再确认端口通不通最后确认认证是否通过。不要一上来就在客户端反复重装。10. 最佳实践与使用建议如果你决定把 Vellum 移动端作为日常远程开发工具下面这些建议可以少踩不少坑。10.1 安全配置先行始终使用 SSH Key 认证关闭密码登录。SSH 服务端可以改到非默认端口降低扫描命中概率。配置 fail2ban避免暴力破解。移动端不保存长期有效的私钥密码至少开启系统级加密存储。服务端只对必要 IP 开放端口有条件的话接入公司内网或专用组网工具不要直接把开发端口暴露到公网。10.2 目录规划在服务端准备一个专用目录作为远程工作区与系统目录分开mkdir -p ~/remote_workspace配置文件、日志、临时文件分目录存放。不要用 root 用户连接创建普通用户并赋予sudo权限即可。这样即使移动设备丢失也能把权限影响控制在单用户范围内。10.3 批量任务与自动化Vellum 本身不是任务队列但可以通过服务端脚本补足。例如写一个简单的 shell 脚本在移动端终端里一键执行#!/bin/bash # ~/bin/deploy_check.sh echo Git Status git -C /path/to/project status --short echo Running Containers docker ps --format table {{.Names}}\t{{.Status}} echo Disk Usage df -h /然后给它执行权限chmod x ~/bin/deploy_check.sh以后在移动端直接执行deploy_check.sh一次获取多个维度的状态。这比在手机上一条条敲命令高效得多。10.4 版本更新策略Vellum 迭代速度可能比较快。服务端和客户端尽量保持版本接近避免旧客户端连新服务端时协议不兼容。升级服务端前先备份配置和数据目录tar -czf vellum_backup_$(date %Y%m%d).tar.gz ~/vellum ~/.config/vellum如果更新后出现异常可以快速回滚。10.5 合规与授权最后再强调一遍远程开发工具能打开的不只是你自己的服务器。如果服务端上有多人项目、客户环境或生产系统务必确认授权边界。不要用个人手机去连未授权的生产环境不要在公共场合展示敏感代码不要关闭系统日志审计。开源性是技术优势但不是安全豁免。11. 总结与下一步Vellum 开源 iOS/Android 客户端上线本质上解决的是“如何在移动设备上获得接近桌面级的远程编辑体验”这个问题。它把计算留在服务端把操作带到了手机上和传统 SSH 客户端相比多了代码编辑、AI 辅助、插件扩展这些完整能力。如果你准备开始尝试建议按这个顺序操作先在局域网内的一台 Linux 机器上部署 Vellum 服务端配置好 SSH 密钥。手机端装好客户端完成第一次连接。用一个小项目测试目录加载、文件编辑、保存、终端命令。确认基础流程没问题后再配置 AI 模型和插件。最后再考虑跨网络访问并做好防火墙、fail2ban 等安全加固。最容易踩的坑不是功能不会用而是服务端环境没准备好SSH 没开、端口没放行、公钥权限不对这些问题会让移动端看起来“连不上”实际上是服务端配置不到位。排查时优先看服务端日志比反复重启 App 有效得多。后续可以继续关注 Vellum 的插件生态和 AI 能力更新。移动端上线只是第一步真正值得期待的是它在服务端扩展能力上还能长出什么玩法。建议先收藏这篇文章部署的时候照着顺序走一遍有问题可以直接对照排查表定位。
返回列表