# 常见问题

Canonical: https://galaxnet.dev/zh-hans/nova/faq/
Language: zh-Hans









## 与官方 Tailscale 客户端有何不同？
NovaScale 使用的是改造版 libtailscale，并在应用进程内直接建立 Tailnet 通信，因此在该场景下不需要申请 iOS 系统 VPN 权限。

参考：<https://tailscale.com/kb/1112/userspace-networking>


## 为什么某些情况下 iOS 将 NovaScale 放到后台后 SSH 会话还能恢复？
NovaScale 在某些场景依赖 userspace 网络行为和内存中的会话状态。若 iOS 因内存压力终止进程，当前会话将无法恢复。


## 升级到 NovaScale 1.6.0 后为什么提示 SSH 主机密钥不匹配？
NovaScale 1.6.0 重构了 SSH 通信基础。NovaScale 1.5.0 保存的部分已信任主机密钥使用较旧的表示格式，因此升级后首次重新连接时，1.6.0 可能会将未发生变化的主机密钥显示为不匹配。在 1.6.0 中首次信任的主机不受影响。

移除已保存的主机密钥前，请先确认连接的确实是预期主机，并与从服务器本机或管理员处获取的指纹进行核对。然后前往 **更多 > 主机密钥**，找到受影响的主机，向左滑动并选择 **移除**。重新连接后，请核对新显示的指纹，确认一致后再信任。通常只需移除受影响的条目，无需使用 **清除全部**。


## 为何在开启某些 VPN 客户端后 NovaScale 无法加载主机列表？
部分 VPN 客户端会开启 `FakeIP` 功能，对 DNS 查询返回保留 IP 空间中的地址。NovaScale 的底层基于 Tailscale 内核组网，会直接绑定到用户的非 VPN 接口（如 5G 或 Wi‑Fi）并从该接口发起请求。

NovaScale 1.6.0 已针对这些 VPN App 常用的 FakeIP 地址范围增加缓解措施。大多数用户不再需要修改 VPN 配置。如果开启 VPN 时 NovaScale 能正常加载主机，无需进行任何操作。

部分 VPN App 允许使用不同或自定义的 FakeIP 地址范围。如果该范围未被 NovaScale 识别，Tailscale 相关域名或自建 Headscale 认证域名仍可能返回 FakeIP，导致请求失败。此时需要在 VPN App 中将这些域名配置为返回真实 IP。

以 Surge 为例，如果使用官方 Tailnet 认证端点，可在 **[General]** 中增加：

```text
[General]
always-real-ip = *.tailscale.com
```

如果使用自建 Headscale 控制服务器，还需加入其认证域名。其他 VPN App 中对应的设置可能叫作“真实 IP”“FakeIP 过滤”或“排除 FakeIP”。修改后请重新连接 VPN，并重新启动 NovaScale。


## NovaScale、Codex CLI 与 Codex 桌面应用之间会共享哪些 Codex 状态？
这些客户端可以读取主机上由 Codex 管理的同一份状态。线程标识与名称、对话记录和已完成回合、最新模型与思考强度，以及 Goal 状态会由 Codex 持久化，并可由其他客户端恢复。

实时状态的边界不同。正在运行的回合、待处理的批准、当前权限选择、沙盒与批准策略可能仅属于发起它们的 Codex 运行时。NovaScale 无法始终从独立的 CLI 或桌面应用运行时接管这些工作。在 NovaScale 中选择的权限仅适用于从 NovaScale 发起的回合，不会改变其他客户端的当前会话。

NovaScale Pro 的 iCloud 同步会在你的 Apple 设备之间同步 NovaScale 的 Codex 主机条目。Codex 对话记录、源代码或工作区数据不会上传到 iCloud；这些数据仍保留在 Codex 主机上。


## 为什么 Codex 的模型与思考强度通常能在不同客户端之间保持一致？
Codex 会将最新模型与思考强度持久化为线程元数据。当 NovaScale、Codex CLI 或其他 app-server 客户端在没有显式覆盖设置的情况下恢复线程时，Codex 会还原这些值。客户端也可以主动选择其他值，此时显式设置优先。

NovaScale 不维护固定的模型列表，而是从该主机上的 Codex app-server 获取可用模型与思考强度。因此，选项可能随 Codex 版本、账户、服务端灰度发布和主机配置而变化。如果更新 Codex CLI 后仍未出现新模型，请使用 NovaScale 的主机维护诊断，并按提示重新启动或更新 NovaScale Codex 主机服务。

参考：<https://learn.chatgpt.com/docs/app-server>


## 为什么 Codex 0.147 提示该线程已有活跃写入方？
Codex 会将每个线程保存在持久化的 rollout 文件中。Codex 0.147 对该文件应用单写入方保护：如果 Codex CLI、Codex 桌面应用或其他 app-server 运行时仍拥有该线程，NovaScale 可以读取其已持久化的历史，但发送新回合可能会被阻止。即使另一个客户端的最新回合已经完成，只要该会话仍打开着线程，也可能出现此情况。

NovaScale 不会强制接管，也不会直接修改 rollout 文件。出现冲突时，NovaScale 提供以下选择：

- 退出或关闭当前拥有该线程的会话，然后在 NovaScale 中选择**重试**。
- 等待所有权过期后重试。对 Codex 0.147 的测试中，未继续写入的所有权会在约 30 分钟后释放；如果原客户端又发起新回合，则会重新开始一轮等待周期。
- 选择**新会话**，在同一工作区中独立开始。
- 选择**分叉线程**，保留现有历史并在独立线程中继续。

app-server 协议仍处于实验阶段，因此后续 Codex 版本可能调整具体的所有权超时时间。

参考：<https://learn.chatgpt.com/docs/app-server>





