711 lines
48 KiB
Markdown
711 lines
48 KiB
Markdown
# 家庭主机远程串流方案(公司电脑 → 家里主机)
|
||
|
||
> **目标**:在公司电脑上远程控制家里主机,能正常游玩《英雄联盟》快节奏娱乐模式(海克斯大乱斗类,团战密集、吃操作延迟)。
|
||
> **版本**:v5 | 2026-09-10 | **状态:公网 IPv4 申请被拒 → IPv6 路线重启评估。家里入口已就绪,瓶颈转移到「公司端没有 IPv6 出口」**
|
||
|
||
---
|
||
|
||
## v4 → v5 修订摘要(**IPv4 申请失败 → IPv6 路线重启**)
|
||
|
||
用户反馈:**打 10000 申请公网 IPv4 未成功**(运营商不给家宽公网 IPv4)。于是把 v4 判死的 IPv6 路线重新翻出来,逐项核对前置条件。
|
||
|
||
| 项 | v4 状态 | v5 实测/修订 |
|
||
|---|---|---|
|
||
| 公网 IPv4 | ✅ 主攻路线 | ❌ **申请被拒** —— 这条路暂时封死 |
|
||
| IPv6 直连 | ❌ "公司无 IPv6,判死" | ⚠️ **重启评估** —— 家里侧条件经复查**全部达标**,卡点收敛为一个非常具体的点:**公司端缺 IPv6 出口** |
|
||
| 家里 IPv6 出网 | 未单独测 | ✅ **19:00 复查全通**:`ipv6.icanhazip.com` / `www.taobao.com` / `www.qq.com` 的 TCP 443 全部 OK |
|
||
| 家里 IPv6 地址 | 只知道有两个随机地址 | ✅ **发现固定后缀地址** `...:29f1:e63f:d476:597e`(`Suffix=Link`,后缀**不轮换**)→ 适合做长期服务地址 + DDNS 目标 |
|
||
| 家里 IPv6 入站 | 未证明(手机测过一次失败) | ⏳ **待复测** —— 最大嫌疑是天翼网关**默认拦截 IPv6 入站**(IPv6 是"无 NAT 直通",放行全靠网关防火墙) |
|
||
| 公司端 IPv6 出口 | 无(硬结论) | 🔑 **新增解法:手机 5G 热点** —— 用户手机实测**有 IPv6**(能开 `ipv6.icanhazip.com`),等于公司笔记本可以"借"一条 IPv6 出口 |
|
||
|
||
**v5 路线重排:**
|
||
|
||
| 优先 | 路线 | 画质上限 | 公司端代价 | 卡点 |
|
||
|---|---|---|---|---|
|
||
| **A(主攻)** | **手机 5G 热点 → 公司笔记本获得 IPv6 → 直连家里 IPv6** | **1080p120 满血** | 零安装 | ① 热点下游能否拿到 IPv6 ② 家里网关是否放行入站 |
|
||
| B | 腾讯云 frp 中继(公司 IPv4 → 服务器 → 家里) | 1080p60(受 5 Mbps 限) | 零安装 | 服务器 IPv6 支持 |
|
||
| C | 网易UU远程 / ToDesk | 中继延迟 + 反作弊风险 | 零安装 | 无 |
|
||
|
||
> **核心洞察**:v4 之后瓶颈从「**家里没有入口**」变成「**公司没有 IPv6 出口**」。
|
||
> 家里其实**有一条干净的入口**(公网 IPv6,无 NAT、只需网关放行),只是公司这侧够不着 —— 而"够不着"这件事,一部手机就能补上。
|
||
|
||
**方案 A 的两条硬约束(必须提前认清)**
|
||
|
||
| 约束 | 数值 | 说明 |
|
||
|---|---|---|
|
||
| **流量成本** | 1080p120 @ 20 Mbps ≈ **9 GB/小时** | 这才是手机热点的真正代价。打 3 小时 ≈ 27 GB,必须确认套餐余量或办一张大流量副卡 |
|
||
| **延迟代价** | 预计 **40–70 ms** | 5G 空口 + 跨网(手机运营商 → 电信)。LOL 可接受(普通玩家本身 30–50 ms),但**打不满 120fps 的体感优势** |
|
||
|
||
---
|
||
|
||
## v3 → v4 修订摘要(**路线第三次修正,这次是定案**)
|
||
|
||
公司端 `net-test-v2.ps1` 实测结果回来了(`net-test-v2_20260910_163314.txt`),**三条硬结论**:
|
||
|
||
| 项 | v3 假设 | v4 实测结论 |
|
||
|---|---|---|
|
||
| 公司出站端口 | 未知,担心是白名单 | ✅ **完全自由**:`portquiz.net` 的 `443/8080/8443` 全 OPEN,连你腾讯云的 **`22025`** 也 OPEN → **任意 TCP 端口出站都能用** |
|
||
| **公司 NAT 类型** | 未知 | ❌ **对称 NAT**(同一本地端口问不同 STUN → 映射端口 `16993/16994/17011` 各不相同)+ **多公网出口**(`117.188.24.89` 与 `117.188.118.254` 同时出现、按目的地分流)→ **P2P 打洞基本不可行** |
|
||
| 公司 IPv6 | v3 已判死 | ❌ 复核确认 `IPv6 local : NONE` |
|
||
| 公司管理员权限 | 未知 | ⚠️ 当前会话**非管理员**,但账号 `ybtdevxxl` **在 Administrators 组内** → 可提权(只需点一次 UAC) |
|
||
| 公司已装软件 | 未知 | 🎁 **已装 `Clash Verge`、`WireGuard`、`ToDesk`、火绒** —— 若将来走隧道,WireGuard 现成、无需再装驱动 |
|
||
| 公司安全软件 | 火绒在跑 | ⚠️ **火绒 `HipsDaemon` / `HRWSCCtrl` 运行中**;其余 EDR(`aTrust` / `edr_monitor` / `savsvc` / Defender 全系)**均为 Stopped** → 没有强制管控在跑,这是好消息 |
|
||
| 公司主屏 | 2560×1600@120 | ✅ 复核一致(脚本报 `1707×1067` 是 **150% 缩放后的逻辑值**,2560÷1.5 = 1707) |
|
||
|
||
**路线定案:**
|
||
|
||
| 路线 | 判决 | 依据 |
|
||
|---|---|---|
|
||
| IPv6 直连 | ❌ **死** | 公司无 IPv6 |
|
||
| Tailscale / ZeroTier **打洞** | ❌ **基本死** | 公司**对称 NAT + 多出口 IP**,映射端口不可预测 |
|
||
| **A. 申请公网 IPv4 + Sunshine 直连** | ✅ **主攻** | 公司出站任意端口均可用 → 拿到公网 IP 即可 **1080p120 满血** |
|
||
| B. 腾讯云 frp 中继 | ⚠️ 可立即启用,画质受限 | 公司能连腾讯云任意端口 → 技术上完全通;**但服务器仅 5 Mbps**,只够 1080p60 @ 4~5 Mbps |
|
||
| C. 网易UU远程 | ⚠️ 兜底 | 厂商大带宽中继、不受 NAT 影响、专为游戏优化;代价是反作弊风险 |
|
||
| D. ToDesk | ⚠️ 兜底 | 已实测可连通(走中转),办公向延迟 |
|
||
|
||
> **一句话总结**:唯一的瓶颈是**家里没有公网 IP**。解决它,一切迎刃而解;不解决,就只能接受「中继 + 降码率」。
|
||
|
||
---
|
||
|
||
## v2 → v3 修订摘要(**重要,路线变了**)
|
||
|
||
公司端自测结果回来后,发现 v2 的核心前提不成立,路线必须再改一次:
|
||
|
||
| 项 | v2 结论 | v3 修订 |
|
||
|---|---|---|
|
||
| 打通方式 | 公网 **IPv6 直连** | ❌ **作废**:公司网络**完全没有 IPv6**(本机无 IPv6 地址、IPv6 出网两条 DNS 全不通)→ IPv6 直连从"最优解"变成"走不通" |
|
||
| 家里 NAT 类型 | "对称 NAT,打洞困难" | ❌ **v2 测错了**:v2 每个 STUN 用新 socket(新本地端口),映射端口当然不同。**正确测法**(同一 socket 问多个 STUN)结论是 —— **端点无关映射(锥形/Cone NAT),打洞可行** ✅ |
|
||
| 公司端口白名单 | v1 报"443 不通、疑似白名单" | ❌ **v1 测错了**:拿 `114.114.114.114:8080`(该主机根本没开 8080)和 `github.com:443`(国内 DNS 被污染)当靶子。已重做为**有效靶子**测法(见 `net-test-v2.ps1`) |
|
||
| 首选路线 | IPv6 直连 | ✅ **改为二选一**:**A. 申请公网 IPv4 + 端口转发**(若电信批)/ **B. Tailscale 打洞**(家里是锥形 NAT,基础不错) |
|
||
| 公司屏幕 | 待补测 | ✅ **2560×1600 @ 120Hz** → 120Hz 屏是意外之喜,手感延迟少 8ms 左右 |
|
||
| 公司安全软件 | 未知 | ⚠️ 发现企业级管控:**火绒 HipsDaemon / HRWSCCtrl** + `edr_monitor` + `savsvc`(详见 1.6) |
|
||
| 画质定档 | 1080p120 | ✅ 维持 **1920×1080 @ 120fps**(公司屏 16:10,串流按 1920×1080 等比即可) |
|
||
|
||
---
|
||
|
||
## 一、实测底账(2026-09-10)
|
||
|
||
### 1.1 被控端(家 · 本机)硬件
|
||
|
||
| 项目 | 实测值 | 对串流的意义 |
|
||
|---|---|---|
|
||
| 显卡 | **NVIDIA RTX 4070 SUPER**(驱动 32.0.15.9186) | Ada 架构,NVENC 支持 **H.264 / H.265 / AV1** 硬编,画质天花板很高 |
|
||
| CPU | Ryzen 7 7800X3D(8C/16T) | 游戏性能强,编码走 NVENC 不占 CPU |
|
||
| 内存 | 31.2 GB | 充足 |
|
||
| 系统 | Windows 11 专业版 build 26200 | Sunshine / Moonlight 官方良好支持 |
|
||
| 显示器 | AOC **2560×1440 @ 170Hz** | 可输出 2K 高刷;但按 1080p120 定档更稳 |
|
||
| 网卡 | Realtek 2.5GbE,链路 1Gbps,IP `192.168.1.30` | 有线千兆,本地无瓶颈 |
|
||
| 网关 | `192.168.1.1`(可访问,LuCI 界面) | 见 1.4 |
|
||
|
||
### 1.2 网络实测 —— 三个决定性发现
|
||
|
||
| 指标 | 实测值 | 结论 |
|
||
|---|---|---|
|
||
| 下行 | 943.82 Mbps | 千兆宽带(Ookla,电信上海节点 id 3633) |
|
||
| **上行** | **46.36 Mbps** | **画质天花板;可撑 1080p120 甚至 2K120** |
|
||
| 丢包 | **0.0%** | 线路质量好 |
|
||
| 出口 IPv4 | `1.204.100.17`(电信,广东,动态) | ⚠️ 这是**运营商 NAT 的公网出口**,不是你家地址 |
|
||
| **tracert 第 2 跳** | **`100.64.0.1`** | ⚠️⚠️ **运营商级 NAT(CGNAT)实锤** |
|
||
| 出口 IPv6 | **`240e:338:263:3600::/64`** | ✅ **公网 IPv6,可被外部直达(待验证入站放行)** |
|
||
| STUN 映射端口 | ❗v2 报"每次不同"→ **测法有误**;**正确复测(同一 socket 打多个 STUN)**:本地端口 55001 → 恒为 `:3051`;55002 → 恒为 `:3063` | ✅ **端点无关映射(Cone/EIM)**,IPv4 侧打洞**可行**,不是对称 NAT |
|
||
|
||
**修正后的三条推论**
|
||
|
||
1. ❌ **IPv4 端口转发仍不可行** —— 你确实没有公网 IPv4(`100.64.0.1` 是运营商大内网,RFC 6598 专用段)
|
||
2. ✅ **IPv4 侧 P2P 打洞是可行的** —— 家里是**锥形 NAT(映射端点无关)**,这是打洞最有利的一类。v2 里"对称 NAT 打洞困难"的结论是**因为测试方法错误**(每问一个 STUN 就换一个新 socket → 本地端口变了,映射端口当然跟着变)。**已用正确方法复测推翻。**
|
||
3. ⚠️ **IPv6 虽然最优,但公司没有** —— 家里有公网 IPv6 这点仍然成立,只是**公司那条网线/WiFi 完全跑不了 IPv6**。
|
||
🔄 **v5 修订(措辞必须精确)**:这不等于"IPv6 在公司场景作废",而只是"**公司的那一条网络出口**没有 IPv6"。公司笔记本还有**第二条出口**从未被用上 —— **手机 5G 热点**(用户手机实测有 IPv6)。所以这条路在 v5 复活,详见第二章 A 案。
|
||
|
||
### 1.3 家里可直接对外服务的 IPv6 地址(**v5 · 19:00 复查更新**)
|
||
|
||
```
|
||
240e:338:263:3600:29f1:e63f:d476:597e ← ✅ 首选:Suffix=Link,后缀固定不轮换,生命周期 1.21 天(自动续期)
|
||
240e:338:263:3600:e591:cb62:3503:8a23 ← ⚠️ Suffix=Random(隐私扩展地址),会轮换,当前 17.7 小时后过期
|
||
240e:338:263:3600:51f3:a026:4256:a337 ← ❌ Deprecated(已废弃,忽略)
|
||
```
|
||
|
||
**这次复查最大的收获:找到了一个"后缀永不变化"的地址。**
|
||
|
||
| 地址组成 | 是否变化 | 说明 |
|
||
|---|---|---|
|
||
| 前缀 `240e:338:263:3600::/64` | ⚠️ **可能变** | 天翼网关 PPPoE 拨号时下发,重拨或运营商侧调整时会变 |
|
||
| 后缀 `29f1:e63f:d476:597e` | ✅ **不变** | 基于网卡标识派生(`Suffix=Link`),网卡不换它就永远不变 |
|
||
|
||
**这带来一个很实际的好处**:DDNS 只需要盯住**前缀那 4 段**是否变化,Windows 侧什么都不用改(不必关隐私扩展),就能拿到一个长期可寻址的目标地址。
|
||
|
||
其他实测(19:00):
|
||
- **IPv6 出网正常**:`ipv6.icanhazip.com` / `www.taobao.com` / `www.qq.com` 的 TCP 443 **全部 OK**
|
||
- IPv6 默认路由 → `fe80::1`(网关)
|
||
- Windows 防火墙:Public 档开启(家里以太网属 Public),且 `node.exe` 有 Public/Private **入站 Allow** 规则 → 本机侧不拦
|
||
|
||
> **v5 补充(路线重启)**:这组地址**重新变成核心资产**。v4 时因为"公司无 IPv6"把它判死,但公司那台笔记本还有一条**从未用上**的出口 —— **手机热点**(见第二章 A 案)。用户手机实测有 IPv6,等于随时能给公司笔记本接上一条 IPv6 通道。
|
||
|
||
⚠️ 前缀由网关 RA 下发,重拨可能变 → 长期使用必须配 DDNS(见第七章)。
|
||
|
||
> **⚠️ 仍待证明的一件事**:家里能**出** IPv6(已验证),但**外部能不能进得来**还没证明。IPv6 没有 NAT,"放行全靠网关防火墙"——天翼网关默认**拦截入站**,这是此前手机测试失败的最大嫌疑。验证方法见第七章。
|
||
|
||
---
|
||
|
||
### 1.4 网关(路由器)与密码找回
|
||
|
||
**判定结果**:**中国电信智能网关(天翼网关)**,管理界面为 LuCI 风格(首页 302 到 `/cgi-bin/luci`),网关 MAC `88-C7-8F-A6-BC-43`。
|
||
|
||
忘记后台密码的**阶梯式解决办法**(从省事到暴力):
|
||
|
||
1. **看机身贴纸**:找 `useradmin` 和随机的 8 位密码。普通账号能看状态页与 WAN 信息,部分型号也能改端口映射 / IPv6 防火墙
|
||
2. **试超级管理员默认密码**:账号 `telecomadmin`,经典默认 `nE7jA%5m`(华为系天翼网关最常见),其次 `admintelecom`。部分地区出厂就是随机密码(贴在机身或在电信 App 里)
|
||
3. **手机 App**:`小翼管家` / `天翼看家`,可查看网关信息、部分设置,也常能重置管理密码
|
||
4. **打 10000 号**:报宽带账号,让客服重置网关管理密码
|
||
5. **恢复出厂**(reset 孔长按 10 秒):**最后一招**。天翼网关重置后会经 TR-069 自动重新下发业务配置(含宽带账号),多数能自动恢复上网,但有失败风险,需客服兜底
|
||
6. ✅ **其实可以完全绕开路由器后台**:
|
||
- **IPv6 直连不需要端口转发**(IPv6 无 NAT,只需网关防火墙放行入站)
|
||
- **组网打洞不需要后台**(Tailscale / ZeroTier)
|
||
- **商业远控不需要后台**(UU远程 / ToDesk 走它们自己的服务器)
|
||
|
||
> 结论:**拿不到路由器密码不会阻塞方案**。只有"网关把 IPv6 入站也拦了,且你不同意用打洞/中转"这一种情况才需要密码去放行。
|
||
|
||
### 1.5 本机环境的重要细节
|
||
|
||
- Windows 防火墙:Domain=开启 / **Private=关闭** / Public=开启;**以太网被判定为 Public 档**
|
||
- **当前会话不是管理员** → 装 Sunshine、加防火墙规则、改电源计划都需要你点一次 UAC 确认
|
||
- 已存在的远控残留驱动:`Todesk Virtual Display Adapter`、`GameViewer Virtual Display Adapter`(网易UU远程)、`MuMu Virtual Display Adapter`
|
||
- 本机装有 Clash Verge(系统代理 127.0.0.1:7897,当前开关=0)与火绒(HipsDaemon / HRWSCCtrl)
|
||
|
||
### 1.6 公司端(**v3 已拿到实测结果**)
|
||
|
||
来源:`网络自测结果_20260910_160152.txt`(公司电脑本地运行 v1 脚本产出)
|
||
|
||
| 项目 | 实测值 | 结论 |
|
||
|---|---|---|
|
||
| CPU | **AMD Ryzen 7 7840H**(8C/16T,Zen4) | 性能远超解码需求 |
|
||
| 核显 | **AMD Radeon 780M**(RDNA3 / Phoenix,VCN 4.0) | ✅ **支持 AV1 硬解**,也支持 H.265 |
|
||
| 内存 | 31.2 GB | 充足 |
|
||
| 系统 | Windows 11 专业版 build 26200 | 良好 |
|
||
| 屏幕 | **共享显示器 + 2560×1600@120Hz**(另有 `Sharing Monitor` 虚拟项) | ✅ **120Hz**!比 v2 假设的 60Hz 屏好一档,少约 8ms |
|
||
| **IPv6** | **本机无 IPv6 地址;IPv6 出网(阿里 v6 DNS / 电信 v6 DNS)全部不通** | ❌ **企业网是纯 IPv4** → 有线/WiFi 这条出口没有 IPv6(🔄 v5:可改用**手机热点**作为 IPv6 出口) |
|
||
| UDP 出网 | STUN 可用(`stun.miwifi.com`、`stun.hitv.com` 均有响应,本地高位端口 → 公网 `117.188.24.89`) | ✅ **高位 UDP 可出网且能收到回包**,这是打洞/串流的基础 |
|
||
| 系统代理 | 开关=0,但服务器填了 `127.0.0.1:7892` | ⚠️ 公司电脑上可能装过 Clash 类代理客户端(**待查是否在跑、有无可用节点**) |
|
||
| 安全/管控软件 | **`HipsDaemon`(火绒 HIPS 主服务)**、**`HRWSCCtrl`(火绒安全中心)**、`edr_monitor`、`savsvc`、`OneDrive×2` | ⚠️ **有企业级 HIPS/EDR**,装 VPN 驱动(TUN/虚拟网卡)大概率会弹窗告警甚至被拦;也可能记录外联行为 |
|
||
| 出站 TCP 端口自由度 | v1 结论**不可信**(靶子无效,见 v3 摘要) | 🔄 需用 `net-test-v2.ps1` 复测 |
|
||
| 管理员权限 | **待确认** | 决定能不能装 Tailscale(要装 TUN 驱动);Moonlight 便携版不需要管理员 |
|
||
|
||
**补充实测(2026-09-10 16:28,用户提供 `ipconfig`)—— 接入方式与网络身份已确认**
|
||
|
||
```
|
||
无线局域网适配器 WLAN:
|
||
IPv6 地址 . . . . . : fe80::ecdb:9605:2cf8:9a3d%11 <- 仅链路本地,无全局 IPv6
|
||
IPv4 地址 . . . . . : 192.168.250.84
|
||
子网掩码 . . . . . : 255.255.255.0
|
||
默认网关. . . . . . : 192.168.250.1
|
||
```
|
||
|
||
| 项 | 结论 |
|
||
|---|---|
|
||
| 接入方式 | **笔记本 + WiFi 接入企业网**(不是有线) |
|
||
| 内网网段 | `192.168.250.0/24` —— 企业统一网段(家用极少见),网关 `192.168.250.1` |
|
||
| IPv6 | **只有 `fe80::` 链路本地地址,无 RA 全局地址** → 企业网本身不发 IPv6 | 🔄 **v5 精确化**:死的是"**这条企业网出口**",不是"公司场景"。笔记本可另接**手机热点**获得 IPv6(见第二章 A 案) |
|
||
| 出口 IP | `117.188.24.89`(全公司共享同一出口,非公司专属) |
|
||
| 内网 IP 归属 | 由企业网 DHCP 下发,**随时可能变**,不能用作稳定地址 |
|
||
|
||
> **公司端唯一还缺两块拼图**:① 出站端口是否真被白名单限制;② 是否有管理员权限。两者都能用 `net-test-v2.ps1` 一次性拿到。
|
||
|
||
**从被控端(家里)反查 ToDesk —— 意外挖到一个好消息(2026-09-10 16:29)**
|
||
|
||
用户在公司用 ToDesk 控制家里主机,我直接在家里这侧抓了 ToDesk 的实时连接:
|
||
|
||
```
|
||
# ToDesk 全部对外 TCP(非局域网)
|
||
TCP Established 59695 -> 219.151.138.225:8080 <- 非标端口!
|
||
TCP Established 59665 -> 219.151.138.225:443
|
||
TCP Established 57577 -> 118.24.225.33:443
|
||
|
||
# 到公司出口 117.188.24.89 的直连:无记录
|
||
# ToDesk UDP 端点(家里侧,多个 IPv6 地址 + IPv4)
|
||
UDP 240e:338:263:3600:e591:cb62:3503:8a23:57068
|
||
UDP 240e:338:263:3600:51f3:a026:4256:a337:57067
|
||
UDP 240e:338:263:3600:29f1:e63f:d476:597e:57066
|
||
UDP 192.168.1.30:57069
|
||
```
|
||
|
||
两条关键推论:
|
||
|
||
1. ✅ **公司网络允许出站到非标端口(至少 8080 可用)** —— 这是**分量很重的利好**:说明公司不是"只放行 80/443"的白名单防火墙。若家里将来有公网 IPv4,Sunshine 的 `47989/47990/48010` 这些端口公司大概率能直连;腾讯云 frp 中继(任意端口)也具备可行性。
|
||
2. ⚠️ ToDesk **TCP 层没有与公司出口 IP 的直连**,且文件传输会话为 `planb:1 ... p2p:0`(走中转)。UDP 是无连接的、从端点列表看不到对端,所以**不能据此断定打洞失败**,但至少没有直连证据 → 打洞方案(路径 B)的信心下调。
|
||
|
||
> 附带发现:家里这台主机的 IPv6 地址有**多个轮换的隐私扩展地址**(同一前缀下 3 条)。这印证了"IPv6 直连必须配 DDNS"的判断(不过该路线已被公司端否决,仅留档)。
|
||
|
||
---
|
||
|
||
## 二、方案选型(v5 定案)
|
||
|
||
**先看硬约束 —— 它们决定一切:**
|
||
|
||
| 约束 | 事实 | 影响 |
|
||
|---|---|---|
|
||
| 家里无公网 IPv4 | CGNAT(tracert 第 2 跳 `100.64.0.1`),且 **10000 申请被拒** | ❌ 端口转发 / 直连彻底没戏(v5 确认这条路已走不通) |
|
||
| 家里 IPv4 NAT | **锥形 / 端点无关映射(EIM)** | 单看家里是打洞友好,但被下一条堵死 |
|
||
| **公司 NAT 类型** | ❌ **对称 NAT + 多公网出口**(同一本地端口映射到 `16993/16994/17011` 各不相同;出口 IP 出现 `117.188.24.89` 与 `117.188.118.254` 两个) | **对称 + 锥形 组合 → 打洞不可行** |
|
||
| **家里有公网 IPv6** | `240e:338:263:3600::/64`,**19:00 实测出网全通**,且找到**固定后缀地址** | ✅ **v5 主攻:这是家里唯一干净的入口** |
|
||
| 公司(有线/WiFi)无 IPv6 | `IPv6 local : NONE`(企业网不发 RA) | ⚠️ **但不是死路** —— 可借手机热点补出口 |
|
||
| **手机 5G 有 IPv6** | 用户手机实测可打开 `ipv6.icanhazip.com` | ✅ 给公司笔记本补 IPv6 出口的现实手段 |
|
||
| **公司 TCP 出站全自由** | `portquiz.net` 的 `443/8080/8443` 全 OPEN,且能连你腾讯云的 `22025` | ✅ **中继 / 直连方案的"通道"完全没问题** |
|
||
| 公司有 HIPS + EDR | 火绒 `HipsDaemon` / `HRWSCCtrl` **运行中** | ⚠️ 装内核驱动类方案有告警 / 被拦风险 |
|
||
| 家里上行 46 Mbps | Ookla 实测 | 画质天花板由它决定,与走哪条路无关 |
|
||
|
||
> **核心洞察(v5 更新)**:v4 时瓶颈是「**家里没有入口**」;现在家里**明明有一条干净的入口**(公网 IPv6,无 NAT、只需网关放行),瓶颈转移到了「**公司这侧够不着**」。
|
||
> 而"够不着"这件事 —— **一部手机就能补上**。
|
||
|
||
### 路径 A(**v5 主攻**):手机热点补 IPv6 + 家里 IPv6 直连
|
||
|
||
**思路**:公司这条有线/WiFi 出口没有 IPv6,但公司笔记本还有一个网络接口从没用上 —— **WiFi 连自己的手机热点**。手机 5G 实测有 IPv6,热点下游设备通常也能分到 IPv6 前缀。
|
||
|
||
```
|
||
[家里主机] --公网 IPv6--> 中国电信 IPv6 骨干 <--IPv6-- [手机 5G] --热点--> [公司笔记本 · Moonlight]
|
||
▲
|
||
唯一门槛:天翼网关放行 IPv6 入站
|
||
```
|
||
|
||
- **优点**
|
||
- **公司端零安装**:Moonlight 便携版即可 —— 不装驱动、不碰火绒、不要管理员
|
||
- **画质上限最高**:家里 46 Mbps 上行全用得上 → **1080p120 满血**
|
||
- **零月费**(只有流量开销),不依赖任何第三方服务、不需要备案域名、不受反作弊厂商策略影响
|
||
- **代价(必须提前认清)**
|
||
- ⚠️ **流量**:1080p120 @ 20 Mbps ≈ **9 GB/小时**;打 3 小时 ≈ 27 GB。**建议单独办一张大流量副卡**
|
||
- ⚠️ **延迟**:5G 空口 + 跨网(手机运营商 → 电信),预计 **40–70 ms**。LOL 可接受(普通玩家本身 30–50 ms),但吃不满 120fps 的体感优势
|
||
- ⚠️ **稳定性**:5G 信号波动会直接反映到画面码率上
|
||
- **两个前置条件(必须先验证,步骤见第七章)**
|
||
1. 手机热点**下游设备**能否拿到 IPv6 全局地址(部分手机/ROM 默认只共享 IPv4)
|
||
2. 天翼网关是否**放行 IPv6 入站**(默认拦截,这是此前手机 4G 测试失败的最大嫌疑)
|
||
|
||
### 路径 A′(**已确认失败,但保留为长期最优解**):申请公网 IPv4 + 端口转发
|
||
|
||
- 原为 v4 主攻路线,**用户打 10000 申请未成功** —— 运营商不给家宽公网 IPv4
|
||
- 若日后政策松动、或换运营商/换套餐,可立刻复活:拿到公网 IPv4 → 网关端口转发(Sunshine 的 `upnp = enabled` 已开,甚至不用登网关后台)
|
||
- **它是延迟最低、画质最好、对反作弊最友好的方案**,只是当前拿不到
|
||
|
||
### 路径 B(**可立即启用**):腾讯云 frp 中继
|
||
|
||
- 公司端实测**能连 `193.112.118.168:22025`** → **中继通道完全可行**(frp 走任意端口都行)
|
||
- ⚠️ **5 Mbps 是硬伤**:只够 1080p60 @ 4~5 Mbps,画质明显缩水,达不到"画质好"
|
||
- 升级选项与代价:按带宽升级(如 20 Mbps)月费上升;**按流量计费更不可取** —— 1080p120 @ 20 Mbps ≈ **9 GB/小时**,长期串流成本无法承受
|
||
- 定位:**先跑起来、验证链路与手感**的过渡方案,同时等公网 IP
|
||
|
||
### 路径 C(**兜底**):网易UU远程 / ToDesk(两端都已有痕迹)
|
||
|
||
- 10 分钟可用、**不受 CGNAT / 对称 NAT / 端口限制**(走厂商国内中转,且厂商带宽远大于自建中继)
|
||
- 网易UU远程是**专为游戏**设计的远控,比 ToDesk 更贴合"打游戏"场景
|
||
- 延迟约 30–60ms → 办公够用,**打大乱斗团战会有可感知的跟手差异**
|
||
- ⚠️ 反作弊风险最高档(见第五节)
|
||
- 定位:**A 未获批、B 画质不够时的现实选择**,或临时救急
|
||
|
||
### ❌ 已排除
|
||
|
||
| 方案 | 排除原因 |
|
||
|---|---|
|
||
| **Tailscale / ZeroTier 打洞** | ❌ **公司是对称 NAT + 多出口** → 打洞不可行(v3 曾列为次选,v4 判死);退化走境外 DERP 中继延迟极差 |
|
||
| IPv6 直连(**公司有线/WiFi 这条出口**) | 企业网不发 IPv6 —— 🔄 v5 精确化:可用**手机热点**绕过,见路径 A |
|
||
| IPv4 端口转发(**当前状态**) | 家里是 CGNAT,且 **10000 申请公网 IPv4 被拒** → 当前不可用(保留为路径 A′) |
|
||
| **IPv6 隧道类**(HE 6in4 / Teredo / Cloudflare WARP) | 6in4 需放行 **IP 协议 41**(企业防火墙几乎不可能放);Teredo / WARP 回程绕行,延迟 150 ms+ → 办公凑合、**打游戏不可用** |
|
||
| Windows 远程桌面(RDP) | 无 GPU 画面、刷新率锁 30、输入延迟高,不能打游戏 |
|
||
| TeamViewer / AnyDesk | 办公向设计,帧率与延迟都不达标 |
|
||
| 大带宽按流量中继 | 1080p120 约 9 GB/小时,流量成本不可持续 |
|
||
|
||
---
|
||
|
||
## 三、目标参数(**1080p120 定档**)
|
||
|
||
| 用途 | 分辨率 | 帧率 | 编码 | 码率 | 上行占用 |
|
||
|---|---|---|---|---|---|
|
||
| **首发默认** | 1920×1080 | **120** | **H.265** | **22 Mbps** | 47% |
|
||
| 优化后(首选) | 1920×1080 | 120 | **AV1** | 16–18 Mbps | 35–39% |
|
||
| 弱网兜底 | 1920×1080 | 60 | H.265 | 10 Mbps | 22% |
|
||
| 有余力再上 | 2560×1440 | 120 | AV1 | 30 Mbps | 65% |
|
||
| ❌ 不推荐 | 2560×1440 | 170 | AV1 | 45+ Mbps | ~100% |
|
||
|
||
**编码策略**:先用 **H.265** 跑通(兼容性最稳)→ 确认稳定后切 **AV1**(公司端 780M 支持 AV1 硬解,同画质可省约 20–30% 码率,画面更干净)。
|
||
|
||
---
|
||
|
||
## 四、延迟预算(目标 < 35ms)
|
||
|
||
| 环节 | 耗时 | 说明 |
|
||
|---|---|---|
|
||
| 家:采集 + NVENC 编码 | 5–10 ms | 1080p120 H.265/AV1 |
|
||
| 家:上行排队 | 1–3 ms | 码率留 50% 余量时 |
|
||
| 公网往返(家 ↔ 公司) | 8–25 ms | 同城 8–15ms,跨省 20–35ms |
|
||
| 公司:解码 + 渲染 | 3–6 ms | 780M 硬解 |
|
||
| 公司:显示器一帧 | **0–17 ms** | **60Hz 屏 = 16.7ms 硬成本**;144Hz 屏仅 ~7ms |
|
||
| **合计** | **20–45 ms** | 打大乱斗的临界体验线约在 40ms |
|
||
|
||
> 📌 **公司屏刷新率是硬成本**。若是 120/144Hz 屏,务必到「设置-系统-屏幕-高级显示」把刷新率手动调到最高。
|
||
|
||
---
|
||
|
||
## 五、反作弊风险(简版,细节你说稍后再展开)
|
||
|
||
**事实**:腾讯从未公布"用远控会封号"的条款,但社区有**大量十年封禁案例**,理由是"检测到第三方软件",与远控软件在后台高度相关;**"远程操控着玩游戏"被反复指为最高风险场景**。
|
||
|
||
**本机现状不干净**:已存在 ToDesk / 网易UU远程 / MuMu 的虚拟显示驱动,而这些虚拟显示与虚拟输入设备正是 ACE/TP 反作弊的重点扫描特征。
|
||
|
||
**可用的降低手段**(无法归零):
|
||
1. 优先用 **Sunshine**(用户态进程 + 系统 API 注入输入,不装虚拟显示器、不装内核驱动)
|
||
2. 公司端用 **Moonlight 便携版**(不写注册表、不留服务)
|
||
3. 游戏前停用国产远控服务与虚拟显示设备
|
||
4. 绝不用任何宏 / 连点 / 自动化映射
|
||
5. 一个天然优势:游戏看到的仍是**家里的 IP**,不会触发异地登录风控
|
||
|
||
---
|
||
|
||
## 六、实施计划(v3)
|
||
|
||
### Phase 0 · 前置验证(**基本完成**)
|
||
- [x] 家侧硬件与带宽实测(4070S / 7800X3D / 上行 46.36M / 丢包 0%)
|
||
- [x] 判定 IPv4 为 CGNAT
|
||
- [x] **家里 IPv4 NAT 类型复测 → 锥形(端点无关映射 / EIM),打洞可行** ✅(推翻 v2 的"对称 NAT"误判)
|
||
- [x] 确认家侧有公网 IPv6
|
||
- [x] 公司端自测结果回收:**纯 IPv4 网络、无 IPv6**;屏幕 2560×1600@**120Hz**;发现火绒 HIPS + EDR
|
||
- [x] Sunshine 已安装、服务运行、编码器三件套可用、凭据已建、双栈配置已生效
|
||
- [ ] **公司端跑 `net-test-v2.ps1`** ← 唯一还缺的技术验证(见第七节)
|
||
- [ ] **打 10000 号申请公网 IPv4** ← 与上一条并行;零成本,但可能一步解决问题
|
||
|
||
### Phase 1 · 家里端(**只剩电源设置没做**)
|
||
|
||
| 项 | 状态 |
|
||
|---|---|
|
||
| Sunshine v2026.906.222525 | ✅ `C:\Program Files\Sunshine\` |
|
||
| 服务 | ✅ `SunshineService` / LocalSystem / 开机自启 / Running |
|
||
| 编码器 | ✅ `h264_nvenc` / `hevc_nvenc` / **`av1_nvenc`**(含 10-bit) |
|
||
| 管理凭据 | ✅ `admin` / `Sunshine2026` |
|
||
| 双栈监听 | ✅ `address_family = both`,已验证 `[::]:47984 / 47989 / 47990 / 48010` |
|
||
| UPnP | ✅ `upnp = enabled`(**等路径 A 拿到公网 IP 后才有意义**) |
|
||
| 电源与显示器 | [ ] 关闭显示器 = 从不、睡眠 = 从不(否则采集黑屏)← **待你点** |
|
||
|
||
#### ✅ 曾经的阻塞项:Sunshine 默认只监听 IPv4 —— **已解决**
|
||
|
||
安装后实测(2026-09-10):全部监听都是 `0.0.0.0:47984/47989/47990/48010`,IPv6 回环 `::1:47990` 直接被"积极拒绝"(根本没绑定)。
|
||
|
||
**你已在 Web UI 里改好了**,当前 `C:\Program Files\Sunshine\config\sunshine.conf` 内容为:
|
||
|
||
```ini
|
||
address_family = both
|
||
upnp = enabled
|
||
```
|
||
|
||
重启后日志确认两行配置都被正确解析(`config: 'address_family' = both` / `config: 'upnp' = enabled`),监听已变成双栈:
|
||
|
||
```
|
||
TCP [::]:47984 TCP [::]:47989 TCP [::]:47990 TCP [::]:48010
|
||
```
|
||
|
||
> 虽然公司没有 IPv6 让这条路暂时用不上,但**开着双栈没有副作用**,而且以后万一公司网络升级 IPv6,改都不用改。
|
||
|
||
#### Phase 1 已确认的环境事实
|
||
|
||
| 项 | 实测值 |
|
||
|---|---|
|
||
| 安装目录 | `C:\Program Files\Sunshine\` |
|
||
| 配置文件 | `config\sunshine.conf`(安装时为空,0 字节) |
|
||
| 凭据文件 | `config\sunshine_state.json`(创建凭据后生成) |
|
||
| 日志 | `config\sunshine.log`(**排查问题第一现场**) |
|
||
| 显示器 | 2560×1440 @ 170.002Hz,HDR 容器,HAGS 已启用 |
|
||
| Web UI | `https://localhost:47990`(自签名证书,浏览器需点"继续访问") |
|
||
| Web UI API | **HTTP Basic 认证**(`WWW-Authenticate: Basic realm="Sunshine Gamestream Host"`),非 cookie 会话 |
|
||
| 首次设置 API | `POST /api/password`,JSON: `{newUsername, newPassword, confirmNewPassword}` |
|
||
|
||
|
||
### Phase 2 · 打通链路(按路径 A / B 二选一)
|
||
|
||
**路径 A —— 只适用"申请到公网 IPv4"的情况(公司端零安装,最优先)**
|
||
- [ ] 家里:确认网关端口转发生效,或让 Sunshine 的 UPnP 自动映射
|
||
- [ ] 手机 4G 直连验证:`http://公网IP:47990` 能打开 Web UI 即成功
|
||
- [ ] 公司:Moonlight 便携版 → 填 `公网IP:47989` 配对(一次性 PIN)
|
||
|
||
**路径 B —— Tailscale(不依赖电信)**
|
||
- [ ] 家里:装 Tailscale 并登录(需 UAC)
|
||
- [ ] 公司:装 Tailscale 并登录(需管理员;**留意火绒/EDR 弹窗**)
|
||
- [ ] 公司:Moonlight 便携版 → 填**家里的 Tailscale IP(100.x.x.x)**配对
|
||
- [ ] 首测参数 **1920×1080 @ 120 / H.265 / 22 Mbps**,开性能浮层看 encode / network / decode 分项
|
||
|
||
### Phase 3 · 调优
|
||
- [ ] Windows 鼠标加速关闭("提高指针精确度"),缩放 100%
|
||
- [ ] 游戏内:**无边框窗口** + 分辨率与串流一致 + 刷新率"不封顶" + 关垂直同步
|
||
- [ ] Moonlight 关 V-Sync(换更低延迟)
|
||
- [ ] 跑顺后切 AV1,码率降到 16–18 Mbps
|
||
- [ ] 公司屏确认跑在 **120Hz**(实测已是 120Hz,串流时再核一次)
|
||
- [ ] 若走路径 A 且公网 IP 会变,配 DDNS
|
||
|
||
### Phase 4 · 兜底与卫生
|
||
- [ ] 保留 ToDesk(**当前已在用,已验证可用**)与网易UU远程作为应急通道
|
||
- [ ] 需要时在腾讯云部署 WireGuard / DERP 兜底(注意 5 Mbps 限制)
|
||
- [ ] **游戏前停用国产远控服务与虚拟显示设备**(ToDesk / GameViewer / MuMu 的 Virtual Display)
|
||
|
||
---
|
||
|
||
## 七、现在需要你做的事(v5)
|
||
|
||
### ⚠️ 前提:公网 IPv4 申请被拒 → 主攻方向改为「手机热点 + 家里 IPv6 直连」
|
||
|
||
| 路线 | v4 判决 | v5 修订 |
|
||
|---|---|---|
|
||
| IPv6 直连 | ❌ 死(公司无 IPv6) | 🔄 **复活** —— 家里侧条件已全部核实合格,公司侧可借**手机热点**补 IPv6 |
|
||
| P2P 打洞(Tailscale / ZeroTier) | ❌ 死 | ✅ 维持死判(公司对称 NAT + 多出口) |
|
||
| 申请公网 IPv4 | ✅ 主攻 | ❌ **申请被拒** → 降级为"长期最优解"(路径 A′) |
|
||
| 出站端口自由度 | ✅ 意外地好 | ✅ 维持(支撑路径 B 中继可行) |
|
||
|
||
**v5 路线表:**
|
||
|
||
| 优先 | 路线 | 公司端代价 | 能达到的画质 | 卡点 |
|
||
|---|---|---|---|---|
|
||
| **A** | **手机热点补 IPv6 + 家里 IPv6 直连** | **零安装**(只要 Moonlight 便携版) | ✅ **1080p120 满血** | ① 热点下游有无 IPv6 ② 家里网关是否放行入站 |
|
||
| B | 腾讯云 frp 中继(现在就能做) | 零安装 | ⚠️ 仅够 1080p60 | 服务器 5 Mbps |
|
||
| C | 网易UU远程 / ToDesk(兜底) | 零安装 | ⚠️ 延迟 + 反作弊风险 | 无 |
|
||
|
||
---
|
||
|
||
### ① ⭐ 当前最重要:验证 IPv6 路线能否成立(两步,约 10 分钟)
|
||
|
||
家里**已重新起好带日志的监听**(端口 38443,`:::38443 LISTENING` 已确认),下面两步直接决定走哪条路。
|
||
|
||
#### 步骤 1 —— 手机 5G 验证「家里 IPv6 入站是否放行」
|
||
|
||
用**手机(关 WiFi、走 4G/5G 流量)**扫下面这个二维码,或直接在系统浏览器里打开:
|
||
|
||
```
|
||
http://[240e:338:263:3600:29f1:e63f:d476:597e]:38443/
|
||
```
|
||
|
||
> 二维码文件:`ipv6-home-qrcode.png`(我已生成在项目目录,**用系统浏览器扫,别用微信扫一扫**——微信会拦非标端口的 http)
|
||
|
||
| 看到什么 | 含义 |
|
||
|---|---|
|
||
| 页面显示 `IPV6-INBOUND-OK` | ✅ **家里 IPv6 入站是通的** —— 好消息,路子活了 |
|
||
| 一直转圈 / 打不开 | ❌ 大概率是**天翼网关拦了 IPv6 入站** → 看下面 ② |
|
||
|
||
> 打不开也没关系:**家里服务端有访问日志**,我能判断请求到底有没有到达 —— 只要你告诉我"试过了"即可。
|
||
|
||
#### 步骤 2 —— 手机热点验证「公司笔记本能否拿到 IPv6」
|
||
|
||
这一步决定这条路的上限(能不能真的在公司上网):
|
||
|
||
1. 手机**开热点**(进热点设置确认 **IPv6 / 流量共享** 是开的;部分国产 ROM 默认只共享 IPv4)
|
||
2. **公司笔记本连上这个热点**(先断开公司 WiFi 或让热点优先)
|
||
3. 跑我准备好的脚本 `hotspot-ipv6-test.ps1`(**已放在家里桌面** `C:\Users\xxl\Desktop\`,用 ToDesk 文件传输拉到公司电脑 —— 别复制粘贴文本)
|
||
4. 结果会自动写到公司电脑桌面 `hotspot-ipv6-result.txt`,发我
|
||
|
||
> 脚本是**纯 ASCII、无 BOM**,免疫复制粘贴损坏;它一次就把"有没有 IPv6 + 能不能连到家里"两件事都测了。
|
||
|
||
#### 两步的四种组合 → 直接决定走哪条路
|
||
|
||
| 步骤1(手机直连家里) | 步骤2(笔记本有 IPv6) | 结论与下一步 |
|
||
|---|---|---|
|
||
| ✅ | ✅ | 🎉 **全通** → 直接进 Phase 2 配对,**1080p120 满血**,成本只有流量 |
|
||
| ✅ | ❌ | 手机热点不给下游 IPv6 → 改用 **USB 共享 / 蓝牙共享**,或退路径 B 中继 |
|
||
| ❌ | ✅ | 家里网关拦入站 → 按 ② 放行网关 IPv6 防火墙 |
|
||
| ❌ | ❌ | 两条都堵 → 走路径 B(腾讯云中继);或再争取公网 IPv4 / 换运营商 |
|
||
|
||
---
|
||
|
||
### ② 若卡在「家里网关拦 IPv6 入站」:三种放行办法
|
||
|
||
天翼网关**默认拦截 IPv6 入站**(IPv6 无 NAT,安全性全靠网关防火墙),这是此前手机测试失败的最大嫌疑。
|
||
|
||
| 办法 | 操作 | 可行性 |
|
||
|---|---|---|
|
||
| **1. 网关里关 IPv6 防火墙** | 登录 `192.168.1.1` → 安全 / 防火墙 → **IPv6 防火墙** → 关闭或调成"低" | 天翼网关多数型号有此开关;**需要后台密码**(找回阶梯见 §1.4) |
|
||
| **2. 光猫改桥接 + 自备路由器** | 让天翼网关只做光猫,用你自己的路由器 PPPoE 拨号 → 完全掌控 IPv6 防火墙与端口放行 | 最彻底,但**改错会全屋断网**,务必在家时操作 |
|
||
| **3. 退路径 B** | 不做入站放行,改用腾讯云中继 | 一定能通,但画质降到 1080p60 |
|
||
|
||
> ⚠️ **安全提醒**:IPv6 是"无 NAT 直通" —— 放行意味着那个地址**所有端口都对公网可见**。建议只放行串流必要端口(`47984-48010` / `47989` / `48010`),用完可关。别把 Windows 的 `445` / `3389` 之类暴露出去。
|
||
|
||
---
|
||
|
||
### ③ 提前准备:流量(步骤 2 通过的话)
|
||
|
||
- 1080p120 @ 20 Mbps ≈ **9 GB/小时**;打 3 小时 ≈ 27 GB
|
||
- **建议单独办一张大流量副卡**(或用现有套餐先试一晚测准真实消耗)
|
||
- 流量吃紧时的降档方案:1080p60 @ 8 Mbps ≈ 3.6 GB/小时(画质换成本)
|
||
|
||
---
|
||
|
||
### ④ 顺手把家里电源设置改掉(1 分钟)
|
||
|
||
`设置 → 系统 → 电源和电池 → 屏幕和睡眠`:**关闭屏幕 = 从不**、**睡眠 = 从不**。否则人不在家时显示器关闭会导致采集黑屏。
|
||
|
||
---
|
||
|
||
### ① ToDesk 连接方式 —— ✅ **已由 AI 从被控端反查完成,你不用再找状态栏**
|
||
|
||
你反馈"找不到状态栏"(新版 ToDesk 把 P2P / 中转标识收进了设备详情面板,确实不好找)。我改用更硬的办法:**直接在家里主机的进程层面抓 ToDesk 的实时连接**,结论见 §1.6。摘要:
|
||
|
||
| 抓到什么 | 说明 |
|
||
|---|---|
|
||
| 只与 ToDesk 自家服务器 (`219.151.138.225:443/8080`、`118.24.225.33:443`) 保持 TCP 长连接 | 走厂商侧 |
|
||
| 与公司出口 `117.188.24.89` **无任何 TCP 直连记录** | 至少 TCP 层没有直连 |
|
||
| 文件传输会话 `planb:1 ... p2p:0` | 该会话明确走**中转** |
|
||
| ✅ **但公司能出站到 8080 非标端口** | **重要利好**(说明不是 80/443 白名单) |
|
||
|
||
**这一项已完成,不用再花时间找界面标识。** 真正还缺的是 UDP 侧的硬数据 → 见 ②。
|
||
|
||
### ② 公司网络实测 —— ✅ **已完成**(`net-test-v2.ps1` 结果已回)
|
||
|
||
脚本跑通,原始结果见 `net-test-v2_20260910_163314.txt`。核心数据:
|
||
|
||
| 测试项 | 结果 | 判决 |
|
||
|---|---|---|
|
||
| IPv6 | `IPv6 local : NONE` | ❌ 纯 IPv4 |
|
||
| **TCP 出站** | `baidu:443` / `qq:443` / `aliyun:80` / `portquiz:443,8080,8443` **全 OPEN**;**你腾讯云的 `80/443/22025` 也全 OPEN** | ✅ **任意端口出站自由** |
|
||
| UDP 出站 | 多台 STUN 均收到回包(`stun.qq.com` 超时是它自身问题) | ✅ UDP 能出能回 |
|
||
| **NAT 类型** | 同一本地端口 `46001` 问不同 STUN → 映射端口 `16993 / 16994 / 17011 / 43681` **各不相同**;出口 IP 出现 `117.188.24.89` 与 `117.188.118.254` **两个** | ❌ **对称 NAT + 多出口 → 打洞不可行** |
|
||
| 管理员权限 | 当前会话非管理员,但账号 `ybtdevxxl` **在 Administrators 组内** | ⚠️ 可提权(点 UAC 即可) |
|
||
| 已装软件 | `Clash Verge` / `WireGuard` / `ToDesk` / 火绒 | 🎁 WireGuard 现成(但打洞已判死,用处有限) |
|
||
| 安全软件 | **火绒 `HipsDaemon` + `HRWSCCtrl` 运行中**;`aTrust` / `edr_monitor` / `savsvc` / Defender 全系 **Stopped** | ⚠️ 火绒会拦驱动;但**无强制 EDR 管控**(好消息) |
|
||
|
||
> 这轮也验证了 v2 脚本的价值:v1 报的"端口白名单"确是误判,v2 用真实靶子测出**出站完全自由** —— 这条结论直接支撑了路径 B(frp 中继)的可行性判断。
|
||
|
||
### ⑤(可选,长期)公网 IPv4 仍值得换个渠道再试一次
|
||
|
||
被拒不代表永久关闭。它是**延迟最低、画质最好、不依赖任何第三方**的方案,值得换个说法/渠道再争取:
|
||
|
||
| 渠道 | 话术 / 要点 |
|
||
|---|---|
|
||
| 再打 10000 | 换时段、换客服;说法改成:"现在分到 `100.64` 开头的内网地址,**公司 VPN 连不回家里的 NAS**,需要公网 IP 才能访问" |
|
||
| 小翼管家 App | 部分地区有自助申请入口,比电话更快 |
|
||
| 线下营业厅 | 当面申请,权限通常比电话客服大 |
|
||
| 换运营商 / 换套餐 | 移动、联通在部分地区对公网 IP 更宽松;也可直接问"企业宽带"报价 |
|
||
| 工信部申诉 | **最后手段**(CGNAT 用户申请公网 IP 属合理诉求),耗时长,前三招先走完 |
|
||
|
||
> 一旦拿到公网 IPv4,**立刻切回路径 A′** —— 那才是这个方案的最优形态(零第三方、延迟最低、公司端零安装)。
|
||
|
||
### 附:原 v4 的申请话术(留档)
|
||
|
||
> "我家里需要在外网访问自己的监控和 NAS,现在分到的是 100.64 开头的内网地址,能不能帮我换成公网 IP?"
|
||
|
||
> 申请时**强调"不用开网站、不需要备案域名",纯自用监控 / NAS**,通过率更高。
|
||
|
||
---
|
||
|
||
## 附 C:v2 阶段的 IPv6 入站验证过程(已完成,留存备查)
|
||
|
||
### ① 手机测 IPv6 入站(1 分钟,决定性)
|
||
家里当前**已开着临时监听**(端口 38443,**带访问日志版**)。请:
|
||
|
||
1. 手机关掉 WiFi,**用 4G/5G 流量**
|
||
2. 浏览器打开:
|
||
```
|
||
http://[240e:338:263:3600:e591:cb62:3503:8a23]:38443/
|
||
```
|
||
3. 看到 `IPV6-INBOUND-OK` → ✅ **网关放行 IPv6 入站,走路径 1(最优)**
|
||
打不开 / 超时 → 网关拦了入站,走路径 2(打洞),或登录网关放行
|
||
|
||
> 注意:**不要用 ping 判断**。Windows 默认拦掉 ICMPv6 入站,ping 不通不代表 IPv6 不可用,必须用这个 TCP 测试。
|
||
|
||
**日志验证法(本次新增,用于排除误判)**
|
||
|
||
监听会把每个到达的请求写入日志,因此判定不依赖手机浏览器是否正确渲染:
|
||
|
||
| 现象 | 日志 | 判定 |
|
||
|---|---|---|
|
||
| 手机看到 `IPV6-INBOUND-OK` | 有记录 | ✅ 入站通 |
|
||
| 手机页面打不开 | **有记录** | ✅ 入站通(只是浏览器/网速问题) |
|
||
| 手机页面打不开 | **无记录** | ❌ 入站被网关拦截 |
|
||
|
||
日志文件:`%TEMP%\wb_ipv6test\inbound.log`(形如 `[2026-09-10T07:42:50Z] REQ from=<手机地址> ...`)
|
||
|
||
> 监听进程随会话结束可能失效。**测试前若间隔较久,让 AI 重新起一次**(几十秒即可)。
|
||
> 另:之前那个残留在 38080 端口的旧监听本次已成功清理,端口已释放。
|
||
|
||
#### ⚠️ 日志法的一个重要局限(本次踩坑,2026-09-10 修正)
|
||
|
||
临时监听是用 `http.createServer` 实现的,**只在收到完整 HTTP 请求时才写日志**。
|
||
因此:**纯 TCP 探测(如 ping.pe 的端口检查)只做三次握手、不发 HTTP 请求,连接成功也不会留下日志。**
|
||
|
||
结论:**"ping.pe 显示 Connected" 与 "日志无记录" 可以同时成立,二者不矛盾**。
|
||
- 判断"TCP 层是否可达" → 看 ping.pe / itdog 等外部探测结果
|
||
- 判断"HTTP 层是否可达" → 看日志 + 手机浏览器实际渲染
|
||
|
||
#### 本次实测记录(2026-09-10)
|
||
|
||
| 时间 | 测试方式 | 结果 | 有效? |
|
||
|---|---|---|---|
|
||
| 15:42 | 本机 PowerShell 访问公网地址(内网回环) | HTTP 200,日志有记录 | 仅证明本机自通 |
|
||
| ~15:50 | 手机 **连 WiFi** 访问 | 打不开 | ❌ 无效(手机此时无 IPv6,且走回环易误判) |
|
||
| ~15:55 | 手机 **4G/5G** 访问 | 页面无响应、不报错;**日志无记录** | ✅ 有效,HTTP 层未到达 |
|
||
| ~16:00 | 手机扫码 **tcp6.ping.pe** 探测 | 用户反馈"通了" | ✅ TCP 层可达(待复核细节) |
|
||
|
||
**综合判定**:**外网 → 家里的 TCP 层大概率可达**(ping.pe 探测),
|
||
但手机浏览器的 HTTP 请求未到达 —— 二者差异可能来自手机侧(运营商 IPv6 路由 / 浏览器限制非标端口 http)。
|
||
**下一步用真实业务端口复核**:Sunshine 装好后,用 Moonlight 直接从公司连,成不成是最终标准。
|
||
(Sunshine 用 47989/47984/48010 等端口,与 38443 不同,网关若做端口白名单需另放行。)
|
||
|
||
### ② 把自测脚本带到公司电脑跑一遍(**旧版,已跑完,已被 `net-test-v2.ps1` 取代**)
|
||
文件:`公司电脑网络自测.ps1`(同目录)
|
||
|
||
```
|
||
先在开始菜单打开 Windows PowerShell,然后:
|
||
powershell -ExecutionPolicy Bypass -File "公司电脑网络自测.ps1"
|
||
```
|
||
|
||
它会输出一台设备「能不能支撑远程串流」的完整画像,重点看三行:
|
||
- `IPv6 出网 : ...` → 决定能否走 IPv6 直连
|
||
- `STUN ... -> 通` 与 `NAT 判断 : ...` → 决定打洞可行性
|
||
- `家里 IPv6:38443 -> ...` → 若这行是"通",说明**从公司到家里已经打通了**
|
||
|
||
---
|
||
|
||
## 附 A:端口与命令
|
||
|
||
```powershell
|
||
# Sunshine 需要的入站规则(安装时一般会自动创建,失败时手动补)
|
||
New-NetFirewallRule -DisplayName "Sunshine TCP" -Direction Inbound -Protocol TCP -LocalPort 47984,47989,47990,48010 -Action Allow
|
||
New-NetFirewallRule -DisplayName "Sunshine UDP" -Direction Inbound -Protocol UDP -LocalPort 47998-48000,48002 -Action Allow
|
||
|
||
# Moonlight 命令行示例(1080p120 / 22Mbps)
|
||
moonlight stream <家里IPv6> "Desktop" -1080 -120fps -bitrate 22000
|
||
|
||
# Moonlight 快捷键
|
||
# Ctrl+Alt+Shift+S 性能浮层 Ctrl+Alt+Shift+Z 切换鼠标捕获 Ctrl+Alt+Shift+Q 退出串流
|
||
```
|
||
|
||
**已知坑**
|
||
- 显示器进入睡眠 → Sunshine 抓不到画面、串流黑屏,务必关闭显示器休眠
|
||
- 多显示器时需指定 `output_name`,指错会串到错误屏幕或全黑
|
||
- 独占全屏可能因分辨率切换导致采集中断 → 统一用"无边框窗口"
|
||
- 若走端口转发(本方案用不到),务必改非默认端口 + Sunshine Web UI 用强密码
|
||
|
||
## 附 B:工程备注(本机探测踩过的坑)
|
||
|
||
- 本机 PowerShell 工具的 stdout 会被吞掉 → 需要把结果 `Out-File` 落盘再用 Read 读
|
||
- PowerShell 里 `[byte] -shl 8` 会溢出归零,字节拼 16 位整数必须先 `[int]` 转换
|
||
- 用 `Get-Content -Raw` + `Out-File` 加 BOM 会把 UTF-8 中文按 GBK 解码后重写而**永久损坏文件**;加 BOM 应使用字节级操作 `WriteAllBytes` 前置 `EF BB BF`
|
||
- 本机 PATH 被裁剪,脚本里调用 `ping` / `netsh` 会找不到 → 用 `$env:SystemRoot\System32\` 绝对路径
|
||
- 一批防火墙入站规则指向的 node.exe 路径已不存在(失效规则),`C:\Users\xxl\AppData\Roaming\nvm\v23.0.0\node.exe` 才有有效的 Public 档全端口放行规则
|
||
- **"从外部验证 IPv6 入站"没有可用的自动化手段**(2026-09-10 实测全部失败),必须用真实外部设备(手机 4G)验证:
|
||
- `check-host.net` API:`check-tcp` 对 IPv6 一律返回 `{"error":"invalid_url"}`(带/不带方括号、带 http:// 前缀都试过)
|
||
- `ping.pe` / `tcp6.ping.pe`:接受 IPv6 目标,但结果是 **JS 异步渲染**,静态抓取只能拿到 `Connecting to ...` 与 `Snapshot readiness: waiting_for_results`
|
||
- 公共 CORS 代理(codetabs / allorigins / corsproxy / thingproxy / Jina Reader):要么 522、要么需要 API key、要么直接被 GFW 拦截
|
||
- `hackertarget.com/nmap`:已改为需要 API key
|
||
- 因此本项目采用**「手机 TCP 测试 + 服务端访问日志」双证据**方式判定入站可达性
|
||
|
||
### ⚠️ 附 B 补充(v3,2026-09-10):两个"看起来专业、其实是错的"测试陷阱
|
||
|
||
这两条是本项目**已经踩过并已修正**的坑,以后再写网络探测脚本必须避开:
|
||
|
||
**陷阱 1:NAT 类型判定 —— 每个 STUN 换一个新 socket**
|
||
- ❌ 错误做法:`for each stun: 新建 socket → sendto → 看映射端口`。因为**本地端口每次都变了**,运营商/网关必然分配不同的公网映射端口 —— 这是任何 NAT 类型都会出现的结果,**不能推出"对称 NAT"**
|
||
- ✅ 正确做法:**同一个 socket(同一个本地端口)连续问多个 STUN 服务器**,比较映射端口是否一致:
|
||
- 一致 → 端点无关映射(Cone / EIM)→ 打洞可行
|
||
- 不一致 → 对称 NAT → 打洞难
|
||
- 本项目实测(正确方法):本地 55001 → 恒为 `1.204.100.17:3051`;55002 → 恒为 `:3063` → **结论是锥形 NAT,v2 的"对称 NAT"是误判**
|
||
|
||
**陷阱 2:判断"端口白名单"时用了根本没在监听的靶子**
|
||
- ❌ 错误做法:连 `114.114.114.114:8080` 失败 → 就断定"公司封了非标端口"。实际上**那个 DNS 服务器压根没开 8080**,失败是必然的,跟防火墙无关。同理 `github.com:443` 在国内常被 DNS 污染/阻断,也**不能**作为"443 被封"的证据
|
||
- ✅ 正确做法:用**确定在监听该端口**的靶子,且最好有"全端口监听"型服务:
|
||
- `www.baidu.com:443`、`www.qq.com:443`(国内基线,验证 443 是否真的可用)
|
||
- `portquiz.net`(**监听所有 TCP 端口**,在它上面测 8080/8443 才有意义)
|
||
- 自有服务器 `193.112.118.168:80/443`(nginx 确实在监听)
|
||
- 判别逻辑:`REFUSED`(立即拒绝)= **路径是通的**,只是对端没开这个端口;`TIMEOUT`(一直等)= **真的被拦或丢包**
|
||
|
||
**陷阱 3(方法论):日志监听只能证明 HTTP 层,不能否定 TCP 层**
|
||
- `http.createServer` 只在收到完整 HTTP 请求时写日志。纯 TCP 端口探测(三次握手即断)**成功也不会留痕**
|
||
- 所以"探测显示 Connected"与"日志空白"可以同时为真,**不可据此判定入站被拦**
|