HTTPS 管理插件与协议引擎均为可选包。基础主包不强制依赖管理插件,基础组件更新也不将其重新安装;管理插件安装后通过通用插件管理显式加载;全功能安装在首次安装管理插件时执行同一加载入口,转发总开关仍默认关闭。卸载管理插件前按通用卸载流程排空并卸载引擎,保留私有配置和 CA,基础 gateway 能独立运行。
HTTPS 兼容是原生后端的可选增强,不改变应用 URL、业务鉴权或原有出口策略。 总开关默认关闭,适合需要协议兼容时按需开启;已完成设备信任与目标配置后,在插件 详情页切换总开关即可启停。关闭保留规则、CA 和信任,不要求重新接入;更新不覆盖用户 已保存的开关选择。关闭后的新连接走原路径,已有请求按下述排空合同处理。 设备一次性信任私有 CA,代理按需签发目标证书;CA 属于设备私有状态,不能随普通 更新重新生成。私钥不进入 Git、UI 或普通诊断导出,公开证书可通过认证 RPC 下载。 引擎启动时验证 CA 并续签即将到期的本地探针证书;运行中每小时检查一次证书有效期, 提前七天撤销新连接接管,排空后仅重载引擎。证书更新不更换 CA,也不重启基础网络服务。
独立配置拥有总开关、接入范围和目标规则。现有 devices 配置项可以表示单台设备或管理员明确授权的共享出口;共享出口覆盖该来源地址背后的全部客户端,不宣称能区分 NAT 后的设备。固定出口无需设备地址发现。接入范围使用稳定 ID、显示名,以及明确 IP
地址或设备地址来源提供的来源摘要与网卡 MAC 绑定;规则拥有 ID、显示名、设备引用、精确域名或域名后缀、目标端口、开关和
h2|bypass 策略。精确匹配优先于后缀,较长后缀优先于较短后缀;同一设备、
端口和匹配目标的重复规则拒绝。规则 API 使用 DNS ASCII 域名;界面用浏览器的
标准 URL 域名处理将国际化域名转换为 A-label 后保存。未登记设备、未知 TLS 域名和未匹配目标不解密。
协议引擎采用精简编译的 HAProxy,由同一进程完成 TLS 预筛选、TLS 终止与
HTTP/1.1 → HTTP/2 转换,不加载 Lua、正则表达式扩展、抓包或内容改写组件。
预筛选按设备、原始目标端口与 SNI 选择规则;已提供 h2、未知域名与未命中连接
保留原始 TLS。内部转换入口只接受私有 Unix socket 的 PROXY v2 元数据,
原始源地址与目标不从 HTTP 业务头读取。双栈 NAT 原始目的地址由引擎的
Linux socket 适配读取;IPv6 与 IPv4 均须经过实际内核重定向验证。
转换保留任意方法、路径、业务头与流式正文,上游证书链与 SNI 主机名均验证。
普通 HTTP 使用 h2;WebSocket 使用独立 HTTP/1.1 上游连接。
HTTP 后端限定启用 abortonclose 与 http-no-delay,使客户端关闭释放上游,
同时避免内部转接引起小包延迟;不以缩短长请求超时替代取消传播。
内部端口与管理 socket 不对 LAN 提供显式代理服务。
业务状态码原样返回,不能用 401、429 等业务响应触发模块故障恢复。
客户端取消必须释放活动请求;失败 POST 不自动重放。
网关接管的准入、epoch 与租约事务由现有 mihomo.interception ucode 服务执行,
高频内核读取与租约事务通过按需加载的受限原生模块执行,不启动 Python。
模块随可选兼容运行包安装,只有现有 gateway 接管服务调用它;准入策略、epoch、
网络锁和故障决定仍属于 gateway。模块只读指定基础对象,只写兼容私有表,
没有独立定时器,不能自主续租。源端口范围通过双栈 socket set/get 验证,
不修改系统临时端口配置。配置、状态、证书编排与恢复由 ucode 管理;
设备包不安装 Python 源码、解释器或 Python 依赖。已签名回退引擎未声明 gateway_io: native 且未安装原生模块时,共享网关保留有界 ucode/CLI 路径;新版声明要求原生模块,加载或调用失败不能转用 CLI 续租。清理与卸载仍可使用有界 CLI 撤销自身许可。Python 旧实现仅留作开发机对照测试。
控制入口、gateway 接管和设备私有配置分别拥有自己的限定写集,共用现有 mutation 锁,不通过全局 disable/compile/enable 应用兼容配置。用户开关与实际接管状态分开。 交互管理动作取得 mutation lock 时最多等待两秒,避免正常健康轮次使启停和信任登记 立即失败;超时仍返回忙碌,不重放已执行的动作。后台健康轮次不等待锁,保持许可自然到期。 关闭先撤销新连接接管,再排空现有连接;进程崩溃时不能恢复原 TCP/SSE 流。 软件包排空向 HAProxy 发出优雅停止信号,关闭空闲持久连接,让活动请求完成; 以原引擎进程退出确认排空,不把停止监听后的健康接口不可达当作排空成功。 三十秒内仍有活动连接时保持旁路并延后替换,不强制终止健康请求。
接管许可使用内核到期机制,最长十秒;健康检查每两秒执行,失联不续期。 目标集合和网关 epoch 不变时,重复续租至少间隔四秒,减少小型设备上的控制开销; 目标变化立即提交,旁路、管理实例替换及任何控制链错误清除续租记录。健康失败仍在 当前健康轮次撤销接管,续租节流不延长已有许可的内核到期时间。 控制器的健康轮次最多复用十秒网关快照,避免与续租重复展开基础规则。 事件循环中的同步命令通过平台有界执行入口收集输出:命令先完成,再读取私有临时文件, 避免异步地址或探针子进程退出的信号打断管道读取。超时、非零退出及输出超限仍拒绝准入; 不重放命令,也不以空输出代替有效状态。临时文件有大小上限并在调用结束后删除。 健康 socket 等待被同类信号打断时继续等待剩余期限,不重新发出请求,也不延长原截止时间。 周期双栈探针复用原生工具的受限会话模式:管理器通过私有 socketpair 请求一轮新连接验证,结果绑定轮次;引擎身份、配置或公开 CA 变化时销毁旧会话。子进程永久降权,沿用管理资源组,无网络管理权限。父子分别执行 1.4 秒截止时间;通道断开、超时或错误后销毁会话并拒绝续租,不接纳上一轮结果。 网关准入实时读取进程状态,并复用归属链存在证据。监听者查询保留独立、限时的 ubus 命令,避免在管理事件循环中引入新的同步总线调用。同一调用中的核心进程身份复用,跨调用不缓存。原生读取核对内核响应序号、完整性和截止时间;对象不存在与读取失败分别处理。租约写入收到提交确认后,以新的请求独立回读实际集合与到期时间,提交缓存不能冒充写后验证。读取失败不能解释为成功旁路。首次建表及移除保留 gateway 的有界 nft 生命周期入口;周期续租和状态读取不展开完整私有表。 该快照不授予接管:每次实际续租仍由网关 owner 重新验证当前配置、选路、进程和 epoch。续租拒绝、控制链错误、管理实例替换或管理锁等待后立即丢弃快照; 未就绪的结果不缓存。续租成功代表 gateway 刚重新验证同一 epoch 的配置、进程、规则及选路;管理进程可以用该成功结果刷新对应预览的验证时间,避免紧接着重复取得相同准入快照。续租失败立即废弃预览,不能由缓存授权续租。管理页面的独立读取始终实时查询。 本地身份已确认的地址增减通过 HAProxy 原生地址 ACL 更新,不重启引擎。 管理器每轮仍核对状态文件的权限和完整字节;字节未变化时复用已解码的事件历史, 只复制本轮可变状态。发布时复用未变化事件的编码,仍原子替换完整状态文件, 不另设持久化 owner 或改变文件格式。外部修改立即使缓存失效;管理读取返回独立副本。 全部地址证据失效时,保留已信任设备的规则结构并清空地址 ACL;未确认流量旁路,其他健康连接不受引擎重启影响。 控制层先同步并回读地址 ACL 与规则开关,再由 gateway 原子更新租约; 移除的地址立即失去解密资格,已有 TLS 连接继续完成。规则结构和证书变化仍先旁路、排空。 单条规则旁路或地址更新不撤销其他规则的健康租约。
每轮读取同事件循环的私有状态接口,并验证 IPv4、IPv6 新建回环连接经过 NAT、
生产监听端口和实际 H1→H2 往返。两栈验证由同一个原生探针会话完成,复用 OpenSSL context 和公开 CA,
禁用 TLS session 恢复;每轮每栈仍新建 TCP/TLS 连接并验证随机挑战,任一失败均不能续租;两栈合计
截止时间为 1.4 秒。独立私有入口探针在新 PID、配置变化及每六十秒
执行;失败立即使该验证失效。会话探针以兼容账户执行,不持有管理权限;独立一次性诊断仅在创建 socket 时使用兼容账户身份。探针使用链接系统 OpenSSL 的小型原生程序,
截止时间为 1.4 秒,业务流量不经过探针;管理循环不保存业务正文。
管理进程确认私有接管许可已清空后,不在每轮重复执行相同清空事务;新的准备、续租尝试或进程重启使该判断失效。清空目标许可不销毁已准备的探针链,只有网关代际变化或健康失败才重新准备;恢复续租仍由 gateway 重新准入。状态页面仍读取实际内核许可。
域名规则不因单条上游请求失败而旁路或锁定。已启用的 HTTP/2 规则由引擎在每条上游 TLS 连接上验证证书与 h2 协商;上游不可用或不支持 h2 时,该请求失败,不自动重放,也不让后续请求绕过转换。
故障恢复后连续健康三十秒才重新接管。唯一例外是已接管的同一引擎 PID、配置版本和
处理链仍健康、网关就绪,但双栈透明链探针瞬时失败:失败当轮立即旁路,随后两栈
连续健康八秒才重新接管。同一透明链故障持续多个管理周期时保留该恢复窗;恢复窗内
再次失败或出现其他故障则恢复三十秒观察。引擎与处理链仍健康的透明探针故障先给探针链
三十秒自行恢复,持续不健康才尝试重启引擎;其他引擎健康故障仍按八秒起重启。
模块自身十分钟内第三次故障暂停自动恢复;
模块只统计实际获得接管租约后再次发生的独立故障,
健康检查就绪但尚无地址或 DNS 候选时不算已接管,失败的进程重启尝试另计。
已接管引擎的退出或 PID 变化算一次独立故障,不能被新进程的启动宽限掩盖。
同一故障中的引擎重启不增加故障次数;持续未恢复时按八秒起、最长六十秒的退避间隔
尝试重启,冷启动宽限仍生效。实际恢复接管后清除重启退避,第三次独立故障才锁定模块。
基础配置操作占用共用 mutation lock 时许可仍自动到期;管理循环明确记录的锁等待
不算插件故障。取得锁后重新验证当前网关、配置与完整处理链,全部通过才能恢复续租。
无锁等待证据的管理停顿仍按故障处理。最近模块故障保留固定原因、健康接口错误分类、
本地探针结果和引擎进程标识,重启尝试与独立故障计数分别呈现。
故障诊断保留探测期间的引擎 CPU 节流和 OOM 计数变化;它们是归因证据,不改变准入阈值。
人工锁定期间只维持旁路,不反复执行完整网关检查和 TLS 探测;人工恢复后重新完整验证。
上游连接与响应错误只作为规则诊断记录,不改变接管许可,不运行独立的目标恢复探测。单个请求的中断不能关闭其他请求使用的域名转换。
客户端 TLS 握手失败保留连接诊断,不计入上游规则故障;其他已信任客户端继续使用
该规则。失败客户端仍收到 TLS 错误,模块不放宽证书校验或重放其连接。
出站连接由内核分配源端口,避免客户端端口与路由器现有套接字冲突;未匹配域名的
TLS 旁路采用同一行为。简单数字 SRC-PORT 规则由 gateway 提取为接管排除端口,
命中这些源端口的客户端连接保持原路径。转发引擎使用 HAProxy 的双栈 source 端口区间,从内核临时端口范围中选择不含
排除端口的连续区间;引擎与有界探测使用每 socket 的 IP_LOCAL_PORT_RANGE 保持相同范围,
让内核统一避开其他后端和已有连接占用的四元组,避免独立端口池冲突。
范围与 gateway epoch 和引擎配置绑定,不修改全局 sysctl 或原有选路规则;无法证明
等价时保持旁路。结构配置改变时先撤销接管,现有连接排空后仅替换该引擎实例。
有效配置明确关闭进程查找(find-process-mode: off)时,非空精确 PROCESS-NAME
规则不参与原路径或转发出站的匹配,因此不阻止准入。进程查找开启、未声明或无法确认
时仍保持旁路,不由兼容插件修改该设置或原有进程规则。
规则开关通过 HAProxy 运行时 map 应用并回读;单个请求失败不重启引擎,也不重新启动整个模块的健康等待窗口。
客户端请求校验失败和连接建立期间的取消只影响该连接,不累计为目标规则故障。
转发故障按规则的后端连接/响应错误计数记录,业务 HTTP 状态不进入该计数;
不保存路径、业务头或正文。诊断不保存 HAProxy 原始错误缓冲区或业务日志。
旁路恢复原有 NetFleet 选路,不等于关闭 NetFleet 或强制直连。用户关闭优先于
自动恢复。代理出站不得再次进入兼容接管,无法证明选路等价时不能启用。
基础路径独立保证 TLS 目标身份:启用 DNS 映射嗅探或强制域名嗅探时,原生网关渲染的
TLS 协议配置使用真实 SNI 覆盖拨号域名,避免共享 IP 的 DNS 反查别名进入上游连接。
这项约束不依赖 HTTPS 插件的安装、开启或规则状态,也不回写用户的 Profile/mixin;
端口、跳过域名及其他嗅探协议保持原配置,配置值与实际运行值仍分别呈现。
原生路由器的服务排除规则只有在实际兼容进程的 UID、GID 和 cgroup 均不匹配时
才不影响准入;身份缺失、未知账户或可能匹配的规则继续旁路。
生产启用要求协议实测、OpenWrt 软件包和 QEMU 故障演练通过;源码或本机协议测试 不能替代目标设备的接管、旁路和应用验收。
opl-netfleet-https-compat 是独立可选包。HAProxy 3.2.21 从固定校验和的源码编译,
仅在插件私有路径安装,保留上游 GPL/LGPL 许可;不替换设备的通用 HAProxy 软件。
限定适配负责 Linux IPv6 原始目的地址、通配源地址的端口绑定和 h2-only 后端的严格 ALPN 准入;
握手未协商 h2 时,在发送业务正文之前失败。控制器直接运行在现有 ucode 插件服务内,
证书由 OpenSSL 工具按需管理,不分发 mitmproxy、cryptography 或完整抓包依赖。
procd 管理进程生命周期,C launcher 只施加资源与身份限制后 exec,不另建 supervisor。
构建入口 scripts/https-compat/build-package.sh 的参数依次为 OpenWrt SDK、APK
签名私钥、输出目录和源码 ref。同目录 Dockerfile 只服务于隔离协议测试。
组件包安装验证与基础 NetFleet qualification 分开,二者都不能替代网络验收。控制插件与运行包的兼容范围由 APK 依赖元数据声明,两者通过通用组件入口更新;满足依赖时可以只更新其中一个,不设置专属更新命令。
浏览器通过通用 plugin_read/plugin_call 的 config-get/config-set/enable/disable/probe/public-ca
动作到达 https-compat.control,macOS 接入工具的 compatibility-* CLI 命令调用同一
controller。配置同时校验插件代码 revision 与私有配置 revision。独立引擎包的
extension.json 声明接口 major;组件状态从安装记录和该声明投影,不启动兼容引擎。
所有 mutation 使用当前 revision;revision 同时绑定配置和信任记录。
probe 的 trust_record、trust_revoke、recover 操作分别记录接入工具证明、撤销
设备接管和人工解除故障锁定。ca 只返回公开 PEM 及 SHA-256,不接受任意文件路径。
私有配置和稳定 CA 位于 /etc/opl-netfleet/compatibility,运行状态与有效规则位于
/var/run/opl-netfleet-compat。插件自身的 procd manager 每两秒执行健康循环;基础
gateway 观察进程只负责核心生命周期,不加载或调用 HTTPS controller。管理动作
只保存意图并唤起插件,不同步等待远端探测。后台 tick 在身份来源、引擎健康、
本地处理链验证期间释放全局 mutation 锁;上游与 DNS 探针异步运行;
重新取得锁后核对配置、信任、状态、有效配置及基础运行身份,变化时丢弃该次结果,
不续租也不覆盖新的用户意图。引擎使用专用 netfleet-compat 用户,配置、信任记录与状态仍由 root 管理;
引擎仅可读取有效规则与本插件 CA,健康 socket 位于独立可写子目录。启动前必须落实
cgroup v2 的内存、CPU 与进程数限制,并设置文件描述符及单文件大小限制;缺少所需
控制器时拒绝启动引擎,接管继续旁路。该约束提供进程资源与文件权限隔离,不是完整
文件系统沙箱。引擎无网络管理权限,回环探针通过专用 socket priority 与实际 UID 匹配。nftables 租约只存在于 inet netfleet_compat,不修改基础 NetFleet 表。
管理循环与引擎使用独立 cgroup:引擎预算为 192 MiB、半核 CPU、32 个进程和 512 个
文件描述符,管理循环为 96 MiB、半核 CPU、16 个进程和 128 个文件描述符。
管理循环及其子进程使用允许 CPU 集合中的同一逻辑 CPU,地址同步以低调度优先级运行;
避免后台子进程在其他 CPU 并发耗尽共享配额,妨碍有期限的网关调用。该限制不改变
HAProxy 或基础代理的 CPU 亲和性。两组都
禁止 swap 和 core dump,单文件上限 8 MiB;运行文件位于 OpenWrt tmpfs,页计入
所属进程组内存限制。引擎不输出业务日志,控制状态与事件使用有界对象保存。
管理循环直接调用同一插件图中的网关受限服务,不启动第二个网关 worker,也不逐次
加载解释器。插件图的共享代码锁随管理进程生命周期释放,网络事务仍逐次验证 mutation
锁。管理进程或任一有界工具退出、卡住时停止续租,十秒内核到期不依赖退出钩子。
DNS 与远端 TLS 验证由事件循环异步调度,最多四个有界原生探针并发;每个结果绑定
目标和出站策略,不阻塞其他规则的健康轮次。DNS 结果十秒刷新,超过二十秒即不能授权
接管;地址来源的 TTL 独立约束客户端地址。管理实例冷启动时,尚未返回的解析不视作解析失败;配置、目标和健康条件未变时保留原有内核许可至其原截止时间,等待结果期间不续租。真实解析失败仍撤销许可。控制或续租失败重置连续健康计时,
基础网关拒绝准入不累计插件故障;管理链失效只在此前实际接管后统计独立故障。
网关快照在引擎进程身份与降权尚未就绪时返回引擎启动中,不能误报为 LAN 访问策略不等价。
新引擎进程在内核记录的启动时间后有六十秒冷启动宽限,期间不接管、不累计启动故障,
也不因正常健康失败窗口提前重启。该进程一旦报告就绪便失去宽限;此后的持续不健康
达到八秒后,在网络就绪且未熔断时调度重启。实际判定时刻受两秒管理循环与探针耗时影响,
不保证先于十秒内核租约到期;撤销接管及租约到期仍独立保障旁路。冷启动宽限到期仍未
就绪时进入既有故障恢复,不能无限显示启动中。
原生 gateway 合同保留 conntrack mark 的 0x01000000 位标识兼容连接归属;它与
Mihomo 的 packet mark 分开。兼容模块在 conntrack 后、TPROXY 前,仅为未确认的
首个 TCP SYN 按有效租约设置该位。原生 LAN TPROXY 跳过这类连接,兼容 NAT 完成
重定向;连接归属不会随租约失效而改变。没有有效租约的新连接不带该位,走原路径。
显式禁用或卸载先撤销兼容租约,立即删除带该私有位的 conntrack 条目,再删除兼容表;
随后停止自身监听器,因此新流量立即回到基础 TProxy,既有兼容流可能中断。包更新保留
优雅排空并在监听器退出后执行相同清理。两条路径都回读过滤结果为空;清理失败就保留
插件资源并报告失败。不会清空共享 conntrack 表,也不触碰 Mihomo 的 packet mark。
兼容表已不存在时仍清理私有 conntrack 条目,不能把表缺失当作退出完成。基础网关的
停止和异常恢复也清理该私有位;增强层清理失败不阻止基础接管退出,但保留失败与
接管登记以便重试,不报告清理成功。重复退出与重新启用不继承上一代的兼容连接归属。
精确域名仅为当前 DNS 解析出的候选 IP 建立许可,解析失败撤销该规则许可,不能
扩为全部目标地址。共享 IP 仍须在 TLS 阶段确认域名;域名后缀规则需要候选端口
范围的 TLS 筛选,因此其接管范围比精确规则大。
接管前读取内核实际的 LAN mangle 链,确认首条规则按上述归属位返回;旧核心、
规则丢失或顺序不匹配时保持旁路,不能仅凭安装版本或服务 ready 状态准入。
停止命令先进入维护旁路。包更新使用有界优雅排空窗口;用户显式禁用、卸载或重启
插件则立即撤销新连接接管,删除兼容表及私有 conntrack 标记,再停止自己的 procd
服务。已有兼容连接可以被中断,但基础 TProxy 的新连接路径必须在清理回读后恢复;
网关健康查询暂时不可用不能阻塞这次所有权交接。清理失败时保留插件资源并返回失败,
不报告一个半生效的停用状态。
管理代码更新可保留正在运行的引擎及连接,仅重启管理进程。恢复必须核对原引擎 PID、新管理进程、健康轮次及网关许可;安装及回退使用同一生命周期。磁盘引擎变更在以后自然重启时生效,不宣称运行映像已热替换。无法满足保留条件时,包更新和软件包钩子最多等待三十秒排空,健康连接未排空时拒绝替换。
管理插件与可选引擎包均使用标准插件 lifecycle.drain/resume 和包钩子。暂停先进入
维护旁路、排空并停止自己的服务,恢复仅重启此前实际运行且配置 revision 未变的实例,
不能推翻用户关闭或运行模式选择。维护不计作故障;暂停与恢复保留模块和规则的故障计数、
人工锁定与最近故障现场。未锁定模块恢复后重新完成三十秒健康观察,锁定只能由明确的
人工恢复操作解除,不能由升级解除。已有维护旁路同样保留;仅标准插件生命周期明确发起的
临时暂停允许自动恢复。直接暂停或旧版未记录恢复意图的暂停保持维护旁路,用户从诊断页
明确恢复后才重新验证接管。APK 忽略钩子失败退出码,因此统一包入口在排空未完成
时保持旧代码。基础网关关闭不调用该排空操作;它独立撤销接管并完成自己的清理。
接管通过网关受限 TCP 服务申请,插件不直接执行 nft。
包钩子继承更新进程的 mutation lock 时,控制器核验 root 祖先进程、同一锁文件
的设备号与 inode,以及内核记录的排他 flock,沿用该锁完成排空;环境变量不能
跳过锁检查,无关进程持锁仍返回忙碌。
安装体积按设备缺少的依赖闭包计算,不能把引擎二进制或压缩包大小当作完整成本。
兼容模块的 QEMU 验证使用 512 MiB 根分区,分别测量引擎、管理组的空闲与负载增量。
LuCI 的 HTTPS 插件以“HTTP/2 转发”单页呈现开关、网站与生效结果,组件列表通过声明的“配置”入口
进入同一页面。页面、样式、状态轮询与动作全部由插件拥有,页面退出时释放轮询和弹窗。
独立保存规则,不调用全局配置应用,首页和全局诊断不加载 HTTPS 资源。React 是参考界面。
页面保留本浏览器的有界只读展示摘要,再次进入先显示上次内容及读取时间,同时刷新。
摘要按设备访问地址、插件资源 revision 隔离,只含规则和设备的显示字段、信任结果及最近
协议状态,不含配置 revision、身份绑定、凭据、证书、连接或事件。摘要不得授权任何写入;
当前读取成功后才启用操作。读取失败保留内容并禁用写入,不把历史状态称为当前运行。
关闭且已排空的页面不轮询;开启期间每十秒回读状态,恢复或排空期间每三秒回读。
普通页面读取通过现有 config-get 的 diagnostics: false 参数省略事件、本地探针、
最近故障和引擎重启详情;当前接管、规则准入与恢复操作判断仍来自同一次实时状态。
展开技术诊断后回读完整状态,未取得完整结果前显示读取提示,不把缺省字段解释成无故障。
未指定该参数的调用及 CLI 状态读取保留完整结果。该投影不改变管理循环和健康探测。
请求失败同样继续有界回读,不按原因码白名单停止刷新。后台标签暂停,回到前台刷新一次,
页面退出取消定时器。地址发现、来源配置与同步归设备地址插件;本页不调用它的管理接口。
新增网站默认精确域名、443 端口和 HTTP/2。只有一个已配置接入范围时沿用该范围;
存在多个范围时必须显式选择,不自动扩大范围。名称、后缀、端口、旁路例外与范围选择
放入高级选项,编辑时保留原值。接入与证书、技术诊断默认折叠,无范围时展开接入引导。
接入区保留手工地址配置及已有动态身份绑定的选择,动态来源只读使用当前状态中的证据。
接入验证记录仅证明相应记录,不表示共享出口后的所有客户端均已信任证书。
规则只有在模块实际接管且该规则被 owner 接纳时显示已就绪;历史 HTTP/2 记录单独标注,
没有请求记录时显示等待请求。页面不展示规则熔断或目标恢复探针,模块故障锁定仍提供恢复。
macOS 工具通过已验证主机身份的 SSH 获取公开 CA,使用
系统 security 安装、验证或撤销信任。工具不会改应用 URL。下载后可执行:
python3 netfleet-macos-trust.py install --target router-admin --device mac
python3 netfleet-macos-trust.py verify --target router-admin --device mac
python3 netfleet-macos-trust.py revoke --target router-admin --device mac系统信任证明只证明系统证书库,不能由安装成功推导为所有应用已经可用。 Codex App、CLI 和图片运行时的专项验证保留在接入记录与诊断导出,不作为日常页面任务; 没有实际验证结果时保持未知。 手工地址变更使旧信任接入记录失效。动态设备的信任绑定来源与网卡身份,地址更新不使 信任失效;身份变化需要重新验证。手工设备转为动态绑定时,仅当旧信任有效、来源新鲜且 旧地址与当前归属有交集,管理员的绑定动作才保留原有信任。来源过期或失效时不续期其 地址许可,不回落到可能已经转让的旧地址,也不累计为 HTTP/2 规则故障。 动态地址仅进入有效运行配置,不写回用户规则或改变配置 revision;冲突地址不接管。 撤销接管后,工具确认连接排空才移除系统信任。
设备管理员通过 ucode /usr/libexec/opl-netfleet/main.uc compatibility-private-backup /root/netfleet-compat-private.tar.gz 生成
包含配置、接入记录和 CA 私钥的私有备份。目标目录必须仅管理员可访问,备份文件
使用 0600 权限;此动作不暴露给 rpcd 或浏览器。普通诊断导出不包含这份备份。