workbuddy.xpcool.com/远程游戏串流方案_家到公司.md

711 lines
48 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 家庭主机远程串流方案(公司电脑 → 家里主机)
> **目标**:在公司电脑上远程控制家里主机,能正常游玩《英雄联盟》快节奏娱乐模式(海克斯大乱斗类,团战密集、吃操作延迟)。
> **版本**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必须确认套餐余量或办一张大流量副卡 |
| **延迟代价** | 预计 **4070 ms** | 5G 空口 + 跨网(手机运营商 → 电信。LOL 可接受(普通玩家本身 3050 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 7800X3D8C/16T | 游戏性能强,编码走 NVENC 不占 CPU |
| 内存 | 31.2 GB | 充足 |
| 系统 | Windows 11 专业版 build 26200 | Sunshine / Moonlight 官方良好支持 |
| 显示器 | AOC **2560×1440 @ 170Hz** | 可输出 2K 高刷;但按 1080p120 定档更稳 |
| 网卡 | Realtek 2.5GbE,链路 1GbpsIP `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`** | ⚠️⚠️ **运营商级 NATCGNAT实锤** |
| 出口 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/16TZen4 | 性能远超解码需求 |
| 核显 | **AMD Radeon 780M**RDNA3 / PhoenixVCN 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"的白名单防火墙。若家里将来有公网 IPv4Sunshine 的 `47989/47990/48010` 这些端口公司大概率能直连;腾讯云 frp 中继(任意端口)也具备可行性。
2. ⚠️ ToDesk **TCP 层没有与公司出口 IP 的直连**,且文件传输会话为 `planb:1 ... p2p:0`走中转。UDP 是无连接的、从端点列表看不到对端,所以**不能据此断定打洞失败**,但至少没有直连证据 → 打洞方案(路径 B的信心下调。
> 附带发现:家里这台主机的 IPv6 地址有**多个轮换的隐私扩展地址**(同一前缀下 3 条)。这印证了"IPv6 直连必须配 DDNS"的判断(不过该路线已被公司端否决,仅留档)。
---
## 二、方案选型v5 定案)
**先看硬约束 —— 它们决定一切:**
| 约束 | 事实 | 影响 |
|---|---|---|
| 家里无公网 IPv4 | CGNATtracert 第 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 空口 + 跨网(手机运营商 → 电信),预计 **4070 ms**。LOL 可接受(普通玩家本身 3050 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 更贴合"打游戏"场景
- 延迟约 3060ms → 办公够用,**打大乱斗团战会有可感知的跟手差异**
- ⚠️ 反作弊风险最高档(见第五节)
- 定位:**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** | 1618 Mbps | 3539% |
| 弱网兜底 | 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 硬解,同画质可省约 2030% 码率,画面更干净)。
---
## 四、延迟预算(目标 < 35ms
| 环节 | 耗时 | 说明 |
|---|---|---|
| 家:采集 + NVENC 编码 | 510 ms | 1080p120 H.265/AV1 |
| 家:上行排队 | 13 ms | 码率留 50% 余量时 |
| 公网往返(家 ↔ 公司) | 825 ms | 同城 815ms跨省 2035ms |
| 公司:解码 + 渲染 | 36 ms | 780M 硬解 |
| 公司:显示器一帧 | **017 ms** | **60Hz 屏 = 16.7ms 硬成本**144Hz 屏仅 ~7ms |
| **合计** | **2045 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.002HzHDR 容器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 IP100.x.x.x**配对
- [ ] 首测参数 **1920×1080 @ 120 / H.265 / 22 Mbps**,开性能浮层看 encode / network / decode 分项
### Phase 3 · 调优
- [ ] Windows 鼠标加速关闭("提高指针精确度"),缩放 100%
- [ ] 游戏内:**无边框窗口** + 分辨率与串流一致 + 刷新率"不封顶" + 关垂直同步
- [ ] Moonlight 关 V-Sync换更低延迟
- [ ] 跑顺后切 AV1码率降到 1618 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 用真实靶子测出**出站完全自由** —— 这条结论直接支撑了路径 Bfrp 中继)的可行性判断。
### ⑤(可选,长期)公网 IPv4 仍值得换个渠道再试一次
被拒不代表永久关闭。它是**延迟最低、画质最好、不依赖任何第三方**的方案,值得换个说法/渠道再争取:
| 渠道 | 话术 / 要点 |
|---|---|
| 再打 10000 | 换时段、换客服;说法改成:"现在分到 `100.64` 开头的内网地址,**公司 VPN 连不回家里的 NAS**,需要公网 IP 才能访问" |
| 小翼管家 App | 部分地区有自助申请入口,比电话更快 |
| 线下营业厅 | 当面申请,权限通常比电话客服大 |
| 换运营商 / 换套餐 | 移动、联通在部分地区对公网 IP 更宽松;也可直接问"企业宽带"报价 |
| 工信部申诉 | **最后手段**CGNAT 用户申请公网 IP 属合理诉求),耗时长,前三招先走完 |
> 一旦拿到公网 IPv4**立刻切回路径 A** —— 那才是这个方案的最优形态(零第三方、延迟最低、公司端零安装)。
### 附:原 v4 的申请话术(留档)
> "我家里需要在外网访问自己的监控和 NAS现在分到的是 100.64 开头的内网地址,能不能帮我换成公网 IP"
> 申请时**强调"不用开网站、不需要备案域名",纯自用监控 / NAS**,通过率更高。
---
## 附 Cv2 阶段的 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 补充v32026-09-10两个"看起来专业、其实是错的"测试陷阱
这两条是本项目**已经踩过并已修正**的坑,以后再写网络探测脚本必须避开:
**陷阱 1NAT 类型判定 —— 每个 STUN 换一个新 socket**
- ❌ 错误做法:`for each stun: 新建 socket → sendto → 看映射端口`。因为**本地端口每次都变了**,运营商/网关必然分配不同的公网映射端口 —— 这是任何 NAT 类型都会出现的结果,**不能推出"对称 NAT"**
- ✅ 正确做法:**同一个 socket同一个本地端口连续问多个 STUN 服务器**,比较映射端口是否一致:
- 一致 → 端点无关映射Cone / EIM→ 打洞可行
- 不一致 → 对称 NAT → 打洞难
- 本项目实测(正确方法):本地 55001 → 恒为 `1.204.100.17:3051`55002 → 恒为 `:3063`**结论是锥形 NATv2 的"对称 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"与"日志空白"可以同时为真,**不可据此判定入站被拦**