Logo迷失博客
返回文章列表
常用工具阅读时长:15 分钟

Netcatty 与 Netcatty Mobile:现代高颜值跨端 SSH 工作台全景指南与实战手册

发布时间:2026年09月02日 08:00最后修改:2026年09月02日 09:33

深度解析开源高颜值 SSH 工作台 Netcatty 及其移动端原生实现 Netcatty Mobile。图文详解桌面端与手机端全套功能、钥匙串统一身份凭据、原生免改源码公钥一键注入脚本、生产环境高频代码片段、无服务 E2EE 云同步配置 SOP 与信创私有化评估。

项目信息与仓库导航


在日常服务器管理与远程运维中,SSH 客户端是我们每天打开频率最高的生产力工具。传统终端工具往往存在界面老旧、移动端体验割裂、跨设备配置同步复杂等痛点。

近期开源社区推出的 Netcatty 桌面端及其专属原生移动端 Netcatty Mobile,以极具现代感的 Radix UI 原子设计、原生触屏辅助按键、画中画小窗后台保活,以及零服务器维护成本的端到端加密云同步(E2EE),成为跨端 SSH 远程工作台的新标杆。

本文将结合官方中文全景特性与移动端重构成果,系统梳理 Netcatty 桌面与移动端的全套功能、钥匙串模型、动态代码片段、原生免改源码公钥一键注入脚本,以及自建云同步配置 SOP,作为日常运维速查与实战手册。

Netcatty 桌面端工作台概览


一、桌面端旗舰:Netcatty 核心架构与多视图解析

Netcatty 桌面端基于 Electron 40 + React 19 + TypeScript + Radix UI + Tailwind CSS 4 + Monaco Editor + xterm.js 5 技术栈构建,将原本分散在各独立工具中的功能深度整合为一体化工作台。

┌──────────────────────────────────────────────────────────┐
│                    Netcatty Desktop                      │
├───────────────┬──────────────────────────┬───────────────┤
│   主机与保险库 │   多标签分屏终端         │  SFTP 资源树  │
│   (Vault 视图) │   (xterm.js + 辅助命令)  │  & Monaco 编辑│
├───────────────┴──────────────────────────┴───────────────┤
│          内置 Catty AI 运维助手 & 本地/动态端口转发       │
└──────────────────────────────────────────────────────────┘

1. 现代化原子设计与双主题质感

主界面围绕长期 SSH 驻留工作流设计,彻底抛弃传统终端的死板边框。支持深色护眼模式与浅色高对比模式自由切换,兼具科技感与视觉舒适度。

深色网格工作台浅色高雅工作台
深色网格浅色模式

2. Vault 主机保险库:三大视图自由调度

  • 网格视图(Grid):全局卡片式平铺,自动识别并展示 Linux 发行版(Ubuntu、Debian、CentOS、Alpine、Arch 等)或 FreeBSD/macOS 官方图标;
  • 列表视图(List):紧凑高密度排版,配合顶部即时搜索,适合大批量主机快速筛选;
  • 树形视图(Tree):按业务、机房或环境多层级展开,层级导航井井有条。
紧凑列表筛选视图树形分组层级导航
列表视图树形视图

3. 多窗分屏与终端工作区

终端窗口支持水平与垂直无限制分屏(Split Terminal)。在处理「左侧观察服务部署、右上查看实时访问日志、右下执行诊断命令」等多任务场景时,无需在多个窗口之间反复切换。

多任务分屏终端实战

4. 内置 Monaco 专业代码与配置编辑器

浏览 SFTP 远程文件时,直接集成 VS Code 同款 Monaco Editor,支持语法高亮、代码折叠、正则查找替换与即时保存回传,修改远程 nginx.confdocker-compose.yml 极为丝滑。


二、内置 Catty AI 运维助手实战

Netcatty 原生内置了 Catty Agent AI 运维助手,支持自然语言跨主机操作、报错诊断与集群任务编排。

1. 单主机:智能状态诊断与日志排错

当服务异常或命令报错时,直接向 Catty Agent 发问,它会自动执行探测命令、分析输出并给出结构化的诊断结论。

Catty Agent 单主机智能诊断

2. 多主机:跨节点 Docker Swarm 集群编排

Catty Agent 可在一次对话中跨多台远程主机进行协同编排。例如编排 Docker Swarm 集群时,它会自动完成初始化、令牌分发与节点加入,全程无需手动在两台机器间复制 Token。

Catty Agent 跨双机编排集群


三、钥匙串(Keychain)与统一身份凭据模型

Netcatty 采用了清晰解耦的钥匙串架构,将「密钥」与「登录凭据」独立于具体主机,实现一次录入、多处复用。

