[feat] add IPv6 support for direct IP connections, refs #129

This commit is contained in:
dijunkun
2026-10-29 20:02:43 +08:00
parent f09a4c50d1
commit 7c6e14989f
18 changed files with 287 additions and 187 deletions
+6 -4
View File
@@ -52,20 +52,22 @@ sudo apt install "./crossdesk-virtual-desktop-xfce-linux-amd64-<version>.deb"
### 通过局域网 IP 直连
当前 IP 直连入口用于 Windows、macOS、Linux 的普通桌面客户端。两台电脑的 IPv4 地址需要可互相访问;有无外网均可,不需要等待连接信令服务器。浏览器、移动端、Windows 登录前服务及 Linux 无头控制台目前继续使用设备 ID 连接流程。
当前 IP 直连入口用于 Windows、macOS、Linux 的普通桌面客户端。两台电脑的 IPv4 或 IPv6 地址需要可互相访问;有无外网均可,不需要等待连接信令服务器。浏览器、移动端、Windows 登录前服务及 Linux 无头控制台目前继续使用设备 ID 连接流程。
1. **启用并切换。** 两端在 **设置 → 常规 → 网络连接** 中启用 **IP 直连** 并保存(默认开启),再用主窗口左上角按钮切换到 **IP 直连模式**。
2. **获取对方地址。** 被控端在“本机 IP / 端口”查看地址,复制按钮会复制完整的 `IP:端口`。有多个地址时,选择控制端能够访问的地址。
3. **连接并验证。** 控制端在“远端 IP / 端口”输入例如 `192.168.1.20:52888`,点击“连接”,再输入被控端此模式下的六位密码。省略端口时使用 **52888**;当前支持数字 IPv4,不支持主机名或 IPv6。
3. **连接并验证。** 控制端在“远端 IP / 端口”输入例如 `192.168.1.20:52888` 或 `[2001:db8::20]:52888`,点击“连接”,再输入被控端此模式下的六位密码。省略端口时使用 **52888**;支持数字 IPv4 和 IPv6,不支持主机名。
4. **保存与重连。** 密码弹窗可勾选“记住密码”。近期连接按 ID / IP 模式分别显示;不勾选也会保存设备记录,下次连接需重新输入密码。可从卡片重连、修改别名或删除记录。
<p align="center">
<img src="images/desktop-lan-password-zh.png" width="720" alt="IP 直连密码弹窗与记住密码选项,背景为演示局域网设备" />
</p>
**地址和端口:** 点击“切换 IP”选择展示与分享的地址,点击“修改端口”编辑该 IP 的端口。默认所有接口共用一个端口;关闭“监听所有 IPv4 接口”后,程序同时监听可用物理网卡上的 IPv4,每个 IP 单独保存端口。切换展示地址不会停用其他地址。首次为某个 IP 分配端口时优先使用 **52888**,被占用时自动分配并保存可用端口。已有配置的端口发生冲突时会提示,需手动修改。端口范围为 **1–65535**,修改失败会保留原设置;连接方需要使用界面显示的实际端口。局域网防火墙需允许 CrossDesk 的 TCP 协商连接和 UDP 远控流量。
**地址和端口:** 点击“切换 IP”选择展示与分享的地址,点击“修改端口”编辑该 IP 的端口。默认所有接口共用一个端口;关闭“监听所有 IP 接口”后,程序同时监听可用物理网卡上的 IPv4 和 IPv6,每个 IP 单独保存端口。切换展示地址不会停用其他地址。首次为某个 IP 分配端口时优先使用 **52888**,被占用时自动分配并保存可用端口。已有配置的端口发生冲突时会提示,需手动修改。端口范围为 **1–65535**,修改失败会保留原设置;连接方需要使用界面显示的实际端口。局域网防火墙需允许 CrossDesk 的 TCP 协商连接和 UDP 远控流量。
**所有接口监听:** 在 **设置 → 常规 → 网络连接** 中开启“监听所有 IPv4 接口”并保存,即可让有线、Wi-Fi、VPN 和虚拟网卡共用一个 TCP 协商端口。此选项默认开启,已有的显式关闭设置会保留;修改后点击“保存”生效,点击“取消”不改变监听,重启仍沿用已保存设置;关闭后恢复原来各物理网卡 IP 的端口。该模式下修改任一展示地址的端口,会修改所有接口共用的端口。“切换 IP”和复制仍使用本机实际地址,不能把 `0.0.0.0` 作为远端地址。新接口自动使用共同端口;VPN 两端仍须允许 TCP 和 UDP 互通。不支持 IPv6、回环远控或自动公网 NAT 穿透。切换监听范围会取消未完成认证的连接;已认证连接保留。若端口被占用或设置无法保存,切换失败并尝试恢复原监听,恢复失败的端口会显示错误并持续重试。
**所有接口监听:** 在 **设置 → 常规 → 网络连接** 中开启“监听所有 IP 接口”并保存,即可让有线、Wi-Fi、VPN 和虚拟网卡的 IPv4/IPv6 共用一个 TCP 协商端口。此选项默认开启,已有的显式关闭设置会保留;修改后点击“保存”生效,点击“取消”不改变监听,重启仍沿用已保存设置;关闭后恢复原来各物理网卡 IP 的端口。该模式下修改任一展示地址的端口,会修改所有接口共用的端口。“切换 IP”和复制仍使用本机实际地址,不能把 `0.0.0.0` 或 `::` 作为远端地址。新接口自动使用共同端口;VPN 两端仍须允许 TCP 和 UDP 互通。不支持回环远控或自动公网 NAT 穿透。切换监听范围会取消未完成认证的连接;已认证连接保留。若端口被占用或设置无法保存,切换失败并尝试恢复原监听,恢复失败的端口会显示错误并持续重试。
**IPv6 地址:** 可以输入裸 IPv6 使用默认端口,例如 `2001:db8::20`;指定端口时使用方括号,例如 `[2001:db8::20]:52888`。支持全局、ULA 和链路本地单播地址。链路本地地址须带连接端自己的网卡作用域,例如 `[fe80::1234%14]:52888`(也可使用系统支持的网卡名,如 `%en0`)。复制的地址带有被控端作用域,控制端连接时需换成控制端用于访问该链路的网卡编号或名称,两端编号不一定相同。程序仍使用实际地址执行 TCP 认证与 UDP 媒体协商;IPv4 客户端可以继续连接新版。操作系统不支持 IPv6 时,所有接口监听自动退回 IPv4;升级保留原有共享端口与开关状态。
**密码:** IP 直连使用独立的 **6 位英文字母或数字密码,区分大小写**。没有设置时自动生成,眼睛、刷新和铅笔按钮分别用于显示 / 隐藏、随机生成和自定义;修改成功后即时生效,无需重启或连接服务器。已保存旧密码的控制端需要重新输入。