LYNQO v26.1.7 — 连接稳定性更新 / Connection Stability Update
下载与首次使用 / Download & First Run
中文
普通用户请选择:
- Windows:
LYNQO_26.1.7_x64-setup.exe(推荐,安装时可选择简体中文或 English)。 - macOS Apple Silicon(M1 及更新芯片):
LYNQO_26.1.7_aarch64.dmg。 - macOS Intel:
LYNQO_26.1.7_x64.dmg。 - Linux:优先选择
LYNQO_26.1.7_amd64.AppImage;Debian/Ubuntu 也可使用.deb。
**第一次连接:**安装并启动电脑端,在“连接设备”中选择与手机实际所在网络一致的地址,再扫码;电脑主页会立即弹出接入申请。若手机访问 192.168.x.x 超时,请关闭浏览器云端加速、VPN 或代理,并改用系统浏览器。Windows 首次弹出防火墙提示时,仅允许可信的专用网络即可。
latest.json、.sig 和 .app.tar.gz 是自动更新使用的内部资产,普通用户无需手动下载。
English
Choose the package for your device:
- Windows:
LYNQO_26.1.7_x64-setup.exe(recommended; the installer offers Simplified Chinese and English). - Apple Silicon Mac (M1 or newer):
LYNQO_26.1.7_aarch64.dmg. - Intel Mac:
LYNQO_26.1.7_x64.dmg. - Linux: use
LYNQO_26.1.7_amd64.AppImage, or the.debpackage on Debian/Ubuntu.
First connection: start LYNQO on the computer, open “Connect device,” choose the address for the network your phone is actually using, and scan the QR code. The approval request appears on the desktop home page. If a private 192.168.x.x address times out, disable browser cloud acceleration, VPN, or proxy and use the system browser. On Windows, allow access only on a trusted private network.
latest.json, .sig, and .app.tar.gz are updater assets and do not need to be downloaded manually.
中文
这个版本集中修复“手机能打开页面,但电脑没有反应”“授权后状态不更新”“刷新后重复出现设备”和“连接地址看起来正常却不可用”等连接链路问题。连接面板现在只展示后端返回的真实地址和诊断结果,不再使用示例域名、固定目录或未经检测的防火墙结论。
新功能
- 新增连接诊断:显示服务状态、实际监听端口、局域网地址、当前网卡、mDNS 状态和本机连通性。
- 二维码下方提供可直接在手机打开的完整连接地址,包含协议、移动端路径和配对参数。
- 同时存在路由器网络和电脑移动热点时,可按手机所在网络切换地址和二维码。
- 手机端增加明确的连接状态:验证中、等待授权、已连接、重新连接、被拒绝、已撤销和连接失败。
- 手机被拒绝或撤销后,可以直接重新申请接入。
问题修复
- 修复
/mobile、/transfers等前端路由返回 404 状态的问题;缺失的真实资源仍正确返回 404。 - 修复旧数据库先建索引、后补字段导致升级后无法启动的问题。
- 修复端口被占用后服务长期停留在“启动中”并继续错误广播的问题。
- 修复运行中修改端口后,二维码立即指向尚未监听的新端口的问题。
- 修复应用重启后未恢复自定义设备名和端口的问题。
- 修复“移除设备”只隐藏记录、没有撤销授权和信任的问题。
- 修复手机短暂息屏、切换 Wi-Fi 或浏览器挂起后立刻丢失本次授权的问题。
- 修复 WebSocket 更换令牌后仍沿用旧连接,以及断线重连期间仍显示绿色“已连接”的问题。
- 修复同一浏览器并发刷新可能返回 500 并产生设备注册竞争的问题。
- 修复 HTTP 409/403 的具体错误被前端丢弃、只显示状态码的问题。
- 移除尚未真实测量的“延迟”字段,避免长期显示无意义的
—。 - 禁止浏览器缓存旧入口文件,减少更新后继续加载旧构建的情况。
- 修复断开的 WLAN 残留
Deprecated地址仍被选入二维码的问题;Windows 现在只采用Up + Preferred的活动 IPv4 地址。 - 默认优先真实默认路由网卡,电脑热点作为独立可选地址;WSL、VPN 和虚拟机网卡不会混入手机连接列表。
- 网络切换后会自动同步连接端点和 mDNS;并发刷新、停止服务或修改设备名不会重新写回旧广播。
- “局域网地址可达”已更正为“所选地址本机自检”,不再把电脑访问自身误报成手机已经可达。
- 手机菜单新增中英文切换;首次访问会依据手机浏览器语言选择默认语言。
安全与权限
- “仅本次允许”现在覆盖当前局域网服务运行周期;短暂断线可以恢复,停止或重启服务后会自动失效。
- 已信任设备继续保留长期授权,直到用户主动撤销或移除设备。
- 未知 API 返回统一的 JSON 错误结构,不再回退到桌面页面。
- Windows 防火墙状态来自系统真实配置;规则缺失时可由用户确认管理员授权,并仅放行当前程序、TCP 端口和本地子网。
验证结果
- 前端类型检查通过。
- 6 个前端单元测试通过。
- 36 个 Rust 测试通过,包括旧数据库升级、并发注册、忘记设备撤权、端口占用和多网卡排序。
- Clippy 严格检查通过。
- npm 高危依赖审计为 0。
- Windows NSIS 安装包构建通过。
- 真实进程验证:局域网状态接口可访问,SPA 路由返回 200,未知 API 和缺失资源返回 404。
已知限制
- 本机端口自检只能证明服务已监听,最终仍需用手机验证网络路径;界面不会再把本机自连结果表述成“手机可达”。
- 手机浏览器的云端加速、VPN 或代理可能无法访问
192.168.x.x;遇到超时时应关闭这些功能或换用系统浏览器。 - Safari 通常不会向网页提供具体的 iPhone 代际;LYNQO 会显示 iPhone 和稳定短码,不会伪造“iPhone 16”等型号。
- 本地生成的 Windows 测试包未做代码签名;正式 Release 由 GitHub Actions 使用仓库密钥生成更新签名。
下一版本计划
下一版本将转向传输可靠性:断点恢复、连续多文件队列、速度平滑、剩余时间校准、校验进度和失败任务重试。
English
This release focuses on the complete connection path: opening the mobile page, registering one stable device, approving it on the desktop, keeping authorization synchronized, and recovering from short network interruptions. The connection panel now shows only backend-provided addresses and measured diagnostics; placeholder domains and unverified firewall claims have been removed.
New
- Connection diagnostics for service state, actual listening port, LAN address, selected adapter, mDNS, and local reachability.
- A complete mobile URL below the QR code, including protocol, route, and pairing parameter.
- Separate selectable QR paths for the router LAN and a Windows mobile hotspot when both are active.
- Explicit mobile states: validating, awaiting approval, connected, reconnecting, rejected, revoked, and failed.
- A direct “request access again” action after rejection or revocation.
Fixed
- SPA routes such as
/mobileand/transfersnow return HTTP 200; genuinely missing assets and API routes still return 404. - Legacy database columns are migrated before dependent indexes are created.
- Port conflicts now produce a persistent failed state and no unreachable mDNS advertisement.
- Changing the configured port while running no longer makes the QR code point at an unbound port.
- Device name and port settings are restored after restart.
- Removing a device now revokes approval and trust before hiding its history.
- Short browser suspension or Wi-Fi handoff no longer ends a one-time authorization immediately.
- WebSocket URL/token changes replace the old socket, and reconnecting is visible immediately.
- Concurrent refresh registration is atomic and reuses one stable device record.
- Structured 409/403 errors reach the UI instead of degrading to a bare HTTP status.
- The unimplemented latency display was removed.
- Entry documents are served with
Cache-Control: no-storeto prevent stale builds after updates. - Disconnected adapters and
DeprecatedIPv4 addresses are excluded; Windows connection URLs now use onlyUp + Preferredaddresses. - The active default route is preferred, a computer hotspot remains selectable, and unrelated WSL, VPN, or VM interfaces are excluded from phone choices.
- Network changes synchronize the endpoint and mDNS in the background without allowing stale concurrent registrations to win.
- The former LAN reachability check is correctly labelled as a selected-address local self-check.
- The mobile menu now exposes Chinese and English, with the initial language selected from the phone browser locale.
- Windows Firewall status is read from the system; if a rule is missing, the user can explicitly approve a local-subnet-only inbound rule for the current executable and TCP port.
Verification
- TypeScript check, 6 frontend unit tests, 36 Rust tests, strict Clippy, production Vite build, dependency audit, Windows NSIS build, and a real HTTP/LAN process smoke test all passed.
Known limitations
- A desktop self-check proves that the listener is active but cannot by itself prove the phone-to-PC path; the final check must still be made from the phone.
- Cloud acceleration, VPNs, or proxies in a phone browser may be unable to route private
192.168.x.xaddresses and should be disabled when troubleshooting. - Safari generally does not expose the exact iPhone generation to web pages; LYNQO uses an honest platform label and stable suffix.
- The locally generated Windows test installer is unsigned. Official updater signatures are produced by GitHub Actions with repository secrets.
Next
The next release will focus on transfer reliability: resumable transfers, continuous multi-file queues, smoother speed and ETA, checksum progress, and retryable failures.