┌──────────────────────────────────────────────────────────┐
│                    钥匙串 (Keychain)                     │
├────────────────────────────┬─────────────────────────────┤
│   SSHKey 密钥库             │   Identity 身份凭据库       │
│   • 独立私钥 / 公钥 / 证书  │   • 标签 / 用户名 / 认证方式│
│   • Passphrase 本地安全存储 │   • 独立密码 / 关联 KeyId   │
└─────────────┬──────────────┴──────────────┬──────────────┘
              │ 批量绑定关联                │ 批量绑定关联
              ▼                             ▼
┌──────────────────────────────────────────────────────────┐
│                  主机清单 (Hosts Inventory)               │
│                  主机 A / 主机 B / 主机 C...              │
└──────────────────────────────────────────────────────────┘
  1. SSHKey(独立密钥库):独立管理 RSA、ECDSA、Ed25519 等私钥、公钥与证书,安全隔离存放;
  2. Identity(独立身份与密码库)
    • 包含:Label(标签) + Username(用户名) + AuthMethod(认证方式) + Password(密码) 或关联 KeyId
    • 批量复用:可以创建一个名为「生产环境统一 Root」的 Identity,配置主机时勾选绑定该凭据;后续统一修改密码时,只需在钥匙串中改动一次,所有关联主机全部自动同步生效。

四、代码片段(Snippets)与公钥一键注入实战

1. 免改源码方案:一键将 SSH 公钥注入远程主机

无需改动客户端源码,直接在 Netcatty 的 Snippets 中新建一条自动化脚本(kind: 'script'),点击即可自动提取当前主机绑定的公钥写入远程 ~/.ssh/authorized_keys 并纠正权限:

// Netcatty 原生 Automation Script
// 功能:自动提取当前主机公钥并安全注入远程 authorized_keys
const pubKey = nct.currentHost.publicKey;

if (!pubKey) {
  nct.notify("当前主机未配置公钥,请先在钥匙串中绑定公钥!", "error");
} else {
  const cmd = `mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo "${pubKey.trim()}" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && echo "✅ SSH 公钥已成功写入 authorized_keys"`;
  nct.send(cmd + "\n");
}

