当前位置: 首页 > 工具软件 > Transmission > 使用案例 >

家用服务器搭建总结-Transmission(一)

韦昊焜
2023-12-01

0 前言

2010年春节,我买了人生中的第一台笔记本电脑,联想G450,花费4200大洋。这台笔记本跟着我,一直折腾了十年,从最开始的Windows7到后续上Win+Linux双系统,到后来单Linux,前几天又换上了双Linux。它支持了我的基本办公需求,陪我打过warcraft3,炉石传说等游戏,陪过我熬夜写程序。现在,它依旧在发挥余热,作为一台家庭服务器,安静的运行。

1 规划

这台电脑,从出厂到现在,只经历过一次光驱位换硬盘位的改造(后因新加的固态硬盘水土不服回退了),其他没有任何硬件的升级,包括内存和CPU,甚至散热组件都没换过。期间的优化就是日常的去灰。
先了解下硬件情况和实际需求。

1.1 硬件

内存:2GB,分配大一点的swap,对性能没要求还能忍
CPU:奔腾,对性能没要求还能忍
硬盘:320GB,外接usb硬盘还能忍

1.2 需求

  • 下载PT
  • 家庭文件管理
  • 多用户访问,范围控制

1.3 选型

  • 操作系统:Debian10(CentOS软件太老,Archlinux滚动太频繁)
  • 下载工具:Transmission + flexget(稳定下载 + 远程rss订阅下载)
  • 文件共享:Samba(提供给Android电视、手机访问,使用vlc的安卓版)
  • Android设备支持:nextcloud(提供文件同步等功能)

1.4 其他服务

  • 数据库:postgresql
  • 固定IP
  • 远程访问:openssh-server(安装系统时勾选上)

1.5 用户管理

  • 下载程序用户:debian-transmission
  • 网站执行用户:www-data
  • 使用者控制:dad, mom, baby
  • 组控制:family

1.6 执行步骤

  1. 安装Debian
  2. 系统初始化配置
  3. transmission
  4. samba
  5. flexget
  6. nextcloud

2 安装Debian10

选择Debian10 + Xfce + Chinese Support。正常完成系统安装。

3 系统初始化配置

3.1 用户dad

dad用户在安装系统的时候就设置好了,把dad增加sudo权限。

$ (root) visudo                   # 将新增加的用户 dad 增加 sudo 权限

root ALL=(ALL:ALL) ALL 行后,增加dad ALL=(ALL:ALL) ALL内容:

# User privilege specification
root    ALL=(ALL:ALL) ALL
dad     ALL=(ALL:ALL) ALL

3.2 用户mom

$ groupadd mom                    # dad有自己的组,mom也要有自己的组
$ useradd -m mom -g mom -s /bin/bash -d /home/mom
$ passwd mom                      # 设置 mom 初始密码

3.3 安装常用软件

$ apt install git vim zsh

3.4 固定ip

固定IP设置:

$ vim /etc/network/interfaces

增加对固定网络interface的设置,我这里的interface名字是enp7s0下面用这个名字:

# The static Ethertic interface enp7s0                                          
auto enp7s0                                                                     
iface enp7s0 inet static                                                        
address 192.168.1.20                                                            
netmask 255.255.255.0                                                           
gateway 192.168.1.1        

4 Transmission

原来的操作系统是Archlinux,用普通用户跑transmission-daemon,原有的Transmission位置是~/.config/transmission-daemon/,Windows上的位置应该是C:\Users\%USER%\AppData\Local\transmission\,根据实际情况执行下列命令,下方用$OLD_TRANSMISSION_DIR代替。
假设原有的数据,放在/mnt/U/PrivateTracker目录内。

$ apt install transmission              # 安装 vim 和 transmission
$ systemctl stop transmission-daemon    # 迁移时请注意关掉transmission-daemon
# 修改文件夹及子文件夹的所有者
$ chown debian-transmission:debian-transmission -R /mnt/U/PrivateTracker
# 复制原有的种子文件
$ cp $OLD_TRANSMISSION_DIR/info/torrents/*.torrent /var/lib3/transmission-daemon/info/torrents/
# 复制resume文件,里面有种子信息和种子位置信息,所以最好迁移前和迁移后的路径保持一致
$ cp $OLD_TRANSMISSION_DIR/info/resume/* /var/lib/transmission-daemon/info/resume/
# 修改文件所有者
$ chown debian-transmission:debian-transmission -R /var/lib/transmission-daemon/info/{resume/,torrents/}

修改transmission配置,和之前的配置参考比对修改。我去掉了访问控制,因为是家庭内用,就不控制了。

$ vim /var/lib/transmission-daemon/info/settings.json  # 修改 transmission 设置(要在transmission-daemon退出的情况下修改)

迁移完成后,重启transmission-daemon:

$ systemctl restart transmission-daemon

创建alias方便通过终端用:

# file: ~/.bash_alias
alias tslocal='transmission-remote 127.0.0.1'

5 后续

 类似资料: