如何在Debian Server / Desktop上安装SABnzbd Usenet客户端
萨布兹 是一个免费的基于Web的开源和基于Usenet的客户端,用于在Usenet上下载二进制内容(图像,音频,视频,电子书等)。 它是跨平台的,可用于Linux,BSD,macOS,UNIX,Windows,Synology,QNAP等。 本教程将向您展示 如何在Debian上安装SABnzbd。
SABnzbd功能
- 您可以使用Web浏览器从任何地方访问它。
- 响应式Web界面。
- 支持多个Usenet服务器(提供程序)。
- 移动应用可用于Android和iOS
- Sonarr,Sickrage,CouchPotato和Headphones之类的应用程序可以与SABnzbd和 自动化您的下载过程。
- SABnzbd还可以阅读和处理RSS feed,激活自定义脚本,并通过邮件,咆哮,徘徊,推翻和推弹通知您。
- NZB(纽兹二进制)索引器集成。 NZB文件就像种子文件,而NZB索引器就像种子网站。
- 还有很多
如何在Debian上安装SABnzbd Usenet客户端
可从默认的Debian存储库中获得SABnzbd。 您需要启用 contrib
组件以进行安装。
sudo apt install software-properties-common sudo add-apt-repository contrib sudo apt update sudo apt install sabnzbdplus python-sabyenc par2
SABYenc模块可以帮助提高CPU受限设备上的下载速度。
为SABnzbd创建系统服务单元
虽然 sabnzbdplus
软件包提供了传统的Init脚本(/etc/init.d/sabnzbdplus
),我发现它不起作用。 我运行以下命令来启动服务。
sudo service sabnzbdplus start
如果使用以下命令列出Debian系统上的侦听端口,则找不到8080端口(默认情况下,SABnzbd侦听8080端口),这表明该端口未运行。
sudo ss -lnpt | grep 8080
启动SABnzbd的更好方法是使用Systemd服务单元。 我们可以使用命令行文本编辑器(例如Nano)来为SABnzbd创建Systemd服务。
sudo nano /etc/systemd/system/sabnzbd.service
将以下文本放入文件中。
[Unit] Description=SABnzbd Usenet Client After=network.target [Service] Type=simple User=sabnzbd Group=sabnzbd ExecStart=/usr/bin/python -OO /usr/bin/sabnzbdplus --browser 0 ExecStop=/usr/bin/pkill sabnzbdplus Restart=always SyslogIdentifier=SABnzbd Usenet Client [Install] WantedBy=multi-user.target
默认情况下,SABnzbd侦听端口8080。 如果系统上的另一个进程正在使用此端口,则SABnzbd将自动选择其他端口。 我建议直接在 ExecStart
如下所示的参数,这将使SABnzbd侦听端口8081。
ExecStart=/usr/bin/python -OO /usr/bin/sabnzbdplus -s 127.0.0.1:8081 --browser 0
保存并关闭文件。 (要在Nano文本编辑器中保存文件,请按 Ctrl+O
,然后按 Enter
确认。 要关闭文件,请按 Ctrl+X
)
然后重新加载Systemd。
sudo systemctl daemon-reload
请注意,SABnzbd不需要root特权即可运行。 因此我们在.service文件中指定了SABnzbd应该作为 sabnzbd
用户和组,没有root特权。 创建 sabnzbd
系统用户和组,使用以下命令。 主目录将用于保存配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)。
sudo adduser --system --home /home/sabnzbd --group sabnzbd
现在,我们可以使用systemd服务启动sabnzbd。
sudo systemctl start sabnzbd
在启动时启用自动启动。
sudo systemctl enable sabnzbd
现在检查sabnzbd的状态。
systemctl status sabnzbd
样本输出:
启动安装向导
您可以输入 127.0.0.1:8080/sabnzbd/wizard
在任何网络浏览器中启动快速启动向导。 如果在远程Debian服务器上安装了SABnzbd,则需要使用Nginx或Apache设置反向代理才能访问Web UI,本教程后面将对此进行说明。
选择一种语言。 在下一个屏幕中,输入Usenet提供程序的服务器详细信息。 我使用NewsDemon,它提供15天的免费试用期。 这些服务器详细信息可以从Usenet提供商处获得。 如果您的Usenet支持SSL,请确保选中SSL。
为了从Usenet下载内容(图像,音频,视频,电子书等),您需要提供 新西兰银行 文件到SABnzbd。 NZB文件类似于.torrent文件,可以从Usenet索引网站(例如nzbfinder.ws)下载。 这些站点大多数基于免费增值模式。 您可以选择构建自己的免费Usenet索引器,但是现在对于Usenet初学者,最好在这些Usenet索引站点中注册免费帐户,以查看可用的内容。 从屏幕截图中可以看到,下载速度非常快。 (16.8 MB /秒= 134.4兆位/秒)
如何更改下载目标文件夹
默认的下载文件夹是 /home/sabnzbd/Downloads
。 如果要将其更改为另一个目录(例如,外部硬盘驱动器),请单击 Folder
SABnzbd Web界面中的菜单。 然后单击浏览器按钮进行更改。
请注意 sabnzbd
用户需要对您的下载目标文件夹具有读写权限。 如果使用外部USB硬盘驱动器,则可以运行以下命令来授予权限。
sudo setfacl -R -m u:sabnzbd:rwx /media/linuxbabe/
我的外部USB硬盘驱动器安装在 /media/linuxbabe/
,请适当更改。
设置反向代理
要使用域名从远程连接(例如,LAN外部)访问SABnzbd Web界面,可以使用Nginx或Apache设置反向代理。
如果您没有真实域名,建议您到NameCheap购买。 价格低廉,终身免费提供Whois隐私保护。
Nginx的
在Debian上安装Nginx。
sudo apt install nginx
启动Nginx Web服务器。
sudo systemctl start nginx
然后在中创建一个新的服务器阻止文件 /etc/nginx/conf.d/
目录。
sudo nano /etc/nginx/conf.d/sabnzbd.conf
将以下文本粘贴到文件中。 更换 sabnzbd.your-domain.com
使用您的首选域名,不要忘记为其创建DNS A记录。 如果使用其他端口,请将8080更改为您自己的端口号。
server { listen 80; listen [::]:80; server_name sabnzbd.your-domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
保存并关闭文件。 然后测试Nginx配置。
sudo nginx -t
如果测试成功,请重新加载Nginx。
sudo systemctl reload nginx
现在您可以通过以下方式访问SABnzbd Web界面 sabnzbd.your-domain.com
。 如果看到以下错误:
Access denied - Hostname verification failed
然后您需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini
)并添加 sabnzbd.your-domain.com
进入白名单。
host_whitelist = sabnzbd.your-domain.com
然后重新启动SABnzbd。
sudo systemctl restart sabnzbd
阿帕奇
如果使用Apache Web服务器而不是Nginx,请按照以下说明设置反向代理。
安装Apache Web服务器。
sudo apt install apache2
要将Apache用作反向代理,我们需要启用 proxy
模块,我们还将启用 rewrite
模块。
sudo a2enmod proxy proxy_http rewrite
然后为SABnzbd创建一个虚拟主机文件。
sudo nano /etc/apache2/sites-available/sabnzbd.conf
将以下文本放入文件中。 更换 sabnzbd.your-domain.com
使用您的实际域名,不要忘记为其创建DNS A记录。 如果使用其他端口,请将8080更改为您自己的端口号。
<VirtualHost *:80> ServerName sabnzbd.your-domain.com ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ </VirtualHost>
保存并关闭文件。 然后启用此虚拟主机。
sudo a2ensite sabnzbd.conf
重新加载Apache以使更改生效。
sudo systemctl reload apache2
现在,您可以通过输入域名来远程访问SABnzbd(sabnzbd.your-domain.com
)在浏览器地址栏中。 如果看到以下错误:
Access denied - Hostname verification failed
然后您需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini
)并添加 sabnzbd.your-domain.com
进入白名单。
host_whitelist = sabnzbd.your-domain.com
然后重新启动SABnzbd。
sudo systemctl restart sabnzbd
启用HTTPS
为了在您从外部访问SABnzbd Web界面时对HTTP流量进行加密,我们可以通过安装由Let’s Encrypt发行的免费TLS证书来启用HTTPS。 运行以下命令以在Debian上安装Let’s Encrypt客户端(certbot)。
sudo apt install certbot
如果使用Nginx,则还需要安装Certbot Nginx插件。
sudo apt install python3-certbot-nginx
接下来,运行以下命令以获取并安装TLS证书。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d sabnzbd.your-domain.com
如果使用Apache,则需要安装Certbot Apache插件。
sudo apt install python3-certbot-apache
接下来,运行以下命令以获取并安装TLS证书。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d sabnzbd.your-domain.com
哪里:
--nginx
:使用nginx插件。--apache
:使用Apache插件。--agree-tos
:同意服务条款。--redirect
:通过301重定向强制HTTPS。--hsts
:将Strict-Transport-Security标头添加到每个HTTP响应。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。--staple-ocsp
:启用OCSP装订。 有效的OCSP响应被装订到服务器在TLS期间提供的证书。
现在应该获得证书并自动安装。
限制访问
如果可以从公共Internet访问SABnzbd,则设置用户名和密码非常重要,可以在 设定档 > 一般 > 安全 部分。
包起来
而已! 我希望本教程可以帮助您在Debian上安装SABnzbd。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