2. 动态参数模板语法({{variable}}

  • 必填参数{{var_name}}(点击执行时自动弹出参数输入窗口);
  • 带默认值参数{{port:8080}}{{domain:example.com}}
  • 历史输入自动记忆:每次输入的参数会自动缓存在本地,下次再次点击该片段时自动预填上次的值,无需重复手打。

3. 生产环境常用一键片段库(开箱即用)

(1) 系统资源与网络连接一键体检

echo "=== 系统负载 ===" && uptime && echo "=== 内存占用 ===" && free -h && echo "=== 磁盘空间 ===" && df -hT / && echo "=== 监听端口 ===" && ss -tulpn

(2) 一键开启 Linux BBR 拥塞控制算法

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf && echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf && sysctl -p && sysctl net.ipv4.tcp_congestion_control

(3) Docker 孤儿容器与悬空镜像一键清理

docker container prune -f && docker image prune -f && docker volume prune -f && docker system df

(4) 交互式修改 SSH 端口与防火墙联动

NEW_PORT="{{new_port:2222}}" && sed -i "s/^#\?Port [0-9]\+/Port $NEW_PORT/" /etc/ssh/sshd_config && (command -v ufw >/dev/null && ufw allow $NEW_PORT/tcp || true) && systemctl restart sshd && echo "SSH 端口已修改为: $NEW_PORT"

(5) 查找占用磁盘空间最大的 TOP 10 文件

du -ahx "{{scan_dir:/var}}" 2>/dev/null | sort -rh | head -n 10

五、端到端加密云同步(E2EE)配置 SOP

Netcatty 采用 Serverless 无服务依赖 架构。所有主机配置在离开设备前,均在本地通过 PBKDF2-HMAC-SHA256(600,000 次迭代)派生密钥,并经 AES-256-GCM 认证加密生成 netcatty-vault.json 密文 Payload,云端仅存放密文。

┌────────────────┐                     ┌────────────────┐
│ Netcatty 电脑端 │                     │ Netcatty 手机端 │
└───────┬────────┘                     └────────┬───────┘
        │   AES-256-GCM 本地加密密文 Payload     │
        ├──────────────────────┬────────────────┤
                               ▼
        ┌───────────────────────────────────────┐
        │  自建对象存储 / WebDAV / GitHub Gist  │
        │  • Cloudflare R2 / MinIO / AWS S3     │
        │  • 坚果云 / Alist / 群晖 NAS (WebDAV) │
        └───────────────────────────────────────┘

1. Cloudflare R2 / S3 接入步骤

  1. 创建 R2 存储桶:在 Cloudflare 控制台创建名为 netcatty-sync 的 Bucket,生成 S3 API Token;
  2. 桌面端配置
    • 打开 Settings > Cloud Sync,选择 S3 Compatible
    • Endpointhttps://<ACCOUNT_ID>.r2.cloudflarestorage.com
    • Bucketnetcatty-sync
    • Access Key ID / Secret Key:填入对应的 R2 Token 凭据;
    • Master Password:设置高强度本地加密主密码;
  3. 移动端接入:在 Netcatty Mobile 中填入相同凭据与主密码,即可瞬间实现双向加密同步。

2. WebDAV(Alist / 坚果云 / 群晖 NAS)接入步骤

  1. 选择 WebDAV
  2. Server URLhttps://dav.example.com/dav/netcatty/
  3. 填入 WebDAV 账号密码与加密主密码即可。

3. Convergent Sync 收敛同步防冲突

内置基于记录级修订版本与删除墓碑(Tombstone)的收敛算法,多设备并发离线修改后联网自动无锁合并,避免数据覆盖与已删主机复活。


六、移动端 Netcatty Mobile 深度实操指南

Netcatty Mobile 采用 Flutter (Dart) 原生重构,为手机触屏量身定制。

画中画小窗与系统管理

1. 触屏辅助按键栏

软键盘上方常驻 ESCCTRLALTSHIFTTAB方向键HomeEnd 与一键粘贴条,长按支持按键锁定(如 Ctrl + C),流畅操作 vimnanohtop

2. 前台服务保活与画中画(PiP)悬浮小窗

  • 后台不断连:Android 端持有前台通知服务(Foreground Service)与唤醒锁,切出 App 查阅资料不掉线;
  • 画中画小窗:点击画中画按钮将终端缩小为系统悬浮小窗,在进行其他操作的同时实时监控长任务日志。

3. 手机端单双栏 SFTP 与本地存储互传

支持单栏/双栏自适应切换,通过 Android SAF 授权可直接将远程服务器文件与手机本地目录双向流式互传。

4. 进程、Docker 与性能监控大屏

自动识别发行版图标,提供 CPU/内存/磁盘/网络实时卡片,并可直接在 UI 上管理进程(KILL/renice)、Docker 容器/镜像与 systemd 服务的启停。

服务器性能监控大屏进程与 Docker 容器管理
性能监控系统管理
服务器网格视图树形分组视图列表紧凑视图
网格视图树形视图列表视图
SSH 密钥与证书管理命令片段与动态变量50+ 套主题切换
密钥管理命令片段主题选择器

七、Catty AI 运维助手私有化配置

  1. 进入 Settings > Catty Agent
  2. Base URL:填写私有反代网关(如 https://ai-proxy.example.com/v1);
  3. API Key:填入访问令牌;
  4. Model:选择主力大模型;
  5. 在终端遇到错误时,一键发送给 AI 助手即可获得精准诊断与一键执行命令。

八、信创生态打包与离线化评估

┌──────────────────────────────────────────────────────────┐
│             信创 Linux 原生打包与离线化方案               │
├────────────────────────────┬─────────────────────────────┤
│   多架构 Deb 打包          │   纯离线安全适配            │
│   • Electron-builder 编译  │   • 全量内置 JetBrains 字体 │
│   • 银河麒麟 Kylin arm64   │   • 彻底剥离外部 CDN / 遥测 │
│   • 统信 UOS / x86_64      │   • 100% 物理隔离机房秒开   │
└────────────────────────────┴─────────────────────────────┘
  1. 信创 Linux 原生打包成本极低: 桌面端通过 electron-builder 即可原生编译适用于银河麒麟(Kylin)、统信(UOS)等国产 Linux 发行版的标准 arm64x86_64 .deb 安装包,命令如下:
    npm run pack:linux
    
  2. 字体全量内置与纯离线安全合规: 在打包时将开源 JetBrains Mono / Cascadia Code 字体直接打包进客户端内部,并剥离外部 Google Fonts 在线 CDN 与遥测发包,100% 满足纯物理隔离内网机房的安全合规要求。
  3. 推荐双轨运维策略
    • 日常主力运维:首选 Netcatty 桌面端 + Netcatty Mobile 移动端,搭配自建 Cloudflare R2 / WebDAV,享受现代高颜值 UI、触屏画中画与开箱即用的自动化代码片段;
    • 超轻量/无桌面信创环境:保留原生轻量终端工具作为兜底补充。