17

Linux 基于 Transmission 搭建 PT 环境并实现外网访问

 2 years ago
source link: https://wuzhuti.cn/linux-install-transmission
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

群晖NAS + CentOS8主机

Transmission部署在CentOS主机上,通过NFS协议挂载群晖NAS的DownLoad文件夹作为PT下载的存储目录;通过内网穿透实现外网访问Transmission,实现远程下载;基于群晖NAS文件系统来管理下载好的资源。

安装 Transmission

使用yum安装

Transmission 包含在 EPEL 拓展仓库中,安装前需要安装 epel-release

yum -y install epel-release
yum -y update

EPEL 源安装成功后,即可安装 Transmission

yum install transmission-daemon

安装成功后,输入 systemctl start transmission-daemon.service 即可启动 Transmission。如果用浏览器打开 web 端(http:// 域名:9091 或 http://IP 地址:9091),会提示 “403: Forbidden”(页面打不开可能是防火墙没有放行相应端口),这是因为 Transmission 还没配置好。

因而,需要输入 systemctl stop transmission-daemon.service 停止 Transmission 服务,再进行配置。

注意,如果安装后没有启动过 Transmission,是不会生成配置文件。因而,需要先启动服务,再停止服务,生成 json 配置文件后再进行配置。值得注意的是,如果在服务启动时修改配置文件再重启服务,配置文件会自动恢复成重启前的内容。

接下来,就可以打开配置文件:

vi /var/lib/transmission/.config/transmission-daemon/settings.json

配置文件的参数非常多,可按自己需求进行修改。如果对 vi 编辑器不了解,Google 或百度一下就有简单的使用介绍。以下条目的修改是本人自己在用的参数:

"download-dir":"/data/nas-download/pt",
"encryption": 2,
“dht-enabled”: false,
"rpc-authentication-required": true,
"rpc-enabled": true,
"rpc-password": "输入你的管理密码",
"rpc-username": "管理你的用户名",
"rpc-whitelist-enabled": false,

更多配置参数,可去 Editing-Configuration-Files探索。

配置好后,保存退出 json 文件,再次输入 systemctl start transmission-daemon.service 启动 Transmission 服务,即可用浏览器打开 web 端(http://域名:9091 或 http://IP 地址:9091),上传种子进行下载。

使用 systemctl enable transmission-daemon 设置服务开机启动。

由于我transmission的下载目录时通过NFS挂载到下载机上,在使用过程中一直出现Permission denied问题,无论如何设置目录权限,都没有解决。后来通过修改transmission-daemon服务运行用户解决:

vim /usr/lib/systemd/system/transmission-daemon.servic

修改Userroot

注意:修改启动用户后,新的配置文件为~/.config/transmission-daemon/settings.json

Web UI 美化界面

Transmission 自带的网页 UI 比较简陋,可以安装 transmission-web-control进行美化:

wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control.sh --no-check-certificate
sh install-tr-control.sh
transmission-create -p -o ./example.torrent -t https://pt.pt-example.com/announce.php -s 4096 ./example.mkv

参数说明:

  • -p 表示这是私用的种子,这个 PT 必须要加上
  • -o 生成的种子输出位置,不要忘记把名字打上
  • -t tracker 服务器地址,自行查询各大站点
  • -s 每个文件块的大小,单位是 KB,设置的 4096,也就是 4M

内网穿透实现Transmission的外网访问

简单来说,要想外网访问家中的transmission,需要路由器通过端口映射的方式访问;由于我家宽带没有外网ip,想在外面访问pt服务只能使用外网穿透的方式,我选择frp来实现。使用内网穿透需要有一台具有外网ip的服务器。

服务端配置

服务器作为公网访问唯一的固定地址,即作为 server 端。内网客户端作为 client 端,会主动向 server 端创建连接,此时再从 server 端反向发送数据即可实现内网穿透。

wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

tar -zxvf frp_0.34.3_linux_amd64.tar.gz

mv frp_0.34.3_linux_amd64 /usr/frp

编辑目录下 frps.ini文件:

[common]
# frp 监听地址
bind_port = 7000

#frp 控制面板
dashboard_port = 7500

# dashboard 用户名密码可选,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

# transmission内网穿透
[transmission]
type = tcp
listen_port = 9010 
auth_token = 12345678

其他具体配置说明请参考frp中文文档

设置完成后执行

./frps -c frps.ini

客户端配置

客户端只需要多配置所链接的服务器端地址,以及要映射客户端的哪些服务端口。

wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz

tar -zxvf frp_0.34.3_linux_amd64.tar.gz

mv frp_0.34.3_linux_amd64 /usr/frp

编辑目录下 frpc.ini文件:

[common]
# 服务器端地址 填自己服务器端的IP地址或者域名
server_addr = X.X.X.X 
# 服务器端口
server_port = 7000 
# 授权token 要与服务器端的SSH密码一致才能映射 这个密码是6000端口的 1个密码可以对一个端口
auth_token = 12345678 
[ssh]
type = tcp
local_ip = 127.0.0.1 
local_port = 22
# 授权token 要与服务器端的transmission密码一致才能映射 这个密码是9091端口的 1个密码可以对一个端口
auth_token = 12345678 

设置完成后执行

./frpc -c frpc.ini

使用服务启动frpc请参考:FRP systemd 启动脚本 FRP systemd init config

参考文章:

Linux | 如何挂 PT:CentOS 7 安装配置美化 Transmission 及制作种子

CentOS 7.0 (Linux)下配置frp进行内网穿透


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK