用户指南
设置
一般设置
PML 2 的设置界面可以通过点击主界面左侧的齿轮图标 进入。在设置界面中,您可以配置 PML 2 的各种选项。若您想要修改配置文件, 请参阅配置文件章节。
外观
在这里,您可以选择 PML 2 的外观。
主题
PML 2 提供了多种主题供您选择,包括浅色、深色和系统 (根据系统设置自动切换) 。您可以根据自己的喜好选择一个主题。
材质
PML 2 允许您选择不同的材质, 比如云母(Mica, 仅限于 Windows 11)、亚克力(Acrylic)、透明(Transparent)和无(None)。选择不同的材质可以改变 PML 2 的外观和感觉。
背景 (已迁移至下方的"自定义"选项中)
您可以选择一个背景图片来个性化您的 PML 2 界面。您可以从本机图片中选择一个图片作为背景, 也可以选择不使用背景。
背景设置
在这里您可以设置背景图片的拉伸模式。PML 2 提供了多种拉伸模式供您选择,包括但不限于:
- 均匀: 拉伸图片以适应背景区域,保持图片的宽高比,可能会导致背景区域有空白。
- 填充: 拉伸图片以填充背景区域, 但可能导致图片变形。
- 均匀填充: 拉伸图片以适应背景区域,保持图片的宽高比。
- 无: 不拉伸图片,图片可能会超出背景区域。
自定义
在这里,您可以自定义 PML 2 的其他设置。
背景
您可以在这里选择一个背景图片来个性化您的 PML 2 界面。近期使用的背景图片将会显示在这里, 方便您快速切换背景图片。
背景不透明度
您可以在这里调整背景图片的不透明度。调整背景图片的不透明度可以帮助您获得更好的视觉效果, 使界面元素更容易辨认。
背景填充模式 (WIP)
在这里,您可以选择背景图片的填充模式。您可以选择仅填充主窗口还是包括标题栏。
主题色
在这里,您可以选择 PML 2 的主题色。您目前可以仅选择自定义主题色。若您想要还原默认主题色, 请点击"还原"按钮。
自定义主页
在这里您可以选择显示或隐藏主页上的某些控件。
主页布局 (26.4)
在这里您可以切换主页布局: 经典布局 (默认) 或精简布局。切换后立即生效, 无需重启; 两种布局的差异见下文「主页」章节。
启动设置
在这里,您可以配置 PML 2 的启动设置。
开机自启
在这里,您可以选择是否开机自启 PML 2。
软件启动时自动启动某些隧道
在这里,您可以选择是否在软件启动时自动启动某些隧道。
关闭时最小化到系统托盘, 而不是直接关闭
在这里,您可以选择是否在软件关闭时最小化到系统托盘, 而不是直接关闭。启用此选项可以使软件运行在后台, 方便您快速重新打开软件。后台运行时, 隧道将不会断连。
隧道设置
在这里,您可以配置 PML 2 的隧道设置。
强制下线隧道后立即启用隧道
幻缘映射官网强制下线隧道时会同时禁用隧道,我们可以在强制下线隧道时再启用隧道,避免您不知道隧道被强制下线后会被禁用。
“隧道监控”栏 BETA
“隧道监控”是我们推出的一项新功能,可以监视启动隧道的出入流量信息。
下载设置
在这里, 您可以配置 PML 2 的下载选项。
启用多线程下载
启用多线程下载可以提高下载速度。
多线程下载线程数
设置多线程下载的线程数。线程数过多可能会导致下载不稳定, 请根据您的网络状况和设备性能进行调整。
ME Frp 客户端下载源
设置ME Frp 客户端的下载源, 以获得更快的下载速度。我们提供了多个下载源供您选择, 包括但不限于:
- 官方下载源: 直接从官方服务器下载。
- TPCA 下载源: 从 TPCA 服务器下载。
默认情况下, PML 2 使用 TPCA 下载源。若出现无法下载客户端的错误, 请尝试使用官方下载源,这通常能解决 98%的下载问题。
账户设置
在这里,您可以配置 PML 2 的账户设置。
登录过期天数
在这里,您可以选择登录过期天数。登录过期天数是指登录后多少天内未使用软件将导致软件自动退出登录。
验证方式
在这里,您可以选择验证方式。验证方式指软件登录时使用的人机验证方式。我们提供了两种验证方式, 您可以根据自己的需要选择:
- 无感验证: 推荐。无需进行任何人机验证, 登录时将自动完成人机验证。
- 浏览器验证: 需要在浏览器中进行人机验证, 验证完成后您需要手动粘贴验证结果并完成登录。
默认情况下, PML 2 使用无感验证。若您在登录时遇到人机验证失败的错误, 请尝试切换到浏览器验证。
原本浏览器验证是为了解决 Arm 设备的性能问题, 但我们发现无感验证在 Arm 设备上也能正常工作, 因此我们将无感验证设置为默认验证方式。
其他设置
不显示成功的请求响应
不只有一个用户向我们反映成功的请求响应会干扰屏幕的阅读, 因此我们提供了这个选项来隐藏成功的请求响应, 以便您更专注于查看屏幕。
更新设置
更新设置可以在软件左侧栏“ 更新”中找到。
在这里,您可以配置 PML 2 的更新设置。
更新模式
在这里,您可以选择更新模式。更新模式指软件更新时使用的方式。我们提供了三种更新模式, 您可以根据自己的需要选择:
- 自动检查更新并安装: 推荐。软件将自动检查更新并安装。
- 自动检查更新并下载: 软件将自动检查更新并下载最新的安装包, 但不会安装。
- 手动检查更新: 您需要手动检查更新并安装。
保留配置
在这里,您可以选择是否保留配置。保留配置是指软件更新时是否保留您的配置。
更新渠道
控制应用的更新目标版本。版本的发行节奏和稳定程度因更新通道而异,部分通道可能包含不稳定的功能,请谨慎使用。 目前我们提供以下更新通道:
- 稳定: 接收应用稳定版的更新,包含较新且稳定的特性和改进。
- 发布预览通道: 提前预览下一个版本中应用的功能,包含较新的特性和改进,可能存在少量缺陷。
隧道管理
节点延迟与连通性
隧道管理页的每张隧道卡片会显示其所在节点的连通状态。点击顶部工具栏的「刷新测速」可批量探测当前列表中所有隧道所在节点的延迟 (TCP 连通性, 探测 节点地址:隧道远程端口)。
- 探测并发受控 (最多 6 路同时进行), 不阻塞界面; 探测过程中可点「取消测速」中止。
- 状态含义:
| 显示 | 含义 |
|---|---|
123 ms | 节点可连通, 数值为本次 TCP 握手延迟 |
| 探测中 | 正在对该隧道所在节点发起探测 |
| 超时 | 4 秒内未收到节点响应 (节点过载、网络波动或端口不可达) |
| 失败 | 连接被拒绝、域名无法解析或网络不可用 |
| 不可探测 | 该隧道缺少节点地址信息或远程端口无效, 跳过探测 |
- 探测目标与隧道卡片上显示的访问地址 (
节点地址:端口) 一致, 反映的是该隧道实际可用性。
创建隧道
创建页顶部有三个页签 (引导版 / 专家版 / 嘉豪版), 底部命令栏提供「刷新」「返回」「下一步」。
创建模式 (引导版 / 专家版 / 嘉豪版)
| 模式 | 流程 | 适合场景 |
|---|---|---|
| 引导版 | 选模板 → 选节点 → 填表提交 (向导式, 自动按模板预填) | 不确定填什么、或只想快速映射常见服务 |
| 专家版 | 自选节点 (可搜索/筛选) → 完整创建表单 | 需要逐项自定义参数 |
| 嘉豪版 | 在地图上挑区域 (中国/世界两个分页), 按区域筛选候选节点 | 想按地理位置就近选节点 |
引导版向导
- 选模板: 页面标题为「创建隧道向导」, 列表给出可用模板 (图标 + 名称 + 描述)。模板由
create-proxy-template类型插件声明 (内置模板开箱可用, 也可由第三方插件追加); 若没有任何模板, 会提示「暂无可用隧道模板。请先安装 create-proxy-template 类型插件, 或到「插件」页检查其是否启用。」。 - 选节点: 按模板声明的节点要求筛选出候选节点列表, 由您点选 (与专家版的选中态互不影响)。筛选规则: 在线 + 未过载 + 支持模板要求的全部协议 (模板声明了带宽下限时还需满足), 无候选时放宽为「在线 + 支持备用协议」; 排序优先「允许大流量」、再按负载从低到高。无候选时提示「未找到满足条件的节点, 请手动选择」。
- 填表并提交: 表单按模板预填代理名 (支持
{name}/{nodeId}占位)、本地地址 (未声明时为127.0.0.1)、本地端口与远程端口 (模板写auto时自动申请一个空闲远程端口); 仍是原有字段校验, 可继续微调。 - 完成: 提示「成功创建隧道」; 若模板声明了额外隧道 (如远程桌面的 TCP + UDP 互补隧道), 会自动补建翻转协议的那一条, 并提示「成功创建同名 UDP/TCP 隧道」。
引导版的「刷新」只重新加载模板条目 (候选节点在下次进入选节点步骤时按当前模板重新筛选)。
本地地址预填
创建隧道表单的「本地地址」默认预填 127.0.0.1 (本机回环地址, 覆盖绝大多数本地服务场景)。该默认值可在 Config/Settings.json 的 CreateProxyDefaults.LocalAddress 中修改, 重启后生效。
常用端口快捷项
「本地端口」输入框旁提供常用端口快捷按钮: 80 (HTTP)、443 (HTTPS)、22 (SSH)、25565 (Minecraft Java 版)。点击后自动填入本地端口, 可在此基础上手动微调。
模板 (套用 / 存为 / 删除)
创建页底部「模板」区域用于保存常用隧道参数, 避免重复填写:
- 存为模板: 在「存为当前为模板」输入框填写模板名称, 点击「存为当前为模板」按钮, 即可将当前表单的本地地址、本地端口、协议类型、远程端口 (TCP/UDP)、加密/压缩开关保存为模板。
- 套用模板: 在「套用模板」下拉框中选择一个已保存的模板, 点击「套用模板」按钮, 模板中的参数会自动填入表单 (未保存的参数保持当前值)。套用后仍可继续编辑, 并走原有的字段校验。
- 删除模板: 选中模板后点击「删除模板」按钮即可移除。
模板持久化在 Config/Settings.json 的 ProxyTemplates 中, 重启应用后仍然保留; 同名模板保存时会覆盖旧值。
隧道状态与失败原因
隧道管理页的每张隧道卡片会显示当前运行状态徽标 (颜色 + 文案), 随启动/停止/运行实时更新:
| 状态 | 颜色 | 含义 |
|---|---|---|
| 启动中 | 蓝 | 正在拉起 mefrpc 进程并等待服务端确认 |
| 运行中 | 绿 | mefrpc 已启动且服务端确认在线 |
| 重连中 | 橙 | 已启动但服务端暂未确认在线 (允许短暂延迟) |
| 已停止 | 深灰 | 已手动停止 |
| 失败 | 红 | 启动失败或运行异常退出, 卡片同时显示失败原因 |
| (无徽标) | — | 空闲, 尚未启动 |
失败原因与复制
启动失败时 (认证失败、端口占用、节点不可达、进程崩溃等), 隧道卡片会以红色显示映射后的失败原因 (可读文案而非原始日志), 并出现「复制错误信息」按钮:
- 点击「复制错误信息」会把 应用版本 + mefrpc 版本 + 失败原因摘要 复制到剪贴板, 便于在反馈/工单中直接粘贴。
- 若启动后 30 秒内始终无法得到服务端在线确认, 将判定为「节点不可达」(超时)。
- 状态为「失败」时, 「停止」操作会立即将状态置回「已停止」。
各类失败的具体排查路径见 故障排查指南。
访问地址二维码 (26.3.1)
隧道管理页的隧道卡片上, 「复制访问地址」是一个分段按钮 (SplitButton): 主按钮直接复制地址, 下拉菜单里有「生成访问二维码」。
二维码入口仅在可建站 (HTTP/HTTPS) 隧道上提供; 其他协议的隧道只显示普通复制按钮。
点击后先弹出确认框「二维码生成成功。是否立即查看?」, 可选:
- 查看: 打开二维码窗口;
- 复制到剪贴板: 单域名直接复制; 多域名时先弹出「请选择要复制二维码的域名」, 复制出的二维码为标准黑码白底;
- 关闭: 不改动剪贴板。
二维码窗口
- 多域名轮播: 一个隧道有多个访问域名时, 每个域名一张二维码, 用左右按钮、圆点指示器或
←→方向键切换; 首尾不循环 (到头时按钮置灰), 序号显示为「当前 / 总数」; 不响应鼠标滚轮 (避免调设置时误切换)。只有一个域名时不显示任何切换控件。 - 自定义设置 (作用域为当前显示的二维码, 切换域名后仍保留): 大小、图标 (选择本地图片)、图标大小、前景色 (默认跟随主题强调色)、背景色。
- 导出 PNG 图片: 把当前二维码保存为图片 (成功/失败均有提示)。
- 复制到剪贴板: 复制当前显示的二维码位图。
二维码内容为可扫的访问地址: HTTP 隧道为 http://域名, HTTPS 隧道为 https://域名。
更新
检查与下载
「更新」页展示当前版本、云端最新版本与更新日志:
- 检查更新: 点击「检查更新」获取最新版本信息; 有新版时显示版本号与更新日志, 并出现「下载并安装」按钮。
- 下载更新: 点击「下载并安装」按系统下载对应安装包 (Windows 为 exe 安装程序, macOS 为 dmg, Linux 为 deb), 进度条与实时速度可见; 下载完成后按「更新模式」设置自动安装或打开所在目录。
失败与重试
更新过程的失败不会静默发生, 界面会给出明确提示与下一步:
| 场景 | 界面表现 | 下一步 |
|---|---|---|
| 获取更新信息失败 | 状态区显示「获取更新失败」, 悬停可见原因提示 | 检查网络后再次点击「检查更新」 |
| 下载失败 (网络/源不可用) | 状态区显示失败原因, 出现「重试下载」按钮 | 点击「重试下载」; 若持续失败, 见下方「下载源」 |
| 下载文件校验失败 | 提示文件可能损坏, 出现「重试下载」按钮 | 点击「重试下载」重新下载 |
下载源
「设置」页可切换下载源 (DownloadSource, 默认 TPCA):
- TPCA: 默认源, 覆盖应用更新包与 mefrpc 客户端的下载。
- 官方: 备用源; 当默认源不可用时 (下载持续失败、提示切换下载源), 切到「官方」后重试。
当前应用更新包仅提供默认源 (无自动备源); 下载失败时会提示切换下载源后重试。mefrpc 客户端下载已内置双源与重试。
插件
插件页与表单式编辑器 (26.3.1)
「插件」页包含三个 Tab:
- 插件列表: 本地已安装插件 (启/停用、卸载), 顶部提供「新建插件」「编辑」入口。
- 在线插件: 从官方仓库浏览、下载安装 (需登录)。
- 执行日志: 实时展示插件触发/动作执行的增量日志 (内存上限 200 条), 状态含事件命中 / 条件不满足跳过 / 动作成功 / 失败; 顶部「清空」按钮可清空列表。
「新建插件 / 编辑」打开表单式编辑器: 无需手写 YAML, 通过下拉与表单填写插件 ID、名称、事件 (triggers.on)、条件表达式与动作参数; 顶部可预览生成的 YAML 并实时校验 (非法保存会给出具体错误)。编辑器下拉选项 (事件/动作) 与运行时引擎同源, 保证「能写进去的就能运行」。
插件文件
插件位于 Config/Plugins/*.yaml, 支持热重载 (修改后 1 秒内自动生效)。事件与条件表达式的完整清单见插件系统埋点说明, 运算符见插件系统运算符说明, 插件系统概况见插件开发综述。
主页 (26.4)
主页支持两种布局, 可在「设置 → 外观 → 自定义主页 → 主页布局」切换, 切换后立即生效, 无需重启。
精简布局
只保留三块核心信息:
- 账户栏: 按时间段的问候语 + 剩余流量 + 运行中隧道数; 未登录时显示「去登录」, 已登录可一键进入用户中心。右侧为收件箱按钮, 有新通知时显示红点与新内容条数。
- 我的隧道: 直接列出隧道行 (失败优先 → 运行中 → 按名称, 最多 8 条), 每行显示状态点、类型、节点、访问地址, 可一键启动/停止与复制访问地址; 失败行额外显示失败原因, 标题行提供运行/失败计数、「刷新」(仅重拉隧道数据)、「管理」与可用更新入口 (有更新时才出现), 无隧道时引导前往创建页。
- 快速创建 + 为你推荐: 按
HTTP/HTTPS/TCP/UDP一键跳到创建页并预选协议; 推荐区最多 5 条, 每条含标题 + 可解释原因 + 一键动作, 另有「暂时忽略」按钮。
推荐规则按优先级生成 (规则引擎, 非 AI):
| 优先级 | 触发条件 | 推荐动作 |
|---|---|---|
| 1 | 存在启动失败的隧道 (24 小时内) | 前往隧道管理页处理 |
| 2 | 近期启动过的隧道 (最多 3 条, 按最后启动时间倒序; 账号封禁或流量超限时不出现) | 直接启动该隧道 |
| 3 | 账户流量已超限 | 前往用户中心查看 |
| 4 | 剩余流量低于 1 GB | 前往用户中心查看 |
| 5 | 有隧道但当前都没有运行 | 前往隧道管理页启动 |
| 6 | 尚无隧道 | 前往创建隧道页 |
| 7 | 检测到可用更新 | 前往更新页 |
| 8 | 兜底 (以上不足 5 条时补齐) | 节点监控 / 打开文档 |
「启动最近使用过的隧道」
推荐区会列出您最近启动过的隧道, 按最后一次启动时间倒序排列, 每条都可一键重新启动, 无需再进管理页查找。
- 数据来源: 服务器记录的隧道最后启动时间, 与本地启动记录取较新者 —— 因此刚启动过的隧道会立即出现在推荐里, 不必等服务器回传; 换设备登录后也能凭服务器记录恢复该列表。
- 时间显示: 原因文案会给出相对时间, 如「刚刚」「23 分钟前」「3 小时前」「2 天前」。
- 不展示的情况: 该隧道正在运行 (无需重复启动)、已被禁用或封禁、账号被禁用或流量超限、或从未启动过。
- 隧道已删除: 点击后会提示「该隧道已不存在」, 并自动从推荐中移除。
「暂时忽略」记录保存在 Cache/home-recommend.json, 不写入用户配置; 同一条被忽略后不再出现。
经典布局 (默认)
保留 26.3 的完整主页: 平台统计、用户信息面板、系统/软件公告, 由「自定义主页」下各显示开关控制。精简布局下这些开关不生效 (界面中会置灰并给出说明), 且收件箱按钮仅在精简布局中提供 (经典布局下公告仍以「系统公告 / 软件公告」面板直接展示)。
收件箱 (26.4)
精简主页账户栏右侧的收件箱按钮汇集两类通知:
| 分类 | 内容来源 | 列表形态 |
|---|---|---|
| 系统通知 | 服务端弹窗公告 (auth/popupNotice 的 markdown 全文) | 单条卡片: 纯文本摘要 (最多 3 行) +「查看详情」(markdown 全文渲染) |
| 软件公告 | RYCB 公告接口 (notice) | 条目列表: 标题 / 日期 / 类型, 每条带「查看详情」, 复用于经典主页同一公告详情 |
- 新内容提示: 按钮上的红点数字 = 新系统通知 + 新软件公告; 判定方式是本地快照差集 (快照落
Cache/inbox-notice.json, 不写入用户配置)——只有本次新出现的条目才计为「新」, 公告被撤回后也会随之消失。 - 已读时机: 快照只在真正打开收件箱后写回 (打开即视为已读), 因此未查看的新通知会持续以红点提示, 不会被静默标记为已读。
- 数据加载: 收件箱不单独发起网络请求, 复用主页加载结果与统一的 5 分钟缓存 (见下文「数据缓存策略」)。
- 空态: 无内容时显示「暂无通知」; 纯图片公告没有可提取文字时会给出提示文案, 而不是空白卡片。
更新内容提示 (26.4)
应用升级后首次启动会弹出「本次更新内容」窗口, 展示当前版本号、代号与日期; 确认后不再重复弹出, 同一版本不会二次打扰 (版本未变化时不触发)。
窗口顶部有两个来源页签:
| 页签 | 内容来源 |
|---|---|
| 博客更新 | 官方博客的版本说明 (blog.pml2.rycb.tech/changelog/{版本}.md, Markdown 渲染) |
| 更新日志 (API) | 服务端更新接口 (changelog/latest) 的「版本 + 代号 + 日期 + 摘要 + 变更条目」 |
- 变更条目、文案均由服务端/博客下发, 因此可随时更新说明而无需重新发版。
- 服务端不可用时该页签退化为「暂时无法获取更新说明, 可稍后在更新页查看。」, 不影响启动。
- 按钮: 「前往更新页」 (关闭窗口并跳转更新页查看完整历史变更)、「我知道了」 (关闭)。
证书助手 (26.4)
「证书助手」用于为您自有域名申请 SSL 证书, 供创建 HTTPS 隧道时使用。入口: 设置 → 隧道设置 → 证书助手; 同组的 设置 → 隧道设置 → DNS 账户 用于保存 DNS 服务商凭据 (供一键自动验证使用)。
该功能与幻缘映射 ME Frp 的证书服务无关; 域名、ACME 邮箱、证书与私钥、DNS 凭据均仅在本机处理。
验证方式
窗口中的「验证方式」决定 TXT 记录由谁添加:
| 验证方式 | 说明 | 需要准备 |
|---|---|---|
| DNS 账户 (一键自动) | 由应用调用所选 DNS 服务商的 API 自动添加并清理 TXT 记录, 无需手改解析 | 先在「DNS 账户」中保存一个账户 |
| 手动 DNS (自行添加 TXT) | 应用展示 lego 生成的记录主机与记录值, 您到 DNS 服务商手动添加后点「我已添加」 | 无 (需能访问该域名的 DNS 控制台) |
- 默认选中「DNS 账户 (一键自动)」; 切到「手动 DNS」后, 「DNS 账户」下拉与「管理 DNS 账户」按钮会隐藏, 改走手动添加 TXT 的流程。
- 环境默认选中 Staging (测试); 切到 Production 时会给出限速提醒, 并在点「开始申请」时二次确认。
- 传播等待上限与「跳过传播检查」在「高级选项」中 (见下文)。
DNS 账户模式下未配置账户时会提示「暂无可用账户, 请先到「DNS 账户」添加」, 可点「管理 DNS 账户」直接添加, 或改用「手动 DNS」。
DNS 账户
保存服务商凭据后即可一键自动申请:
- 服务商: 首批支持 Cloudflare、阿里云 DNS、DNSPod; 不在列表中的服务商可通过「提交 DNS 服务商」反馈。
- 账户名称: 自定义备注名 (如「CF-主域名」), 用于在证书助手中区分多个账户。
- 凭据: 按服务商显示对应字段 (Cloudflare 为
API Token; 阿里云为AccessKey ID/AccessKey Secret; DNSPod 为SecretId/SecretKey), 标记为「可选」的字段可留空; 界面会给出最小权限建议并可点击「查看如何创建 Token」。 - 保存位置: 凭据加密保存于本机, 不会上传, 也不会出现在日志或崩溃报告中 (日志中的 Token 与密钥会自动脱敏)。
- 删除账户: 删除后已签发的证书仍可继续使用, 但无法再用该账户申请。
申请流程
- 选择环境: 默认 Staging (测试)——签发的证书不被浏览器信任, 仅用于验证流程; 确认无误后再切换 Production (有签发频率限制, 会二次确认)。
- 填写域名与邮箱: 主域名 (如
example.com) + ACME 账户邮箱 (默认填入当前账号邮箱); 「附加域名 (可选)」多个用逗号分隔 (如www.example.com)。 - 选择验证方式: 见上文「验证方式」; 选择「DNS 账户」时还需指定具体账户。
- 点「开始申请」: 首次使用会自动按当前平台下载 lego (约 20 MB) 并校验官方 SHA-256; 失败可重试 (应用会依次尝试主源与备用镜像)。
- 完成域名验证:
- DNS 账户: 自动下发验证记录, 界面依次显示「正在通过 DNS API 下发验证记录…」→「正在等待 DNS 传播与 CA 校验…」→「正在签发并整理证书文件…」→「正在清理验证记录…」。
- 手动 DNS: 窗口显示记录主机 (
_acme-challenge.你的域名) 与记录值, 各配「复制」按钮; 到您的 DNS 服务商添加这条 TXT 记录并等待生效 (通常几分钟), 再点「我已添加」; 此后应用最长等待 5 分钟 (DNS 传播与 CA 校验)。
- 完成: 窗口显示证书目录路径; 点击「打开证书目录」可查看产物, 也可用「复制」复制证书与密钥路径, 或用「用于隧道」查看在隧道中使用该证书的提示。
高级选项与运行日志
- 等待上限 (秒): 等待 DNS 传播与 CA 校验的最长时长, 默认 300, 可调范围 60–900; 网络较慢或解析生效慢时可适当调大。该值同时作用于 lego 的命令行参数与厂商环境变量, 不会出现两处取值不一致。
- 跳过 DNS 传播检查 (不推荐): 默认关闭。开启后会改为固定等待 30 秒, 可能导致 CA 校验失败并消耗签发配额, 仅在网络环境特殊时使用。
- 运行日志: 申请过程中窗口实时显示 lego 输出, 日志中的 Token 与密钥已自动脱敏, 可用于自助排查 (折叠项「运行日志」)。
本地证书 (查看与删除)
窗口中的「本地证书」折叠区列出 Config/Certificates/ 下已签发的证书 (域名、附加域名、证书链路径; 临期会标注「即将到期」), 每行可删除:
- 删除会移除整个证书目录 (含私钥); 正在使用该证书的隧道不受影响, 但之后无法再从「从证书助手选择」中选到它;
- 删除需二次确认; 申请成功后列表会自动刷新。
产物与用途
| 文件 | 说明 | 用途 |
|---|---|---|
fullchain.pem | 证书链 (已含 CA) | 创建 HTTPS 隧道时的「证书路径」 |
privkey.pem | 私钥 | 创建 HTTPS 隧道时的「密钥路径」 |
meta.json | 域名、到期时间、Staging/Production、签发时间 | 供应用显示临期提醒 |
存放位置: Config/Certificates/{域名}/。
在 HTTPS 隧道中使用
创建/编辑 HTTPS 隧道时, 「证书路径」一行右侧有 「从证书助手选择」 按钮:
- 选择一个已签发的证书, 会自动填入「证书路径」与「密钥路径」;
- 选择 Staging 证书会提示「Staging (测试)」, 距到期不足 30 天会提示「即将到期 (N d)」, 避免误用;
- 本地暂无证书时会提示「暂无本地证书」, 并可直接打开证书目录。
常见失败原因
| 现象 | 原因与处理 |
|---|---|
| lego 准备失败 | 无法下载或校验 lego; 检查网络/代理后重试, 或改用「手动 DNS」模式 |
| DNS 账户不可用 | 账户已被删除或凭据不完整; 重新选择, 或到「DNS 账户」编辑该账户 |
| DNS 服务商认证失败 | Token / 密钥无效或已过期; 重新生成并更新账户 |
| DNS 服务商拒绝访问 | Token 权限不足; 按提示授予最小 DNS 编辑权限 |
| 未找到该域名的解析区域 | 域名未托管在所选账户下; 确认后换用正确的 DNS 账户 |
| CA 域名校验失败 | 挑战记录未被正确解析; 确认域名解析服务商与所选账户一致 |
| 等待 DNS 传播超时 | 解析尚未生效; 可在「高级选项 → 等待上限」调大 (默认 300 秒, 最大 900 秒) 后重试 |
| CA 限流 | 短时间申请次数过多; 稍后再试, 或先用 Staging 验证流程 |
| 网络异常 | 无法连接 CA 或 DNS 服务商 API; 检查网络、代理或防火墙设置 |
| 域名格式不正确 | 检查域名拼写 (不要带 https://、路径或空格) 后重试 |
| 证书已签发但文件整理失败 | 查看运行日志确认 Config/Certificates/ 的目录权限 |
| 停留在「请添加 TXT 记录后继续」 | 仅手动 DNS 模式的正常等待状态, 不会自动超时; 添加记录后点「我已添加」 |
| 已取消证书申请 | 关闭窗口即取消, 应用会终止该 lego 进程, 不留残余 |
暂不支持
- 证书自动续期与批量签发、证书吊销管理;
- 首批三家 (Cloudflare / 阿里云 DNS / DNSPod) 之外的 DNS 服务商 (可通过「提交 DNS 服务商」反馈以便后续适配)。
数据缓存策略 (26.4)
从 26.4 起, 应用对所有页面的 API 数据采用统一的 5 分钟缓存, 减少重复请求、加快页面切换。
规则
| 项目 | 说明 |
|---|---|
| 有效期 | 5 分钟, 自上次成功请求时刻起算 |
| 计算方式 | 不滑动续期——在 5 分钟内反复进出页面不会推迟刷新时刻 |
| 命中行为 | 5 分钟内再次访问同一数据 → 直接使用缓存, 不调用 API |
| 过期行为 | 距上次 API 请求超过 5 分钟后访问 → 重新请求 API 并更新缓存 |
| 失败处理 | 只有成功 (code == 200) 的结果才进入缓存; 请求失败不会被缓存, 下次会重新请求 |
什么时候会立即重新请求
以下操作会跳过缓存, 始终拉取最新数据, 确保您看到的与服务器一致:
- 点击各页面的**「刷新」按钮**;
- 精简主页的**「刷新」** (整页数据) 与**「我的隧道 → 刷新」** (仅重拉隧道数据);
- 顶栏菜单的**「刷新隧道列表」**;
- 更新页的**「检查更新」**;
- 流量图表的**「重新加载」**;
- 创建隧道页的**「刷新」** (节点列表与状态);
- 写操作之后: 新建 / 编辑 / 删除隧道、启用 / 禁用隧道、强制下线、签到、添加 / 删除备案域名。
不进入缓存的数据
一次性动作与敏感数据仍为实时请求: 快速启动 token、隧道启动配置、空闲端口申请、人机校验; 此外收件箱的「新内容」判定也不依赖缓存, 而是用本地快照差集 (见上文「收件箱」)。
账号切换
缓存按登录账号隔离: 切换账号不会看到上一个账号的数据; 登录与退出登录时会整体清空缓存。
手动清理
关于 → 工具箱 → 清理缓存 在清理磁盘文件的同时, 也会清空内存中的 API 缓存。
启动画面 (26.3.1)
应用启动时先显示独立 Splash 窗口 (品牌图 + 主题风格), 底部进度条与文案随启动阶段实时更新 (初始化主题 → 主窗口创建 → 托盘/插件加载等); 进度通过独立命名管道 (tech.rycb.pml2.splash.{pid}) 从主程序推送, 与单实例激活管道严格分离, Splash 进程在进主窗后自动退出。
「设置 → 外观 → 启动画面」可配置 (26.3.1 新增):
| 选项 | 说明 |
|---|---|
| 显示开关 | 关闭后启动不再显示 Splash 窗口, 直接进入主界面 |
| 启动画面样式 | 默认 / 深色 / 简约 三套内置背景 |
| 自定义背景图 | 选择本地图片作为背景 (优先于内置样式), 支持 png/jpg/bmp/gif/webp |
以上更改均在下一次启动时生效。
桌面集成
macOS 原生菜单
macOS 上应用菜单栏提供原生菜单 (26.3.1 重组为六个菜单, 命令与主界面/托盘完全同源):
- PML 2 (应用菜单): 关于、设置 (
⌘,)、退出 (⌘Q)。 - 文件: 打开日志目录 (快速定位
Logs/目录, 方便排障)。 - 隧道: 管理隧道 (
⌘M)、创建隧道 (⌘D)、停止全部隧道、刷新隧道列表。 - 节点: 节点监控、刷新节点 (重新进入监控页即自动重新拉取数据)。
- 查看: 主窗口 (显示并激活主界面)、流量悬浮窗 (开关)。
- 帮助: 官方文档、检查更新。
关窗与退出的区别: macOS 点红灯 (关窗) 默认等于退出应用; 若在「设置」中开启「关闭时最小化到托盘」(HideInsteadOfClose), 关窗后应用保留在托盘/菜单栏, 退出请走菜单或 ⌘Q。
系统托盘
Windows / Linux / macOS 均提供系统托盘图标, 右键菜单包含:
- 打开主界面: 显示并激活主窗口 (未登录时提示先登录)。
- 打开终端: 切换到终端页。
- 全部停止隧道: 向所有终端发送
Ctrl+C, 停止全部隧道。 - 退出: 先停止全部隧道再退出应用。
托盘操作与主界面状态实时一致 (隧道在终端页停止/启动, 托盘菜单不持有独立状态)。
流量悬浮窗
在「设置 → 悬浮窗」中开启「流量悬浮窗」(PMSettings.Enabled) 后, 屏幕角落显示半透明流量监控条 (默认右上角):
- 隧道状态: 列出当前运行中的隧道 (彩色圆点 + 名称), 与主界面启停实时同步——启动显示「启动中」(蓝)、服务端确认在线后变「运行中」(绿)、失败显示「失败」(红, 悬停可见失败原因); 隧道停止 (管理页停止按钮 / 终端 Ctrl+C / 全部停止) 后对应项自动移除, 与关闭终端标签页行为一致。
- 实时流量: 显示上传/下载瞬时速度; 下方折线图绘制最近 1 分钟 (30 个采样点) 的速率曲线 (绿=下载、蓝=上传)。
- 窗口穿透 (默认关闭): 开启后鼠标点击可穿透悬浮窗, 不影响操作其下方的窗口; 穿透模式下鼠标移入悬浮窗时自动临时取消穿透, 便于操作菜单。
点击监控条上的 ⋯ 菜单:
- 刷新流量: 重新获取网络接口并重置流量统计基准 (曲线同步清空重绘)。
- 设置: 打开悬浮窗设置 (窗口位置、窗口穿透、显示流量图表、不透明度, 均实时生效并持久化于
PMSettings)。 - 关闭悬浮窗: 只关闭悬浮窗, 不退出应用 (应用退出时悬浮窗自动销毁, 无残留置顶窗)。
悬浮窗仅展示流量与提供上述快捷操作, 不含完整隧道管理 (请使用主界面)。
开机自启与恢复隧道
「设置」页提供两个独立开关, 默认均关闭:
| 开关 | 配置键 | 说明 | 支持平台 |
|---|---|---|---|
| 开机自启动 | AutoStartup | 登录系统时自动启动 PML 2 | Windows (注册表 Run 键)、macOS (LaunchAgent)、Linux (~/.config/autostart) |
| 恢复上次隧道 | AutoLaunch | 启动后自动拉起 AutoLaunchProxies 中配置的隧道 (在自启动队列中勾选) | 全平台 |
- 只有显式开启「恢复上次隧道」并配置了自启动队列, 启动时才会自动拉隧道。
- 自启/恢复失败会写入日志, 并在界面给出提示, 不会静默失败。
- 风险提示: 开启自启后应用会在登录时自动运行; 恢复隧道会消耗本地端口与流量, 请按需配置。