前言

Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面。Transmission以MIT许可证和GNU通用公共许可证双许可证授权,因此是一款自由软件。

本着服务器不用也是浪费,还不如挂PT,赚点魔力值。

创建程序存储目录

 sudo mkdir -p /home/docker/BT/transmission

进入文件夹

cd /home/docker/BT/transmission

拉取Transmission容器

sudo docker pull linuxserver/transmission

01-拉取容器-1820230204-561

创建docker容器

容器仓库地址:https://hub.docker.com/r/linuxserver/transmission

sudo docker run --restart=always --name transmission -d \
-e TRANSMISSION_WEB_HOME=/transmission-web-control/ \
-e USER=test \
-e PASS=testpassword \
-p 3091:9091 \
-p 51413:51413 \
-p 51413:51413/udp \
-v /home/docker/BT/transmission/config:/config \
-v /home/docker/BT/transmission/downloads:/downloads \
-v /home/docker/BT/transmission/watch:/watch \
linuxserver/transmission
  • USER:登录用户名
  • PASS:登录密码
  • -p:容器对主机映射端口。

其中主要端口是3091,该端口作用是容器Web UI管理进入的端口,在后续我们会使用域名解析该端口上。

开放端口

开放系统服务器端口

我这里是Ubuntu系统,使用自带的UFW防火墙

sudo ufw allow 3091 comment "BT transmission下载"

开放服务器安全组端口

打开服务器的安全组,设置入站方向规则,添加一条3091端口的规则,协议选择TCP就行。

打开Transmission Web页面管理

http://IP:3091

在这里插入图片描述

刚刚创建容器时设置的账号和密码,输入登录即可

  • 用户名:test

  • 密码:testpassword

下面是添加域名解析,并且添加SSL证书,如果你不打算添加域名解析,下面就不需要看了。

添加域名解析

打开域名商,添加一条记录

  • 记录类型:A
  • 主机记录:btsion1
  • 解析请求来源:默认
  • 记录值:自己服务器的IP地址
  • TTL:10分钟

添加Nginx反向代理

sudo vim /usr/local/nginx/conf/conf.d/conf.default

将以下内容下入文件

# Transmission种子下载器
server {
  listen 80;
  server_name btsion1.hikki.site;
  return       301 https://$server_name$request_uri;
}
server {
  listen                443 ssl;
  listen                [::]:443 ssl;
  server_name           btsion1.hikki.site;
  ssl_certificate       cert/btsion1.hikki.site/cert.pem;
  ssl_certificate_key   cert/btsion1.hikki.site/key.pem;

  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
   #表示使用的加密套件的类型。
  ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
  ssl_prefer_server_ciphers on;
  location / {
    proxy_set_header Host $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;
    proxy_pass http://localhost:3091;
  }
}

下面是添加SSL证书,如果你不打算添加SSL证书,可以直接看最后一部分“关闭端口”。

添加SSL

添加SSL主要参考本站:https://blog.hikki.site/2e63f4a4.html

以下所有操作都需要在管理员权限下进行

申请域名证书

acme.sh --issue --dns dns_ali -d btsion1.hikki.site

03-申请证书-1820230204-673

创建证书存放目录

mkdir -p /usr/local/nginx/conf/cert/btsion1.hikki.site/

安装证书

acme.sh --install-cert -d btsion1.hikki.site --key-file   /usr/local/nginx/conf/cert/btsion1.hikki.site/key.pem   --fullchain-file /usr/local/nginx/conf/cert/btsion1.hikki.site/cert.pem --reloadcmd     "/usr/local/nginx/sbin/nginx -s reload"

访问测试

访问https://btsion1.hikki.site成功。

刚刚创建容器时设置的账号和密码,输入登录即可

  • 用户名:test

  • 密码:testpassword

关闭端口

在上面已经配置了域名解析做了反向代理,这样就不需要端口访问了,就可以关闭端口了,减少服务器的暴露端口数量,提高服务器的安全性。

关闭系统端口

我这里是Ubuntu系统,使用自带的UFW防火墙

sudo ufw delete 3091

关闭服务器安全组端口

打开服务器的安全组,设置入站方向规则,删除刚刚添加的入站端口。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