Sunshine 是一款轻量、开源的游戏串流​服务端​​软件,Moonlight 则是其互补的客户端方案。相比其他串流方案,​​二者能显著降低延迟并提升画质表现​。传统 IPv4 网络​​常受限于 NAT 配置,导致串流部署复杂化​​,而 IPv6 的​​原生公网直连特性(无需 NAT 穿透)​彻底解决了这一难题。本文​​将演示​​如何在 IPv6 环境下​​免配置端口映射​,​​快速实现​​ Sunshine + Moonlight ​​串流系统的部署​​。

环境准备

项目 说明
主机系统 Windows / Linux
Sunshine版本 2025.122.141614 或更新
客户端 Moonlight(iOS / Android / Windows / macOS / Linux)
网络环境 IPv6 公网

检查 IPv6

Windows

打开 PowerShell 或 cmd,输入:

ipconfig

如果输出中有类似以下内容,说明启用了 IPv6:

以太网适配器 以太网:

IPv6 地址. . . . . . . . . . . . : 240e:1234:abcd::1
本地链接 IPv6 地址. . . . . . . .: fe80::xxxx:xxxx:xxxx:xxxx%xx

image.png

Linux

终端通过 ip addr 命令来查询 IPv6 地址

ip addr | grep inet6

如果看到输出如下,说明有 IPv6

inet6 240e:1234:abcd::1/64 scope global dynamic
inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link

image.png

安装 Sunshine

Sunshine 的 Github 仓库为 Sunshine
下载网址 Sunshine Releases

Linux

包管理器安装

Debian / Ubtuntu

Debian / Ubuntu 发行版可以直接使用 APT 包管理器进行安装。

sudo apt update
sudo apt install sunshine

如果遇到依赖问题(如 miniupnpc),可先执行:

sudo apt --fix-broken install

也可以从 Github 下载 deb 包来安装,以 Ubuntu 为例:

# 下载 Ubuntu 24.04 版本
wget https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine-ubuntu-24.04-amd64.deb
# 安装 Sunshine
dpkg -i sunshine-ubuntu-24.04-amd64.deb

Debian 版本的也是类似:

https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine-debian-bookworm-amd64.deb
dpkg -i sunshine-debian-bookworm-amd64.deb

如果下载慢或者下载失败,可以使用 Github 镜像站 GHPROXY.NET 来下载,以 Ubuntu 为例:

wget https://ghproxy.net/https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine-ubuntu-24.04-amd64.deb
dpkg -i sunshine-ubuntu-24.04-amd64.deb
Fedora

Fedora 上可以从 copr 仓库安装 sunshine

# 启用 copr 仓库
sudo dnf copr enable lizardbyte/stable # 稳定版
sudo dnf copr enable lizardbyte/beta # Beta 测试版

# 安装 sunshine
sudo dnf install Sunshine
其他

ArchLinux 版本有官方提供的预编译包,具体安装方式请参考在 ArchLinux 安装
CentOS、Rocky 等类 Redhat 发行版则没有官方原生RPM包,可以尝试下面的 FlatPack 方式来安装。

AppImage

将 sunshine.AppImage 下载到你的主目录:

cd ~
wget https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine.AppImage
# 国内可以使用镜像站来加速下载
wget https://ghproxy.net/https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine.AppImage

安装

./sunshine.AppImage --install

运行

./sunshine.AppImage --install && ./sunshine.AppImage

卸载

./sunshine.AppImage --remove

由于依赖库问题,不建议在 Rocky 和 CentOS 上使用 AppImage 来安装 Sunshine。

FlatPack

此方式需要您已安装 FlatPack,安装方式可以参考 FlatPack 安装

离线安装
# 下载 FlatPack 包
wget https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine_x86_64.flatpak
# 使用 Github 镜像站加速下载
wget https://ghproxy.net/https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/sunshine_x86_64.flatpak

# 安装
flatpak install --system ./sunshine_x86_64.flatpak
flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine
从 FlatHub 在线安装
flatpak install --system flathub dev.lizardbyte.app.Sunshine
flatpak run --command=additional-install.sh dev.lizardbyte.app.Sunshine

运行

flatpak run dev.lizardbyte.app.Sunshine

Windows

