当前位置: 首页 > news >正文

Sunshine游戏流媒体服务器:从安装到完全卸载的终极技术指南

Sunshine游戏流媒体服务器:从安装到完全卸载的终极技术指南

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

Sunshine是一款开源的自托管游戏流媒体服务器,专为Moonlight客户端设计,支持AMD、Intel和NVIDIA GPU硬件编码,提供低延迟的云游戏体验。无论是游戏开发者还是系统管理员,了解如何彻底清理Sunshine的所有组件对于系统维护和故障排查至关重要。本文将深入探讨Sunshine在Windows、Linux和macOS系统上的完整卸载流程,确保不留任何残留痕迹。

📋 卸载前的风险评估与准备工作

在开始卸载Sunshine之前,了解潜在风险并做好充分准备至关重要。不同的清理级别适用于不同的使用场景:

清理级别适用场景技术复杂度风险等级预计耗时
基础清理临时卸载,计划重新安装5-10分钟
标准清理常规卸载,释放磁盘空间⭐⭐⭐⭐15-20分钟
深度清理解决系统冲突或兼容性问题⭐⭐⭐⭐⭐⭐30-45分钟
完全清理安全审计或系统重置⭐⭐⭐⭐⭐⭐⭐⭐60分钟以上

关键数据备份策略

在卸载前,强烈建议备份以下重要数据:

  1. 配置文件备份

    • Windows:%APPDATA%\Sunshine\sunshine.conf%APPDATA%\Sunshine\apps.json
    • Linux:~/.config/sunshine/sunshine.conf~/.config/sunshine/apps.json
    • macOS:~/Library/Application Support/Sunshine/sunshine.conf
  2. SSL证书备份

    • 证书目录:credentials/文件夹中的cakey.pemcacert.pem
    • 这些证书用于HTTPS安全连接,重新生成可能需要重新配对客户端
  3. 游戏配置备份

    • 通过Sunshine Web UI导出的应用列表
    • 自定义的游戏流媒体设置和快捷键配置

进程与服务终止

确保所有Sunshine相关进程已完全停止:

# Windows PowerShell (管理员权限) taskkill /F /IM sunshine.exe /T Get-Process -Name "sunshine" -ErrorAction SilentlyContinue | Stop-Process -Force # Linux系统 sudo systemctl --user stop sunshine sudo pkill -f sunshine sudo killall sunshine # macOS系统 launchctl remove dev.lizardbyte.sunshine pkill -f sunshine

验证进程已终止:

# 跨平台验证命令 ps aux | grep sunshine | grep -v grep # 预期输出:无任何结果

🗑️ 核心卸载流程:分步清除Sunshine组件

1. 程序文件移除:根据安装方式选择策略

Sunshine支持多种安装方式,每种方式都有对应的卸载方法:

