日常教程丨远程串流打游戏方法介绍(Parsec/Tailscale+Headscale+DERP+Sunshine&Moonlight)

远程串流打游戏方法介绍

主要介绍两种方法:

  1. Parsec
  2. Tailscale + Headscale(可选)+ DERP + Sunshine & Moonlight

Parsec

Parsec 一款远程桌面软件。

特点

  1. 主要基于 P2P 技术连接,这一点好处/坏处都很显然
  2. 需要官网注册后使用

优点

  1. 可以他人远程到自己电脑上一起玩本地多人游戏
    1. 可以管理其他人连接的权限(例如硬件控制范围:键盘/鼠标/手柄)
    2. 可以设置连接质量(例如画质/帧率)
  2. 网络情况好下,延迟和画质水平都很不错
  3. 注册账号即可免费使用绝大部分重要功能

缺点

  1. 只有英文
  2. 在复杂的网络环境下可能连接失败(例如 NAT 穿透失败,本人已经遇见过,后续会提供可能的解决方案,但难度高且效果不保证)
  3. 没有 iOS / iPadOS 版本

操作

比较简单就不多提了,见 官网

Tailscale + Headscale(可选)+ DERP(可选) + Sunshine & Moonlight

介绍:

  1. Tailscale 是一个基于 WireGuard 的零配置 VPN 服务,提供了简单的点对点连接和 NAT 穿透功能。
    此处用法主要用到其虚拟组网的方式完成内网穿透,以进行远程串流。
  2. Headscale 是一个开源的 Tailscale 服务器实现,可以让你自己搭建 Tailscale 网络的控制面。
    Tailscale 主要部分都开源,不过其控制面闭源,考虑到其控制面在外网,而可能有各种相应的可以预见的问题,而 Headscale 则是开源的 Tailscale 控制面实现。
    因此如果有具有公网 IP 的服务器(最好有绑定域名),推荐研究一下 Headscale 进行搭建。
  3. DERP 是一个开源的 TURN 服务器实现,可以帮助穿透 NAT 和防火墙。
    Tailscale 使用 DERP 服务器作为备用路径,当直接的 P2P 连接失败时,流量会通过 DERP 服务器中转。
    而官方的 DERP 服务器具有与其控制面类似的问题,因此如果你的服务器具有不错的带宽条件,也可以尝试搭建 DERP 服务器,帮助 Tailscale 获取更可靠的 fallback 连接。
  4. Sunshine 是一个开源的游戏串流软件,可以与 Moonlight 配合使用,实现低延迟的游戏串流。
  5. Moonlight 是一个开源的游戏串流客户端,可以接收 Sunshine 发送的游戏视频流,并将输入事件发送回 Sunshine。

使用场景及其效果

分本人的使用场景:

  1. 寝室内网环境:
    在床上用 iPad 或者 Macbook Air 连接寝室的游戏本进行游戏,延迟和画质都很优秀。
    本人寝室网络环境就是一个简单的某米千兆路由器,很便宜了。
  2. 外部网络环境:
    5G / 其他 Wifi 网络环境下,通过 iPhone / iPad / 笔记本 连接寝室游戏本进行游戏,质量可能稍差一些。

部署

1. Tailscale 使用(基础组网)
  1. 注册并登录 Tailscale(支持第三方授权登录)。
  2. 在所有设备上安装客户端并登录同一账号。
  3. 设备会自动加入同一虚拟局域网,并分配 100.x.x.x 虚拟 IP,后续可直接用该 IP 通信。

注意:iOS、iPadOS APP Store 国区中没有 Tailscale