Windows 版本提供安装程序 Sunshine Installer 和 便携版 Sunshine Portable 两种版本,本文以安装程序为例。
下载并安装 Sunshine 安装程序 (国内镜像地址:GHPROXY
开始安装
image.png
选择安装路径
image.png
选择组件(默认全部就可以)
image.png
至此,安装完成。

配置 Sunshine

Windows 版本安装完成之后会自动启动,Linux版本则可以通过 sunshine 命令来启动,启动成功后会显示 Web 管理页面的 URL。

[2025-06-11 15:52:34.628]: Info:
[2025-06-11 15:52:34.628]: Info: // Ignore any errors mentioned above, they are not relevant. //
[2025-06-11 15:52:34.628]: Info:
[2025-06-11 15:52:34.628]: Info: Found H.264 encoder: libx264 [software]
[2025-06-11 15:52:34.631]: Info: Configuration UI available at [https://localhost:47990]

Sunshine 启动之后,可以访问 https://localhost:47990 来进入 Web 管理页面,首次登陆会要求输入管理账号和密码
image.png
后续会通过 Basic 方式登录认证
image.png
登陆成功后会看到下图所示的管理页面。
image.png
接下来我们点击 Configuration -> General -> Locale 里选择简体中文,将语言改成中文,点击 Save -> Apply 保存并应用,之后刷新网页,就能发现我们页面变成中文了。
image.png
点击 Apply(应用)后刷新网页,可能会无法访问,此时在终端重启 Sunshine 主程序即可。

Sunshine 启用 IPv6

配置 -> NetWork -> IP 地址族 选择 IPv4 + IPv6 ,保存 -> 应用
image.png
至此,Sunshine 配置结束了。

开放 Sunshine 服务端口

Sunshine 默认使用的端口
服务 协议 端口范围 说明
Sunshine UI TCP 47990 Sunshine Web 管理界面
Sunshine streaming TCP 47984, 47989 控制和流媒体通道
Sunshine streaming UDP 47998–48010 音视频流通道
Sunshine Discovery UDP 47989, 1900 Moonlight 发现 Sunshine
image.png
一般情况下,Windows 是默认放行 Sunshine 相关端口的,而 Linux 则需要在 Firewalld 开放 Sunshine 使用到的端口,使其能被局域网中的其他设备连接,具体命令如下:
# 放行 TCP 端口
sudo firewall-cmd --permanent --add-port=47984/tcp --add-port=47989/tcp --add-port=47990/tcp --add-port=48010/tcp
# 放行 UDP 端口
sudo firewall-cmd --permanent --add-port=47998-48000/udp
# 应用策略
sudo firewall-cmd --reload

现在,应该可以从同局域网中的其他设备的 Moonlight 上看到这台 Sunshine 主机了。

路由器开放端口

我在这儿以 OpenWRT 为例,进入 网络 - 防火墙 - 通信规则,点击添加,名称按自己需求来写,协议根据 Sunshine 端口对应协议来写,源区域选择任意区域(转发),源地址留空,源端口选择任意,目标区域选择Lan,目的地址留空(因为IPv6地址不固定),目的端口填写对应的 Sunshine 服务端口,操作选择接受
image.png
切换到高级设置,地址族限制选择仅IPv6
image.png
点击保存,保存并应用,至此,我们开放了一个 Sunshine 服务端口,相同方式放行所有 Sunshine 服务端口。
image.png
至此端口开放端口完毕,可以直接使用 IPv6 来连接 Sunshine,教程到此结束了··?
每次都输入IPv6地址将会非常麻烦,因此,我们还需要使用域名来解析我们 Sunshine 服务器的 IPv6 地址,这样就不需要记住那么长的 IPv6 地址了。

DDNS 配置

前面我们已经在路由器上开放了 Sunshine 所需的端口,并可以直接使用 IPv6 地址从其他设备访问 Sunshine。但你可能已经意识到一个问题:

每次都输入一串复杂又难记的 IPv6 地址,不仅麻烦,而且容易输错。更重要的是,部分网络环境下,IPv6 地址是会变化的!

这就引出了一个非常关键的优化点 —— 使用 DDNS(动态域名解析)服务

为什么需要 DDNS?

IPv6 虽然在局域网中通常不会频繁变化,但在部分网络环境下(如更换网络、设备重启、运营商分配机制等),IPv6 地址仍然有可能发生变更。此外,即使地址不变,它也不像 IPv4 那样简洁易记,常常是这样一串:

2408:xxx:3c4:fe10:ba2e:3eff:fe14:9f3a
````

在 Moonlight 或其他客户端中反复输入这样冗长的地址,既不直观,也容易出错。而 DDNS(动态域名解析)可以完美解决这个问题。
### **DDNS 工具**

先来总结一下常见的 DDNS 方式:

| 方式类型 | 方案 | 是否免费 | IPv6 支持 | 配置难度 | 依赖条件 | 特点说明 |
|----------------------|---------------------------|------------|------------|------------|-----------------------|-------------------------------------------------|
| 第三方服务 | **[DuckDNS](https://www.duckdns.org/)**| ✅ 免费 | ✅ 支持 | ★☆☆ | 无需域名 | 简单易用,国外节点 |
| 第三方服务 | **[Dynu / No-IP](https://www.dynu.com/)**| ✅ 免费(部分需续期) | ✅ 支持 | ★★☆ | 无需域名 + 客户端 | 客户端可用,适合初学者 |
| 自建脚本 | **Cloudflare API 脚本** | ✅ 免费 | ✅ 支持 | ★★★ | 需域名 + Token | 灵活性高,需动手写脚本 |
| 自建脚本 | **AliDNS / DNSPod 脚本** | ✅ 免费 | ✅ 支持 | ★★★ | 注册云服务 | 适合国内网络,脚本略复杂 |
| 路由器自带 | ASUS、小米、OpenWRT DDNS 插件 | 多为免费 | 部分支持 | ★★☆ | 路由器型号相关 | 集成度好,设置受限 |
| 自建服务(🔥 推荐) | **[DDNSgo](https://github.com/jeessy2/ddns-go)** | ✅ 免费开源 | ✅ 支持 | ★☆☆ | 可选域名平台 | Web UI 配置,支持多平台 |
这些方案里面,我强烈推荐 DDNS-GO ,后续教程也以 DDNS-GO 为例。
#### **安装 DDNS-GO**
**DDNS-GO** 是一个轻量级、开源的 DDNS 工具,支持自动将本机的公网 IPv4 和 IPv6 地址同步到多个主流 DNS 平台(如 Cloudflare、阿里云、DNSPod 等)。它最大优点是**支持 Web UI 配置**,无需写脚本,适合新手快速上手,同时也支持多平台部署(包括群晖、Docker、Linux 等),非常适合家庭宽带和个人服务器使用。我们这次以二进制文件形式安装。

**下载地址:**
- Windows:[Github](https://github.com/jeessy2/ddns-go/releases/download/v6.11.0/ddns-go_6.11.0_windows_x86_64.zip),如果 Github 访问困难,可以通过镜像地址 [GHPROXY](https://ghproxy.net/https://github.com/jeessy2/ddns-go/releases/download/v6.11.0/ddns-go_6.11.0_windows_x86_64.zip) 来下载。
- Linux:[Github](https://github.com/jeessy2/ddns-go/releases/download/v6.11.0/ddns-go_6.11.0_linux_x86_64.tar.gz),如果 Github 访问困难,可以通过镜像地址 [GHPROXY](https://ghproxy.net/https://github.com/jeessy2/ddns-go/releases/download/v6.11.0/ddns-go_6.11.0_linux_x86_64.tar.gz) 来下载。

注:以上均为`x86_64`架构的二进制文件,如需其他架构,请自行从 Github 下载。

**安装 DDNS 服务:**
```bash
# Linux 中
tar -zxvf ddns-go_6.11.0_linux_x86_64.tar.gz # 解压
sudo ./ddns-go -s install # 安装 DDNS 服务

# Windows 中
# 自行解压 Zip 压缩包
# 以管理员模式打开终端或 CMD,并执行以下命令
.\ddns-go.exe -s install
获取 DNS 服务方 API 密钥

下面我使用在阿里云购买的域名来配置 DDNS(注:国内域名需先进行备案,备案过程请自行查询),需已经在阿里云购买域名。

创建AccessKey
访问 AccessKey 并登录,登陆成功后点击创建 AccessKey就可以获取AccessKey ID 和 AccessKey Secret,请妥善保存,AccessKey Secret 只会显示一次,请确保已保存好之后再点击确定。
image.png
如果是通过子账号创建的 AccessKey ,可以在 RAM 访问控制里配置 AccessKey 的权限。接下来我们继续配置 DDNS-GO。

DDNS-GO 配置

浏览器访问 http://localhost:9876 来进入 DDNS-GO 的 Web 控制界面,初次进入需配置用户名和密码,配置好之后,会进入到下面的页面:
image.png
DDNS 服务商选择 阿里云,填写刚获取到的 AccessKey ID 和 AccessKey Secret,TTL 选择自动即可。
image.png

  1. 由于我们此次是对 IPv6 做 DDNS 解析,所以不需要启用 IPv4 。
  2. 启用 IPv6 的 DDNS 配置,获取 IP 方式默认(通过网卡获取)即可。
  3. Domains 处填写解析 IPv6 地址的域名。
    配置完之后点击保存,至此 DDNS 配置完成。可以通过右上角的日志查看域名解析情况:
    image.png

Moonlight 配置

Moonlight 是一款开源的远程游戏串流客户端,基于 NVIDIA 的 GameStream 技术开发,支持在局域网或互联网中将主机上的游戏画面低延迟地传输到其他设备(如手机、平板、电视、笔记本)上。它支持 4K、60FPS、高码率传输,搭配 Sunshine 使用可不依赖 NVIDIA 显卡,实现高质量的跨平台远程游戏体验。

下载地址

Windows/Linux/Mac:MoonLight-Qt
IOS/AppleTV:AppStore
Android:GoogleStoreGithub

连接 Sunshine

这里以 Windows 版本的Moonlight 为例,其他版本的 Moonlight 也基本相同。
点击右上角 + 号,输入之前配置的域名,如果连接成功,Sunshine 服务器就会出现在计算机列表:
image.png 由于此时还未完成配对,会出现锁的图标,点击锁,会提示跟服务器匹配:
image.png 此时在Sunshine 服务器上访问 https://localhost:47990 进入 Sunshine 后台,点击 Pin码,输入 Moonlight 上显示的 Pin码,设备名称可以按照自己的喜好来填写,点击发送,完成配对。
image.png 此时打开 Moonlight,发现锁的图标消失了,说明配对成功,点击对应的 Sunshine 服务器就可以开始串流。

image.png至此,Moonlight 已连接 Sunshine,完成整个串流配置。