Deluge 是一个功能齐全的跨平台 BitTorrent 客户端软件 (点此进入官网) ,可在 Linux, OS X, Unix 和 Windows 操作系统下工作。它使用 libtorrent 作为其后端,有包括 GTK+ 、网络远程客户端、命令行模式等多种用户界面。其设计方针是体积小巧且节约系统资源,通过丰富的插件来实现核心以外的众多功能。Deluge 响应 Freedesktop.org 的倡议,兼容于 GNOME , KDE , XFCE 和其它多种桌面环境。它还是一款自由软件,使用 GPLv3 进行授权。本文详细介绍如何在 Ubuntu 18.04 手动安装 Deluge 并使用 nginx 进行反代。注意,以下操作是在 root 账号下进行的,非 root 账号需提升到 root 权限。

安装依赖

使用如下命令安装依赖:

apt install python python-twisted python-openssl python-setuptools intltool python-xdg python-chardet geoip-database python-libtorrent python-notify python-pygame python-glade2 librsvg2-common xdg-utils python-mako

编译安装 Deluge

下载源码

使用如下命令下载 Deluge 源码,本文安装的版本为 deluge-1.3.15 ,其它 1.3.x 版本请修改相应的版本号:

wget http://download.deluge-torrent.org/source/deluge-1.3.15.tar.gz && tar -xzvf deluge-1.3.15.tar.gz && rm deluge-1.3.15.tar.gz && cd deluge-1.3.15

编译安装

终端中依次执行如下命令编译安装 Deluge :

python setup.py build
python setup.py install --install-layout=deb
python setup.py clean -a

创建服务

创建用户

为了安全起见,为 Deluge 运行创建一个非特权用户,以提高服务器的安全性。使用 --system 参数创建系统用户而非普通用户,系统用户没有密码且无法登录,同时将为该用户创建主目录 /home/deluge

adduser --system --group deluge

如果想让自己的账户能够访问和管理 Deluge 下载的文件,只需将自己的用户名添加到 deluge 组即可:

usermod -a -G deluge your_user_name  # 将 your_user_name 替换为你的用户名

创建 Deluge 服务

使用如下命令创建 Deluge 服务,以使用 systemctl 对服务进行管理:

cat > /etc/systemd/system/deluged.service << EOF
[Unit]
Description=Deluge Bittorrent Client Daemon
Documentation=man:deluged
After=network-online.target
[Service]
Type=simple
User=deluge
Group=deluge
UMask=007
ExecStart=/usr/bin/deluged -d
ExecStop=/usr/bin/kill /usr/bin/deluged
Restart=on-failure
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
EOF

启动服务并查看服务运行状态:

systemctl start deluged && systemctl status deluged

将服务设为开机自启动:

systemctl enable deluged

创建 Deluge-web 服务

使用如下命令创建 Deluge-web 服务,以使用 systemctl 对服务进行管理:

cat > /etc/systemd/system/deluge-web.service << EOF
[Unit]
Description=Deluge Bittorrent Client Web Interface
Documentation=man:deluge-web
After=network-online.target deluged.service
Wants=deluged.service
[Service]
Type=simple
User=deluge
Group=deluge
UMask=027
ExecStart=/usr/bin/deluge-web -p 8112
ExecStop=/usr/bin/kill /usr/bin/deluge-web
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

启动服务并查看服务运行状态:

systemctl start deluge-web && systemctl status deluge-web

将服务设为开机自启动:

systemctl enable deluge-web

使用 Nginx 进行反代

安装最新稳定版 nginx

使用如下命令添加 nginx 软件源:

apt update && apt install software-properties-common -y && add-apt-repository ppa:ondrej/nginx -y

安装最新稳定版 nginx :

apt update && apt install nginx-extras -y

创建 nginx 虚拟机

使用如下命令创建 nginx 虚拟机配置文件:

cat > /etc/nginx/sites-available/deluge-web << EOF
server {
  listen         80;
  server_name    example.com;  # 修改为自己想用的域名

  access_log  /var/log/nginx/example.com_access.log;  # 修改为自己想用的域名
  error_log   /var/log/nginx/example.com_error.log;   # 修改为自己想用的域名

  location / {
     proxy_pass http://127.0.0.1:8112;
     proxy_set_header X-Deluge-Base   "/";
     }
}
EOF

使用如下命令将虚拟机接入 nginx:

ln -s /etc/nginx/sites-available/deluge-web /etc/nginx/sites-enabled/deluge-web && service nginx reload

配置防火墙

允许 http 及 https:

ufw allow http && ufw allow https

启用 ssl

使用如下命令安装 cerbot :

add-apt-repository ppa:certbot/certbot -y && apt update && apt install python-certbot-nginx -y

为域名签发证书:

certbot  # 按提示操作,完成 ssl 配置

禁止 IP 及非配置域名访问

按官方建议删除 /etc/nginx/sites-enabled 下的 default 配置文件:

rm /etc/nginx/sites-enabled/default

创建 default_server ,禁止 IP 及非配置域名访问:

cat > /etc/nginx/sites-available/default_server << EOF
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    
    server_name _;
    return    500;
    
}

server {
   listen 443 ssl default_server;
   listen [::]:443 ssl default_server;
   ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;   #替换为任一可用ssl证书
   ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; #替换为任一可用ssl证书私钥
    
   server_name _;
   return    500;

}
EOF

启用 default_server 并重启 nginx :

ln -s /etc/nginx/sites-available/default_server /etc/nginx/sites-enabled/default_server && systemctl restart nginx

配置 Deluge

浏览器访问 example.com 即可打开 Deluge Web 管理界面,如下图所示,默认的登录密码为 deluge

deluge-login.PNG

修改登陆密码

登录后系统要求更改默认登陆密码,改成自己喜好的密码即可:

password.PNG

修改 Deluge 通信端口

进入 Preference - Network ,修改 Incoming PortsOutgoing Ports 为指定端口,本文以 12345 端口为例,运行以下命令将端口放行:

ufw allow 12345/tcp

ports.PNG

添加插件

Deluge 有很多实用插件,比较好用的一款插件名为 ​​ltConfig ,用于直接修改 libtorrent 的一些设置,提升 Deluge 的性能。首先进入 Deluge 官方插件列表(点此直达),下载 ​​ltConfig 插件并保存到本地。然后进入 Preference - Plugins ,点击 Install 按钮上传 ltConfig 插件,完成插件安装。安装完成后插件列表中就会出现 ltConfig ,将前面的勾调上,在 Categories 列便会出现 ltConfig ,如下图所示:

Plugins.PNG

进入 ltConfig ,选中 Apply settings on startup ,选择 High Performance Seed ,然后点击 Load Preset 按钮载入配置,点击 Apply 应用设置,退出配置窗口即可完成 Deluge 配置。

ItConfig.PNG

通过以上步骤便可在 Ubuntu 18.04 手动安装 Deluge 并使用 nginx 进行反代,本文结束。