2. Sunshine + Moonlight 使用(串流层)
  1. 服务端(游戏本) 安装 Sunshine,并通过浏览器进入管理控制台(默认 https://localhost:47990)。
  2. 在 Sunshine 中配置应用、编码器(如 NVENC/AMF/QuickSync)与分辨率档位。
  3. 客户端(手机/平板/轻薄本) 安装 Moonlight。
  4. 确保双方已通过 Tailscale 处于同一虚拟局域网,Moonlight 自动发现 Sunshine;如未自动发现,手动填入服务端的 Tailscale 虚拟 IP。
  5. Moonlight 发起连接后会显示 PIN 码,在 Sunshine 控制台输入确认完成配对。

Sunshine 配置建议:由于本人电脑连着显示屏,并且以显示屏为主显示器,因此默认 Sunshine 会使用显示屏进行串流。

可以考虑配置:配置-Audio/Video-显示器Id 为笔记本的 Id(可以在 故障排除-日志 中找到)

并且进行如下配置 配置-Audio/Video-高级显示设置选项

3. (可选进阶)Headscale 部署及使用(自建控制面)

目标:将控制面从官方服务切换为自建 Headscale,以提升稳定性和可控性。

  1. 服务器准备 :一台公网服务器 + 绑定域名(示例:controlplane.example.com)。

  2. Headscale 原生部署 :采用 systemd 方式运行,监听本地端口(示例:127.0.0.1:9080)。

  3. Nginx 反代配置(关键点是正确传递协议头):

    nginx 复制代码
    location / {
         proxy_pass http://127.0.0.1:9080; # 这里本人因 8080 被占用换成了 9080
         proxy_set_header X-Forwarded-Proto https; # 核心:告知后端真实协议为 https
         proxy_set_header Host $host;
    }
  4. 客户端接入 Headscale

    1. iOS / iPadOS:Accounts-右上角 Advanced Login Options-Use a custom coordination server
      填入 https://controlplane.example.com,并执行登录。
      如果顺利,会拉起页面获取一条指令,在控制面服务器上执行该指令完成配对。
    2. 其他平台类似
    3. 对于无头设备(例如在 Linux 终端内),可以先在 Headscale 服务端生成一个认证密钥,然后通过密钥来认证,可以免去上面再服务器上执行配对指令的步骤。
4. (可选进阶)DERP 部署及使用(自建中继)

目标:在 NAT 穿透失败时,让流量回退到自建 DERP 中继,降低外部网络连接的延迟。

  1. 容器化部署 :使用 Docker 镜像(如 fredliang/derper),直接暴露端口:

    • TCP 7443(DERP TLS)
    • UDP 3478(STUN)

    docker-compose.yml 示例:

    yaml 复制代码
    services:
    derper:
        image: fredliang/derper:latest
        container_name: tailscale-derp
        restart: always
        ports:
        - "7443:7443"       # 自定义中继端口
        - "3478:3478/udp"   # STUN 打洞端口
        volumes:
        # 直接挂载 Nginx 现有证书,并在容器内改名以符合 DERP 期望
        - /home/username/nginx/ssl/example.com.fullchain.pem:/app/certs/derp.example.com.crt:ro
        - /home/username/nginx/ssl/example.com.key:/app/certs/derp.example.com.key:ro
        # 挂载宿主机 Tailscale Socket 用于安全验证
        - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
        environment:
        - DERP_DOMAIN=derp.example.com
        - DERP_CERT_MODE=manual
        - DERP_ADDR=:7443

    补充:本人域名通过 acme.sh 申请证书,具体请搜索相关教程

  2. 证书直挂容器 :将宿主机证书只读映射进容器,启用手动证书模式(示例域名:derp.example.com)。

  3. 避坑一:不要用 Nginx Stream 代理

    • 该方案会引发 双重 TLS 握手冲突 ,导致客户端报 no-derp-connection
    • 正确做法是让 DERP 容器直接接管 TLS。
  4. 避坑二:DERP 映射表不要写 IP

    • derp.yamlhostname 必须是纯域名,不能包含 IP。
    • 否则客户端会用 IP 握手,触发证书域名不匹配(cert mismatch)。
  5. 维护顺序(关键工作流)

    1. 容器更新:docker-compose down && docker-compose up -d
    2. 代理与控制层:重载 Nginx、重启 Headscale
    3. 客户端重置:tailscale up --login-server https://controlplane.example.com --reset
相关推荐
Soari1 小时前
GitHub 开源项目解析:EveryInc/compound-engineering-plugin —— 让 AI 编程从“一次性生成”走向“持续复利工程”
人工智能·开源·github·claude code
暂未成功人士!1 小时前
ROS 核心知识点和常用的命令行详细总结
linux·操作系统·ros
ICT系统集成阿祥1 小时前
防火墙威胁告警溯源源 IP 完整方法(华为 USG / 华三 SecPath 通用)
网络·tcp/ip·华为
像我这样帅的人丶你还1 小时前
🚀🚀🚀2026年还不会Nginx?
前端·nginx
xixixi777771 小时前
Hugging Face 开源模型供应链安全平台、AI 数据隐私保护法草案发布:AI 安全合规进入技术 + 法律双驱动阶段
大数据·人工智能·安全·ai·开源·大模型·智能体
KaMeidebaby1 小时前
卡梅德生物技术快报|组蛋白乙酰化修饰调控动脉粥样硬化的分子机制及中药表观干预研究
网络·人工智能·网络协议·tcp/ip·算法
好好风格1 小时前
微软这个 14 万星工具,把 PDF、PPT、Excel 都变成大模型爱读的 Markdown
人工智能·python·开源
念恒123061 小时前
进程间通信
linux·服务器·网络
tang7451639621 小时前
Huawei Cloud EulerOS 2.0(x8664)安装OpenJDK 2120260323
linux·运维·centos