Sunshine + Moonlight + IPv6 公网串流
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:
以太网适配器 以太网: |

Linux
终端通过 ip addr 命令来查询 IPv6 地址
ip addr | grep inet6 |
如果看到输出如下,说明有 IPv6
inet6 240e:1234:abcd::1/64 scope global dynamic |

安装 Sunshine
Sunshine 的 Github 仓库为 Sunshine
下载网址 Sunshine Releases
Linux
包管理器安装
Debian / Ubtuntu
Debian / Ubuntu 发行版可以直接使用 APT 包管理器进行安装。
sudo apt update |
如果遇到依赖问题(如 miniupnpc),可先执行:
sudo apt --fix-broken install |
也可以从 Github 下载 deb 包来安装,以 Ubuntu 为例:
# 下载 Ubuntu 24.04 版本 |
Debian 版本的也是类似:
https://github.com/LizardByte/Sunshine/releases/download/v2025.122.141614/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 |
Fedora
Fedora 上可以从 copr 仓库安装 sunshine
# 启用 copr 仓库 |
其他
ArchLinux 版本有官方提供的预编译包,具体安装方式请参考在 ArchLinux 安装
CentOS、Rocky 等类 Redhat 发行版则没有官方原生RPM包,可以尝试下面的 FlatPack 方式来安装。
AppImage
将 sunshine.AppImage 下载到你的主目录:
cd ~ |
安装
./sunshine.AppImage --install |
运行
./sunshine.AppImage --install && ./sunshine.AppImage |
卸载
./sunshine.AppImage --remove |
由于依赖库问题,不建议在 Rocky 和 CentOS 上使用 AppImage 来安装 Sunshine。
FlatPack
此方式需要您已安装 FlatPack,安装方式可以参考 FlatPack 安装。
离线安装
# 下载 FlatPack 包 |
从 FlatHub 在线安装
flatpak install --system flathub dev.lizardbyte.app.Sunshine |
运行
flatpak run dev.lizardbyte.app.Sunshine |
Windows
Windows 版本提供安装程序 Sunshine Installer 和 便携版 Sunshine Portable 两种版本,本文以安装程序为例。
下载并安装 Sunshine 安装程序 (国内镜像地址:GHPROXY)
开始安装
选择安装路径
选择组件(默认全部就可以)
至此,安装完成。
配置 Sunshine
Windows 版本安装完成之后会自动启动,Linux版本则可以通过 sunshine 命令来启动,启动成功后会显示 Web 管理页面的 URL。
[2025-06-11 15:52:34.628]: Info: |
Sunshine 启动之后,可以访问 https://localhost:47990 来进入 Web 管理页面,首次登陆会要求输入管理账号和密码
后续会通过 Basic 方式登录认证
登陆成功后会看到下图所示的管理页面。
接下来我们点击 Configuration -> General -> Locale 里选择简体中文,将语言改成中文,点击 Save -> Apply 保存并应用,之后刷新网页,就能发现我们页面变成中文了。
点击 Apply(应用)后刷新网页,可能会无法访问,此时在终端重启 Sunshine 主程序即可。
Sunshine 启用 IPv6
在 配置 -> NetWork -> IP 地址族 选择 IPv4 + IPv6 ,保存 -> 应用
至此,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 |
![]() |
|||
| 一般情况下,Windows 是默认放行 Sunshine 相关端口的,而 Linux 则需要在 Firewalld 开放 Sunshine 使用到的端口,使其能被局域网中的其他设备连接,具体命令如下: |
# 放行 TCP 端口 |
现在,应该可以从同局域网中的其他设备的 Moonlight 上看到这台 Sunshine 主机了。
路由器开放端口
我在这儿以 OpenWRT 为例,进入 网络 - 防火墙 - 通信规则,点击添加,名称按自己需求来写,协议根据 Sunshine 端口对应协议来写,源区域选择任意区域(转发),源地址留空,源端口选择任意,目标区域选择Lan,目的地址留空(因为IPv6地址不固定),目的端口填写对应的 Sunshine 服务端口,操作选择接受。
切换到高级设置,地址族限制选择仅IPv6
点击保存,保存并应用,至此,我们开放了一个 Sunshine 服务端口,相同方式放行所有 Sunshine 服务端口。
至此端口开放端口完毕,可以直接使用 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 |
获取 DNS 服务方 API 密钥
下面我使用在阿里云购买的域名来配置 DDNS(注:国内域名需先进行备案,备案过程请自行查询),需已经在阿里云购买域名。
创建AccessKey:
访问 AccessKey 并登录,登陆成功后点击创建 AccessKey就可以获取AccessKey ID 和 AccessKey Secret,请妥善保存,AccessKey Secret 只会显示一次,请确保已保存好之后再点击确定。
如果是通过子账号创建的 AccessKey ,可以在 RAM 访问控制里配置 AccessKey 的权限。接下来我们继续配置 DDNS-GO。
DDNS-GO 配置
浏览器访问 http://localhost:9876 来进入 DDNS-GO 的 Web 控制界面,初次进入需配置用户名和密码,配置好之后,会进入到下面的页面:
DDNS 服务商选择 阿里云,填写刚获取到的 AccessKey ID 和 AccessKey Secret,TTL 选择自动即可。
- 由于我们此次是对 IPv6 做 DDNS 解析,所以不需要启用 IPv4 。
- 启用 IPv6 的 DDNS 配置,获取 IP 方式默认(通过网卡获取)即可。
- Domains 处填写解析 IPv6 地址的域名。
配置完之后点击保存,至此 DDNS 配置完成。可以通过右上角的日志查看域名解析情况:
Moonlight 配置
Moonlight 是一款开源的远程游戏串流客户端,基于 NVIDIA 的 GameStream 技术开发,支持在局域网或互联网中将主机上的游戏画面低延迟地传输到其他设备(如手机、平板、电视、笔记本)上。它支持 4K、60FPS、高码率传输,搭配 Sunshine 使用可不依赖 NVIDIA 显卡,实现高质量的跨平台远程游戏体验。
下载地址
Windows/Linux/Mac:MoonLight-Qt
IOS/AppleTV:AppStore
Android:GoogleStore,Github
连接 Sunshine
这里以 Windows 版本的Moonlight 为例,其他版本的 Moonlight 也基本相同。
点击右上角 + 号,输入之前配置的域名,如果连接成功,Sunshine 服务器就会出现在计算机列表:
由于此时还未完成配对,会出现锁的图标,点击锁,会提示跟服务器匹配:
此时在Sunshine 服务器上访问 https://localhost:47990 进入 Sunshine 后台,点击 Pin码,输入 Moonlight 上显示的 Pin码,设备名称可以按照自己的喜好来填写,点击发送,完成配对。
此时打开 Moonlight,发现锁的图标消失了,说明配对成功,点击对应的 Sunshine 服务器就可以开始串流。
至此,Moonlight 已连接 Sunshine,完成整个串流配置。




