1. 它到底在解决什么问题为什么大家都在聊Sonarr如果你家里有一台NAS或者平时有整理个人媒体库的习惯那你大概率经历过这种场景一部剧追到一半每周新出的那集要么忘了下要么下完之后文件名乱七八糟字幕文件散落得到处都是过两天想回看某集翻半天目录才找到。这种事儿一次两次还行集数一多就是纯粹的折磨。Sonarr这个名字在“媒体自动化管理”的小圈子里几乎就是代名词。它本质上是一个针对TV剧集的自动化管理工具核心做三件事第一根据你“想追哪些剧”的清单自动去索引器里找资源第二把找到的资源交给下载客户端去下载第三下载完成后按你预设的规则重命名、整理进媒体库顺便推送给Plex、Jellyfin这样的媒体服务器去刷新片库。换句话说Sonarr干掉的是从“想看的剧更新了”到“能直接在电视上打开看”之间所有的机械劳动。这篇文章我不会只贴个安装命令就跑而是把设计思路、目录规划、路径映射、索引器、下载客户端配置、常见坑点全部串起来讲一遍。适合的人群有两类一是刚入手NAS、想搭一套自动化媒体库的新手二是已经在用Plex/Jellyfin但还停留在手动下载、手动整理文件阶段的朋友。看完你可以直接从零搭出一套完整的、能自动跑起来的剧集管理链路。顺便说一句这个工具管理的是你自己合法获取的媒体内容我在写的时候也默认这个前提。工具本身是中立的重点在于你怎么用它。2. 整体设计拆解Sonarr是怎么把“追剧”这件小事串起来的2.1 核心工作流追踪、搜索、下载、整理、通知要理解Sonarr为什么比手动下载好使得先看它整个系统是怎么设计的。它内部不是单打独斗而是由四个角色配合完成的Sonarr本身大脑负责记录剧集元数据、判断每集是否缺失、是否需要升级画质并调度下载任务。索引器Indexer信息源相当于“哪里有什么资源”的查询入口通过Newznab或Torznab这类标准协议对外提供搜索接口。下载客户端Download Client执行者Sonarr搜到匹配项之后把任务推给它去实际下载。媒体服务器如Plex/Jellyfin/Emby展示端Sonarr整理完文件后会通知它刷新媒体库。这四个角色之间是通过API互相通信的Sonarr在其中扮演调度中心的角色。它每隔一段时间默认6小时会检查一次你记录的剧集列表看看有没有“期待已久的下一集”已经发布如果你在设置里开启了RSS同步它还会更频繁地抓取索引器的新资源命中追剧列表就立刻发车。2.2 为什么非要用“剧集粒度”而不是“文件粒度”管理很多人第一次用Sonarr会问一个问题这不就是个下载器带了个重命名功能吗我自己用qBittorrent定时下载不也行还真不太一样。Sonarr最值钱的地方是它对“剧集”这个概念的理解是结构化的。它知道一部剧一共多少季、多少集、每集的官方标题是什么、首播日期是哪天、有没有特殊集比如圣诞特辑、SP而这些元数据来自TheTVDB这样的线上数据库。正因为它懂“剧集结构”它能帮你做很多“普通下载器做不到的事”某一集因为网络原因下失败了它只管补那一集不会把整个季度重新拉一遍。某部剧从标清升级到高清它会对比当前文件的分辨率和预设的质量档位自动决定是否替换升级。下载完成后自动做目录归档比如TV Shows/剧名/Season 01/剧名 - S01E02 - 标题.mkv这种格式而不是一堆字幕组风格混杂的文件名。这种以“逻辑集数”为核心的模型就是它区别于普通下载工具的根本点。你可以把Sonarr理解成一个带着剧集数据库的私人秘书而不是一个跑腿的快递员。2.3 方案选型时的几个核心考量我见过有人在最便宜的入门NAS上硬跑整套SonarrRadarrJellyfin也有人用一台专门的小主机跑这些容器。选型上给你几条实际经验如果你已经有NAS直接用Docker跑Sonarr资源占用很低。一个Sonarr容器平时内存占用大概在200MB到500MB之间CPU更是闲得可以忽略。如果你的NAS是ARM架构的比如某些入门型号也能跑但部分索引器的抓取响应会慢一些体感上就是搜索转圈时间稍长。如果你打算同时跑Sonarr、Radarr、Prowlarr、Jellyfin全家桶四五个容器开启自启动之后建议内存至少4GB否则遇到索引器批量刷新的时候可能会卡顿。3. 部署实操环境准备、目录规划与首次启动3.1 目录结构规划这一步直接决定你后面会不会返工先讲目录因为这是排坑率最高的一步。Sonarr虽然是容器但它本身不做“移动文件”这种事——它让下载客户端把文件下到某个目录之后再从那个目录把文件整理到媒体库。这两个目录如果规划不好后面会遇到“下载完了但Sonarr找不到文件”“找不到文件还不是最惨的最惨是导入的时候做了跨文件系统的复制把盘塞满”。我给一个经过验证的目录方案以一台群晖/威联通/普通Linux主机为例/volume1/data/ ├── downloads/ # 所有下载中转文件 │ ├── tv/ # Sonarr专属下载目录 │ ├── movies/ # Radarr专属下载目录 │ └── incomplete/ # 下载未完成时的临时目录 └── media/ ├── tv/ # 最终剧集媒体库 └── movies/ # 最终电影媒体库把“未完成的下载”和“要入库的媒体文件”分开是一个很重要的习惯。下载没完成时文件还可能被客户端改名或者加上后缀Sonarr如果去扫未完成目录低概率会误判文件不可用。用Docker部署时目录映射有一个核心原则Sonarr容器里看到的路径和下载客户端容器里看到的路径必须互相同义。什么意思呢比如宿主机上实际路径是/volume1/data/downloads/tv映射进Sonarr后叫/downloads那你在配置下载客户端时指向的路径也必须是/downloads而不是/volume1/data/downloads/tv。因为Sonarr对文件的操作是通过“路径对齐”来实现的路径不一致会直接导致“找不到文件、无法导入”的问题。3.2 Docker部署Sonarr推荐方案如果你还没用过Docker这是最简单的入门方式。我用的是linuxserver版镜像因为它对时区、权限、目录映射的支持做得比较完善。docker-compose.yml大致长这样version: 3.8 services: sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID1000 - PGID1000 - TZAsia/Shanghai volumes: - ./sonarr/config:/config - /volume1/data/downloads/tv:/downloads/tv - /volume1/data/media/tv:/tv ports: - 8989:8989 restart: unless-stopped几个关键点展开说一下PUID和PGID这两个参数极其容易踩坑。Sonarr容器内的进程会以你指定的用户身份去读写挂载目录如果这个用户对下载目录或媒体目录没有写权限后面必然出现“下载完成但无法导入”的诡异问题。最简单的方式是在宿主机上执行id命令把你当前用户名对应的UID和GID填进去同时确认你要挂载的目录归属这个UID/GID。/tv目录映射是指向最终媒体库的/downloads/tv是所有剧集下载的中转目录编译完成后执行docker-compose up -d然后浏览器访问http://宿主机IP:8989看到欢迎页面就说明启动成功了。注意不要在容器里跑root用户虽然能解决权限问题但后面一旦有脚本执行漏洞整个宿主机的风险就大了。用PUID/PGID做用户降权才是规范的姿势。3.3 首次启动向导与基础设置第一次进入Sonarr会有一个Setup向导主要配置三块内容媒体库根目录、下载客户端、索引器。如果你目前还没准备好索引器和下载客户端也可以先跳过之后在Settings里补。第一个要设置的是“Root Folder”根文件夹也就是你的最终剧集存放目录对应上面例子里的/tv。注意在Sonarr里选目录的时候它显示的是容器内的路径不是宿主机路径。第二个建议设置的是“媒体管理”里的重命名规则。我个人推荐开启Season Folders季目录和Episode Renaming默认格式里把空格换成点也不是不行但说实话剧名 - S01E02 - 集名.ext这种带可读性的格式在Plex和Jellyfin里识别率最高而且将来手动翻文件的时候一眼就知道是哪集。4. 核心配置实操索引器、下载客户端与媒体库对接4.1 索引器配置用Prowlarr统一管理而不是手动填十几个源索引器是Sonarr的“眼睛”。索引器配置得对不对直接决定你能不能搜到想要的内容、搜到的资源质量怎么样。我有两个建议第一不要直接在Sonarr里手动添加一堆索引器而是装一个Prowlarr用它集中管理索引器再同步给Sonarr。第二索引器不是越多越好关键是质量和响应速度。Prowlarr也是一个容器部署方式和Sonarr类似。它最大的好处是你只需要在一个地方维护索引器的账号、Cookie、API Key然后一键同步到Sonarr以及其他*arr工具不用每个工具各配一遍。Sonarr里添加Prowlarr作为唯一索引器入口之后在搜索时其实还是去索引器们那边查但维护成本大大降低。配置索引器时有两点值得注意每种索引器都有分类Categories对齐很重要。电视类索引器一般会把资源标为TV/Anime等分类Sonarr在搜索时只会关心5030、5040这些电视剧分类。如果分类没对齐明明索引器里有资源Sonarr却搜不到。设置“Search”超时时间不宜过于严苛。有些索引器响应慢默认设置下可能因为超时被判定为不可用。建议保留系统默认值等实际使用一段时间之后再针对性调整。4.2 下载客户端配置qBittorrent为默认首选下载客户端的选择上我用下来最推荐qBittorrent其次是SABnzbd如果你用Usenet方案。为了直观我把常见组合放在一个表格里客户端协议Web UISonarr集成稳定度适用场景qBittorrentBitTorrent有高大多数人首选标签/分类体系完善TransmissionBitTorrent有中轻量级但大文件并发性能一般SABnzbdUsenet有高追求高速稳定下载的用户NZBGetUsenet有中等已停止维护不推荐新玩家尝试在Sonarr里配置下载客户端的路径时必须再次确认路径一致原则。以qBittorrent为例如果qBittorrent里设置的保存目录是/downloads/tv那Sonarr里也必须填/downloads/tv两个容器需要共享这个目录或者用同一个卷。很多人第一次配置失败八成是栽在这个地方。qBittorrent本身要做三个小设置开启Web UI远程访问开启“Torrent Queuing”但不是必须建议根据宽带情况限制并行任务数把“Save to Subdirectory”关掉否则Sonarr导入时还要多跑一层子目录。提示qBittorrent的“重命名文件”和“保留未完成文件”这两个选项建议默认不动Sonarr对它俩的支持虽然没问题但改了之后出现异常时排查头绪更多。4.3 媒体库对接让Plex/Jellyfin自动发现新入库的内容媒体库对接是让整套系统显得“智能”的最后一步。Sonarr在完成文件导入、重命名之后会主动发通知给媒体服务器触发对应剧集文件夹的扫描不需要你手动去Plex里点“刷新”。在Sonarr的Settings - Connect里可以添加Plex、Jellyfin、Emby或者通用Webhook。以Jellyfin为例你需要先给Sonarr生成一个API Key然后在Connect里填上Jellyfin的地址、API Key和Library名称。这里有个实际经验如果媒体服务器和Sonarr都在同一台机器上请使用内网地址而不是公网地址不仅响应更快还能减少不必要的代理路径。有些人喜欢把所有服务都通过反向代理统一暴露看起来整洁但实际上内网互访完全没必要绕一圈。4.4 质量配置文件不要让Sonarr“有什么下什么”默认的质量配置Quality Profiles是“Any”意思是只要找到资源就收。如果你不介意文件大小这没问题但如果你跟我一样对画质有要求建议自己建一个Profile。我日常推荐一套组合在Profile里开启“1080p WEB-DL”作为首选并把“720p WEB-DL”和“1080p BluRay”放进来作为备选。这样Sonarr在搜索时优先选择1080p WEB-DL找不到的话再降级去找720p。同时开启“Upgrades Allowed”允许升级并设置升级阈值。比如当前已下载的是720p之后发现一个1080pSonarr会下载新版本并替换旧文件。这样做的好处是画质可以慢慢“养”缺点是磁盘空间会吃紧。如果你硬盘只有4T建议把升级阈值限制在1080p以内不要追着2160p跑不然后期存储压力很大。5. 进阶玩法多实例、自动化脚本与全家桶互连5.1 给剧集打标签一个Sonarr实例管理多种内容很多人不知道Sonarr支持标签系统这是管理“动画、综艺、美剧、国剧混合存在”的场景下特别好用的功能。在添加系列时可以打上标签比如anime、variety、doc然后再给每个标签绑定单独的根目录或质量Profile。这样动画片进入动画目录、纪录片进入纪录片目录各类资源互不干扰比用文件夹手动分干净得多。更进一步想区分不同来源语言的比如中文配音版和原声版可以配合标签和下载规则来处理。5.2 常见系列扫描把已有文件批量导入Sonarr很多人搭好Sonarr之后手头已经有一堆剧集文件了不知道该怎么让Sonarr接管。这里提供一个方案不用重新下载。在Sonarr里先添加对应的剧集从TheTVDB匹配然后到该剧的页面点击“Manual Import”手动导入选你已有的剧集文件夹所在目录Sonarr会扫描出候选文件并匹配到对应季/集。确认后它会按新规则重命名并移入媒体库。这个过程会“吞掉”原有文件建议在操作前先备份一份危险数据免得匹配错误造成文件被改名后无法辨识。批量导入大批量文件时我建议一次只处理一部剧因为Sonarr日志里会把匹配过程打得比较详细方便你追踪有没有匹配错集。5.3 Sonarr Radarr Prowlarr一套完整的自动化媒体中心如果你除了追剧还有电影管理需求可以在这个架构里再加入Radarr。它与Sonarr的设计体系几乎一致配置思路也同理但针对电影做了优化支持电影合集、电影格式识别等。三兄弟外加qBittorrent、Jellyfin的完整架构如下Sonarr管理剧集生命周期。Radarr管理电影生命周期。Prowlarr统一管理索引器、同步给这两个工具。qBittorrent实际下载。Jellyfin/Plex最终消费入口。这套架构下你唯一需要手动做的就是在看到一部新剧/新电影时把它加入Sonarr/Radarr。等到资源一发布从搜索到入库到刷新片库全程自动。我在实际使用了一年之后最大的感受就是“存在感归零”也就是你几乎意识不到这堆工具在后台干活了但它们确实每天都在默默把新集整理好。5.4 备份与恢复配置文件才是你最值钱的东西很多人部署完Sonarr就再也不管config目录了这是个大坑。Sonarr的所有配置、追剧列表、历史记录都存在config目录下的数据库文件里一旦磁盘损坏或者误删容器重建配置虽然不至于要命但重新添加几十部剧集绝对让人崩溃。我目前的做法是每天凌晨3点把Sonarr容器的config目录整体压缩备份到一块独立硬盘上保留最近7天之后再做一次异地同步。备份命令很简单实测没遇到过恢复失败的情况。6. 常见问题与排查技巧实录6.1 “No files found are eligible for import”到底是怎么回事这个问题可能是所有Sonarr新用户遇到最多的。文件明明下完了Sonarr却说没有可导入的文件。排查顺序如下检查下载客户端里任务是否真的完成。如果还在做种但没完成校验Sonarr不会去导入。检查下载客户端保存路径和Sonarr里配置的路径是否一致。路径不一致是最常见的原因。检查容器是否有目录权限。手动进容器里执行ls看看能不能看到那个文件。如果你用的是BT协议顺便检查下载文件是否被放在了一个子目录里而Sonarr配置的“下载目录”刚好指向父目录导致找不到。6.2 所有索引器都超时搜索结果转圈遇到这种情况先别急着删索引器。第一排查Sonarr网络是否能访问到索引器地址尤其是有些自建索引器只允许特定IP访问你容器网络用的是bridge还是host可能就决定了能不能连上。第二检查索引器是否被封禁或需要更新Cookie。第三把“Search Timeout”适当调大一点。如果是Prowlarr同步过来的索引器优先在Prowlarr里测试Prowlarr能搜到、Sonarr搜不到那大概率是分类没同步完整。6.3 剧集文件一直停在下载列表里不进入媒体库这种情况一般不是因为Sonarr坏了而是它的“下载后处理”步骤卡住了。点开Activity里的Queue列表看当前任务的状态。如果显示“Downloading”那就是还在等下载完成如果是“Importing”说明正在处理如果状态是“Pending”有可能是残留的同一文件已经导入过Sonarr在等用户确认是否重复导入。还有一种容易忽略的场景当多个剧集文件同时下载完成Sonarr会顺序处理队列文件较多时排队时间会比较长看起来像“卡住了”其实还在跑。6.4 为什么我明明设置了1080p优先却还是下载了720p首先检查你用的Quality Profile是不是你新建的那个而不是默认的Any。其次当你添加的剧集已经存在720p文件且你的Profile支持从720p升级到1080p时Sonarr会先保留现有文件同时继续在后台搜索更高画质。但它不会在每一次RSS同步时都去翻老剧如果你想立刻扫描已拥有剧集的更高画质可以在对应剧集页面执行“Search All Missing”然后选择升级搜索。6.5 数据库损坏或者磁盘满了怎么处理Sonarr在运行过程中如果磁盘空间满了偶发数据库损坏的情况。表现是页面打开很慢、日志里报数据库相关错误。处理方式先停容器把config目录里的sonarr.db复制出来备份尝试用SQLite工具执行PRAGMA integrity_check和PRAGMA recovery恢复如果修复不了可以把备份回退或者重建数据库。所以再次强调定期备份config目录真的很重要。6.6 新增剧集不在索引器里搜到怎么办如果你添加的剧集比较冷门或者刚发布几天还没被索引器收录完全搜不到是正常的。这时候可以适当增加“Available Delay”的分钟数给索引器留出抓取时间。还可以在剧集页面里对某一季执行搜索换成更具体的资源关键词再试。经验冷门资源建议等资源发布后24小时再搜索命中率会高很多。为什么因为很多索引器是靠站点爬虫定期抓取的不是实时同步太早搜基本等于白搜。7. 我在实际运行中的几个体会Sonarr不是一个“装好就完事”的工具它是需要你慢慢调教出自己习惯的一套系统。我用了两年多最大的感悟就是“路径规划是最底层的地基”所有前期省事跳过的地方后期几乎都会以报错的方式找你补课。如果你正在规划一套家用媒体服务我的建议是先从SonarrqBittorrentJellyfin这三个最小组合开始等跑顺了再引入Prowlarr和Radarr不要一上来就全家桶all in。前两周你会频繁看日志、调配置但过了这一阵之后它带来的便利是几何级别的提升。最后分享一个小技巧给Sonarr单独设一个固定的下载分类名比如tv-sonarr在qBittorrent里给这个分类限一份单独的下载速度上限避免它把整个宽带占满导致其他设备上网卡顿。细节虽然小但对于家庭网络来说体验差异非常明显。