安装方式卸载命令验证方法
Windows包管理器winget uninstall lizardbyte.sunshinewinget list | findstr sunshine
Debian/Ubuntusudo apt remove --purge sunshinedpkg -l | grep sunshine
Fedora/RHELsudo dnf remove sunshinerpm -qa | grep sunshine
Arch Linuxsudo pacman -Rns sunshinepacman -Q | grep sunshine
macOS Homebrewbrew uninstall sunshinebrew list | grep sunshine
Flatpakflatpak uninstall dev.lizardbyte.app.Sunshineflatpak list | grep Sunshine
AppImagerm ~/sunshine-*.AppImagels ~/*.AppImage | grep sunshine
源码编译sudo make uninstall(在构建目录)which sunshine

2. 配置文件与用户数据清理

配置文件残留是导致重新安装问题的常见原因。以下是各平台的关键目录:

# Windows PowerShell - 配置文件清理 Remove-Item -Recurse -Force "$env:APPDATA\Sunshine" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "$env:LOCALAPPDATA\Sunshine" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "C:\ProgramData\Sunshine" -ErrorAction SilentlyContinue # Linux系统 - 配置文件清理 rm -rf ~/.config/sunshine rm -rf ~/.cache/sunshine rm -rf ~/.local/share/sunshine rm -rf /etc/sunshine 2>/dev/null # macOS系统 - 配置文件清理 rm -rf ~/Library/Application\ Support/Sunshine rm -rf ~/Library/Caches/Sunshine rm -rf ~/Library/Preferences/dev.lizardbyte.sunshine.plist

3. 系统服务与守护进程清理

Sunshine在不同平台上可能安装为系统服务,需要彻底清理:

# Windows服务清理 (管理员权限) sc stop SunshineService 2>nul sc delete SunshineService 2>nul Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SunshineService" -Recurse -Force -ErrorAction SilentlyContinue # Linux systemd服务清理 systemctl --user stop sunshine 2>/dev/null systemctl --user disable sunshine 2>/dev/null rm -f ~/.config/systemd/user/sunshine.service rm -f /etc/systemd/system/sunshine.service 2>/dev/null systemctl --user daemon-reload systemctl daemon-reload # macOS launchd服务清理 launchctl unload ~/Library/LaunchAgents/dev.lizardbyte.sunshine.plist 2>/dev/null rm -f ~/Library/LaunchAgents/dev.lizardbyte.sunshine.plist launchctl remove dev.lizardbyte.sunshine

Sunshine的应用程序管理界面,显示已配置的桌面和Steam流媒体应用

🔍 高级清理:网络配置与防火墙规则

网络端口清理

Sunshine使用特定端口进行流媒体传输,卸载后应清理相关防火墙规则:

# Windows防火墙规则清理 Remove-NetFirewallRule -DisplayName "Sunshine" -ErrorAction SilentlyContinue Remove-NetFirewallRule -DisplayName "Moonlight" -ErrorAction SilentlyContinue # Linux UFW防火墙规则清理 sudo ufw delete allow 47989/tcp sudo ufw delete allow 47990/tcp sudo ufw delete allow 47998:48010/udp sudo ufw delete allow 47984/tcp # Web UI端口 # Linux iptables规则清理 sudo iptables -L INPUT -n --line-numbers | grep -E "47989|47990|47998:48010" | awk '{print $1}' | tac | xargs -I {} sudo iptables -D INPUT {} sudo iptables-save | sudo tee /etc/iptables/rules.v4 # macOS pf防火墙规则清理 sudo pfctl -f /etc/pf.conf # 重新加载规则,移除临时规则

UPnP端口映射清理

如果Sunshine配置了UPnP端口转发,需要清理路由器设置:

# 检查并清理UPnP映射 upnpc -l | grep -E "47989|47990|47998|47999|48000|48010" | awk '{print $1}' | xargs -I {} upnpc -d {}

🧪 验证与故障排除:确保完全清理

四步验证法

完成清理后,使用以下方法验证Sunshine是否已完全移除:

  1. 文件系统检查
# Windows PowerShell Get-ChildItem -Path C:\ -Recurse -Filter "*sunshine*" -ErrorAction SilentlyContinue | Select-Object FullName # Linux/macOS sudo find / -iname "*sunshine*" 2>/dev/null | grep -v "/proc/" | grep -v "/sys/"
  1. 进程与服务验证
# 跨平台进程检查 ps aux | grep -E "sunshine|moonlight" | grep -v grep # Windows服务状态 sc query SunshineService 2>nul || echo "服务不存在" # Linux服务状态 systemctl --user status sunshine 2>/dev/null || echo "服务不存在"
  1. 端口占用检查
# Windows端口检查 netstat -ano | findstr ":47989 :47990 :47998 :47999 :48000 :48010" # Linux/macOS端口检查 sudo netstat -tulpn | grep -E ":47989|:47990|:47998|:47999|:48000|:48010"
  1. 注册表与系统配置检查
# Windows注册表检查 Get-ChildItem -Path "HKLM:\SOFTWARE", "HKCU:\SOFTWARE" -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -match "sunshine|moonlight|lizardbyte" } | Select-Object Name

常见问题与解决方案

问题现象可能原因解决方案
服务无法删除服务仍在运行或权限不足使用sc stop SunshineService停止服务后重试
配置文件无法删除文件被进程锁定重启系统或使用Unlocker工具解锁文件
防火墙规则残留规则名称不匹配使用Get-NetFirewallRule查看所有规则并手动删除
端口仍被占用其他进程占用相同端口使用netstat -ano查找占用进程并终止

Sunshine日志查看器,可用于诊断编码器错误和硬件兼容性问题

🛠️ 进阶清理技术:处理顽固残留

驱动与内核模块清理

Sunshine在某些平台上可能需要安装虚拟手柄驱动:

# Windows ViGEm驱动清理 pnputil /enum-drivers | findstr "ViGEm" # 输出类似: oem10.inf pnputil /delete-driver oem10.inf /uninstall /force # Linux内核模块检查 lsmod | grep -i "sunshine|vigem|uinput" # 如有相关模块,使用 rmmod 卸载

用户组与权限清理

# Linux用户组清理 sudo groupdel sunshine 2>/dev/null sudo userdel sunshine 2>/dev/null # 检查并清理udev规则 sudo rm -f /etc/udev/rules.d/60-sunshine.rules 2>/dev/null sudo udevadm control --reload-rules

编译残留清理

如果从源码编译安装,需要清理构建目录:

# 清理CMake构建目录 cd /path/to/sunshine/build rm -rf * cd .. rm -rf build # 清理依赖库 sudo rm -rf /usr/local/lib/libsunshine* 2>/dev/null sudo rm -rf /usr/local/include/sunshine 2>/dev/null

🔄 系统优化与后续维护

磁盘空间回收

卸载Sunshine后,可以进一步优化系统:

# Windows磁盘清理 cleanmgr /sagerun:1 # Linux包缓存清理 sudo apt autoremove --purge sudo apt autoclean sudo journalctl --vacuum-time=3d # macOS系统清理 sudo periodic daily weekly monthly

启动项管理优化

检查并清理不必要的启动项:

平台启动项管理位置检查项目
Windows任务管理器 → 启动选项卡Sunshine、Moonlight相关服务
Linuxsystemctl list-unit-files --type=servicesunshine.service
macOS系统设置 → 通用 → 登录项Sunshine启动项

网络配置重置

重置网络配置以确保干净状态:

# Windows网络重置 netsh winsock reset netsh int ip reset ipconfig /release ipconfig /renew # Linux网络服务重启 sudo systemctl restart NetworkManager sudo systemctl restart systemd-networkd

📊 清理决策流程图

🎯 总结与最佳实践

彻底卸载Sunshine游戏流媒体服务器需要系统性的方法。通过本文提供的分步指南,您可以确保从系统中完全移除所有Sunshine组件,为重新安装或系统维护做好准备。关键要点包括:

  1. 备份优先:始终在卸载前备份重要配置和证书文件
  2. 分步操作:按照程序文件→配置文件→系统服务→网络规则的顺序清理
  3. 平台差异:针对Windows、Linux、macOS采用不同的清理策略
  4. 验证确认:使用四步验证法确保无残留组件
  5. 系统优化:清理后执行磁盘整理和启动项优化

Sunshine的Web UI初始设置页面,用于配置用户名和密码等基本设置

对于开发者而言,理解Sunshine的架构和文件分布有助于更精确的清理。主要配置文件位于src/config.cpp中定义的标准路径,而系统服务配置则分布在packaging/目录的各平台特定文件中。

通过遵循本指南,您可以确保Sunshine的完全移除,为系统维护、故障排查或全新安装创造干净的环境。记住,彻底的清理不仅能释放磁盘空间,还能避免未来安装时的兼容性问题,确保最佳的游戏流媒体体验。

【免费下载链接】SunshineSelf-hosted game stream host for Moonlight.项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.gsyq.cn/news/1644562.html

相关文章:

  • warpdrive错误处理与调试:常见问题排查与解决方案大全
  • 专业指南:如何在Linux系统上高效安装与优化Realtek RTL8125 2.5GbE网卡驱动
  • [MAF的Agent管道详解-01]塑智能体边界,从AIAgent抽象类开始
  • ExplorerTabUtility:Windows 11文件管理器标签页革命,5个高效技巧让你的工作效率翻倍
  • 采购装配式木屋除主体外还有哪些增值配套服务?一文讲清
  • 深度学习核心:计算图与反向传播原理详解及梯度流动实战
  • OpCore-Simplify:智能高效的OpenCore EFI自动化配置终极指南
  • 2026年AI写作辅助平台深度评测:6款工具合规过检得分排名
  • 最后,我再聊聊我新近观察的一个项目的运作,来分享一下我的第三层认识。
  • 从陇剑杯CTF实战解析Web渗透与应急响应的核心技能
  • 邮箱验证实战:基于ApiZero检测API从原理到代码一网打尽
  • QMCDecode终极指南:3步解锁QQ音乐加密音频,实现音乐格式自由转换
  • 从 AI 套图开始,下一步可以做什么?
  • 拉普拉斯展开实战指南:零基础掌握行列式策略性手算
  • 终极指南:如何在Mac上轻松制作Windows启动盘并绕过系统限制
  • 移动端图片浏览体验差?这个Vue组件让你告别卡顿和等待
  • 3分钟掌握Deforum动画生成:Stable Diffusion终极视频创作指南
  • 猫抓:当浏览器拥有“火眼金睛“,网页资源无处遁形
  • 凭什么要用面向对象编程(补充)
  • 输电线异物检测数据集725张VOC+YOLO格式
  • IEC 61332:2026《软磁铁氧体材料分类》新版深度解读
  • 到店组装一台全新台式电脑,全程到底要多久?附完整时间表与避坑指南
  • Linux DRM dma_fence实战:基于AMDGPU分析多硬件单元同步的5个关键场景
  • CPU:数字世界的核心硬件基石
  • aubo学习:控制柜
  • 重新认识C#: 玩转指针
  • Python爬虫经典案例第69篇:电商平台爬取:Amazon数据采集实战
  • 使用C++20 的协程创建通用的生成器
  • 3步解决Deforum扩展安装与使用难题:从零到动画生成的完整指南
  • 解锁免费高品质音乐:洛雪音乐音源完全指南