Transmission Web Control-Transmission web端美化增强
关于本项目主要目的是想加强Transmission Web的操作能力，本项目原本在Google Code托管，现迁移至GitHub。 本项目设计之初仅针对PT站，因此增加了 Tracker 服务器分组及状态，但这不并适用于普通BT种子。另外，本项目仅为一套自定义的WebUI，不能代替 Transmission 工作，用户需要自行安装 Transmission 后才可正常使，Transmission 安装方法请稳步至官网：支持的 Transmission 版本Transmission 2.40 及以上版本（RPC版本：14及以上）支持的浏览器所有支持 HTML5 的浏览器 (Chrome 15.0.874，Firefox 8.0.1，IE 9.0.8112，Opera 11.52)功能列表基本功能：在线维护 Transmission 种子：增加、删除、改名等；在线修改 Transmission 参数；移动指定种子的数据存放目录；文件拖放添加种子；分页浏览方式加载种子；多语言环境支持，[查看已支持的语言；](多主题支持；特色功能：批量替换 Tracker；按 Trackers 分组浏览；按数据目录对种子进行分类；支持群晖 Download Station；By - @hitechbeijing支持用户自定义标签；[如何使用？](在 Linux 下安装与更新Transmission 在 Linux 下使用比较多，在安装 Transmission Web Control 之前，你可能需要一些 Linux 基本操作。如何安装（SSH方式）安装之前请确认系统已安装 Transmission；请确认你是否有 root 用户权限；获取最新的安装脚本使用终端以 root 用户登录到你的系统，以下脚本假设你已经使用 root 用户；（方法自行搜索）记住当前路径（如 /volume1/ ），以后用到，因为 wget 下载的文件会保存到当前目录；获取最新的安装脚本：wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh请留意执行结果，如果出现 install-tr-control-cn.sh.1 之类的提示，表示文件已存在，请使用 rm install-tr-control-cn.sh* 删除之前的脚本再重新执行上面的命令；如果提示 https 获取失败，请使用以下命令获取安装脚本：wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh --no-check-certificate如果提示文件已存在，可以通过 rm install-tr-control-cn.sh 进行删除后再执行下载；或者在 wget 后面添加 -N 参数，如：wget -N https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh --no-check-certificate执行安装脚本执行安装脚本（如果系统不支持 bash 命令，请尝试将 bash 改为 sh ）：bash install-tr-control-cn.sh如果命令成功执行，将出现以下界面：1按照提示，输入相应的数字，按回车即可；如果无法正常显示中文，请尝试设置SSH客户端编码为 UTF-8 ，如依然不能显示中文，请下载并使用英文安装脚本 install-tr-control.shwget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control.sh --no-check-certificate安装完成后，用浏览器访问 Transmission Web Interface（如： ）即可看到新的界面；如果无法看到新界面，可能是浏览器缓存了，请按 Ctrl + F5 强制刷新页面或 [清空缓存]( 后再重新打开；如果在知道自己的 Transmission Web 所在目录，也可以在安装脚本后面直接加路径，以避免搜索，如：bash install-tr-control-cn.sh /usr/local/transmission/share/transmission注意，路径最后 不要 加 web ；如何更新以下几种情况，需要更新 Transmission Web Control：Transmission 重新安装或升级之后；Transmission Web Control 版本更新时；如何更新：如果之前已经下载过安装脚本，只需要在安装脚本所在目录执行一次脚本即可：sudo bash install-tr-control-cn.sh 如果没有下载过安装脚本，或脚本有更新时，请参考安装方式重新下载安装脚本执行安装即可。
基本上不用改太多，DHT关了，白名单关了或者加上自己的IP，存储地址不需要改也不用动，改一下账号和密码，其他都没动"alt-speed-down": 50, 时段限速下载最大值，KB/s "alt-speed-enabled": false, 是否启用时段限速，默认关闭（计算方法这么复杂，如果不是特殊需求的话，还是不启用的好） "alt-speed-time-begin": 540, 时段限速开始时间，和时段限速结束时间，计算方法相同 "alt-speed-time-day": 127, 时段限速日期（星期几），127表示每天，是用7位二进制数表示，然后转换成十进制数填入。例如0000001表示周日，1000000表示周六，0000010表示周一，0000100表示周二。如果你只要在周六周日限速，该数应该为1000001，转换为十进制就是65；如果你只要在工作日（周一至周五）限速，该数应该为0111110，转换为十进制就是62 "alt-speed-time-enabled": false, 启用时段限速日期，默认不开启，如果开启，那么alt-speed-enabled一定要是false，两者之间只能启用一项，如果同时设置为true，则alt-speed-enabled有效 "alt-speed-time-end": 1020, 时段限速结束时间，从0点到开始时间的分钟数，例如8:00就是8*60=480。该时间用的是GMT，即北京时间-8小时，例如计划北京时间8:30分开始，这个数字就应该是（8-8+24）*60+30=1470 "alt-speed-up": 50, 计划时段限速值，KB/s "bind-address-ipv4": "0.0.0.0", IPv4地址绑定 "bind-address-ipv6": "::", IPv6地址绑定 "blocklist-enabled": false, 启用黑名单 "blocklist-url": "http://www.example.com/blocklist", "cache-size-mb": 4, 缓存大小，单位MB，建议设置内存大小的1/6~1/4 "dht-enabled": true, 启用DHT网络（通过tracker寻找节点），默认启用 "download-dir": "/var/lib/transmission/Downloads", 下载完成的保存路径 "download-queue-enabled": true, 开启下载队列 "download-queue-size": 5, 下载队列数设置，默认5，表示同时最多只能下载5个任务，多余的需要等待 "encryption": 1, 等于0时不加密，1是优先加密，2是必须加密 "idle-seeding-limit": 30, 空闲30分钟后停止做种，默认30 "idle-seeding-limit-enabled": false, 是否启用空闲时间停止做种 "incomplete-dir": "/var/lib/transmission/Downloads", 未下载完成的保存路径 "incomplete-dir-enabled": false, 启用未下载完成的保存路径 "lpd-enabled": false, 关闭LDP（本地节点发现，用于在本地网络寻找节点） "message-level": 2, 日志消息等级 "peer-congestion-algorithm": "", "peer-id-ttl-hours": 6, "peer-limit-global": 200, 全局种子最大连接数 "peer-limit-per-torrent": 50, 每个种子最多连接数 "peer-port": 51413, 传入端口号 "peer-port-random-high": 65535, 传入端口号随机值范围上限 "peer-port-random-low": 49152, 传入端口号随机值范围下限 "peer-port-random-on-start": false, 启用随机端口，默认是关闭的，如果改成true，则启动transmission时会在传入端口号范围上限和下限随机选 择一个端口 "peer-socket-tos": "default", 设置传输TCP数据包的服务类型https://en.wikipedia.org/wiki/Type_of_service "pex-enabled": true, 节点交换，参考https://en.wikipedia.org/wiki/Peer_exchange "port-forwarding-enabled": true, 启用端口转发（uPnP），如果路由支持并且也开启了uPnP，则路由会自动做端口映射 "preallocation": 1, 预分配文件磁盘空间，0=关闭，1=快速，2=完全，默认取1，防止文件下载了一半后才发现磁盘空间不够，取2时耗时较多，但是可以减少磁盘碎片 "prefetch-enabled": true, "queue-stalled-enabled": true, "queue-stalled-minutes": 30, "ratio-limit": 2, 上传下载比例达到多少停止做种 "ratio-limit-enabled": false, 启用上传下载比例 "rename-partial-files": true, 在未完成的文件名后添加后缀，默认true，incomplete-dir-enabled设置的路径带有.part后缀 以rpc开头的都是远程控制相关的参数 "rpc-authentication-required": false, 远程控制验证，默认关闭 "rpc-bind-address": "0.0.0.0", 远程控制地址绑定，默认表示任何地址都能访问 "rpc-enabled": true, 启用远程连接，默认启用 "rpc-password": "{cc29d57debb27f83469bbcd7fae81f64c789d3dfgw.f80LY", 默认密码这里是加密的，修改后会自动加密 "rpc-port": 9091, 网页GUI的端口号，可自行修改 "rpc-url": "/transmission/", "rpc-username": "whsir", 远程电脑登录网页GUI的用户名称 "rpc-whitelist": "127.0.0.1", 允许远程连接的IP地址白名单，支持通配符，多个IP以逗号分隔 "rpc-whitelist-enabled": false, 启用IP认证模式，如果启用，那么只能在白名单的地址才能连接 "scrape-paused-torrents-enabled": true, "script-torrent-done-enabled": false, 在torrent完成时运行脚本，默认关闭 "script-torrent-done-filename": "", 脚本路径 "seed-queue-enabled": false, "seed-queue-size": 10, "speed-limit-down": 100, 下载速度限制，默认100KB/s "speed-limit-down-enabled": false, 启用下载速度限制。默认关闭 "speed-limit-up": 100, 上传速度限制，默认100KB/s "speed-limit-up-enabled": false, 启用上传速度限制。默认关闭 "start-added-torrents": true, 添加种子文件后，自动开始，如果为false，添加种子后不会自动开始 "trash-original-torrent-files": false, 是否删除监控目录添加的种子文件，也就是说在watch-dir监控的目录下添加种子文件后，任务开始后会自 动删除添加的种子文件 "umask": 18, 文件权限的掩码，默认18即755权限，如果改成0是最高权限，下载回来的文件权限就是777 "upload-slots-per-torrent": 14, 每个种子上传连接数 "utp-enabled": true UTP传输是否启用 下面两个需要手动添加的选项，注意每行配置参数都是以逗号结尾，最后一行参数没有逗号（添加下面的参数一定要注意上面最后一行要以逗号结尾，例如"utp-enabled": true,） "watch-dir": "/root/test", 自动监控种子目录，将种子文件下载或放在此文件夹下，会自动开始下载文件 "watch-dir-enabled": true 是否开启自动监控种子目录转自： 吴昊博客
Transmission介绍Transmission是一个强大的BitTorrent开源客户端，实现了BT协议中描述的大多数功能。目前，在它的官方网站上提供了多个版本可以下载，包括：Mac、GTK+、QT版本，还有Daemon版本。Transmission支持DHT、Magnet Link、uTP以及PEX等特性。尤其是支持Magnet Link磁力链接下载十分重要，因为目前网上很多资源都是采用这种方式来分享的，而不是传统的.torrent文件，例如TPB、BTDigg。在Ubuntu的发行版中，Transmission软件包下面包含多个套件，这些套件的名字很容易搞混淆，它们分别是：transmission-gtk: GTK+界面的Transmission BT客户端。transmission-qt: QT界面的Transmission BT客户端。transmission-cli: 命令行界面的Transmission BT客户端，与QT、GTK+版本功能一样，是命令行下一个完备的BT客户端。transmission-daemon: 是一个Transmission的后台守护程序，本身不具备操作指令，只能通过Web客户端或者transmission-remote-cli来进行控制。这个程序特别适合安装在服务器上或者嵌入式系统中，以及一些没有显示器的设备上。transmission-remote-cli: 用来控制transmission-daemon的命令套件，本身不具备下载BT的功能，只能够配合daemon使用。这些套件不必都安装上，根据我的需求，只需要安装transmission-daemon即可。接下来讲详细介绍daemon的安装和配置。Transmission的安装在Ubuntu中，打开终端，输入以下命令安装：sudo apt-get install transmission-daemon安装过程中会顺带把transmission-cli也安装上，安装完毕后系统会多出如下一些命令行工具 * transmission-cli： 独立的命令行客户端。 * transmission-create： 用来建立.torrent种子文件的命令行工具。 * transmission-daemon： 后台守护程序。 * transmission-edit： 用来修改.torrent种子文件的announce URL。 * transmission-remote： 控制daemon的程序。 * transmission-show：查看.torrent文件的信息。 安装好后，Transmission-daemon有一些默认设置参考链接。默认配置目录清单启动初始化脚本 /etc/init.d/transmission-daemon 基本配置文件 /etc/default/transmission-daemon 详细配置文件目录 /var/lib/transmsision-daemon/info 下载存储目录 /var/lib/transmission-daemon/downloads 配置文件目录里面包含如下一些文件：settings.json： 主要的配置文件，设置daemon的各项参数，包括RPC的用户名密码配置。它实际上是一个符号链接，指向的原始文件是/etc/transmission-daemon/settings.json。里面的参数解释可以参考官网的配置说明。torrents/： 用户存放.torrent种子文件的目录,凡是添加到下载任务的种子，都存放在这里。.torrent的命名包含,种子文件本身的名字和种子的SHA1 HASH值。resume/： 该存放了.resume文件，.resume文件包含了一个种子的信息，例如该文件哪些部分被下载了，下载的数据存储的位置等等。blocklists/： 存储被屏蔽的peer的地址。dht.dat： 存储DHT节点信息。默认用户默认创建一个用户来专门运行transmission-daemon，用户名为：debian-transmission。注意： 如果使用另外一个用户来运行transmission-daemon的话，会在该用户的目录下，创建一个.config/transmission-daemon的文件夹，在这个文件夹里有单独的settings.json配置文件来配置这个用户对应的daemon进程，下载目录也会变为$HOME/Download。按照默认用户和默认配置目录来正确启动和停止transmission-daemon的方式如下。我也将采用这种方式。# 启动 sudo service transmission-daemon start # 停止 sudo service transmission-daemon stop # 启动 /etc/init.d/transmission-daemon start # 停止 /etc/init.d/transmission-daemon stop启动成功后，可以看到daemon的进程如下$ ps aux | grep 'transmission-daemon' debian-+ 5509 0.0 0.6 250700 6456 ? Ssl 04:31 0:00 /usr/bin/transmission-daemon -f --config-dir /var/lib/transmission-daemon/infoTransmission的配置配置主要是通过修改/var/lib/transmission-daemon/info/settings.json文件中的参数来实现的。注意：在编辑Transmission的配置文件的时候，需要先关闭daemon进程，否则编辑的参数将会被恢复到原来的状态。配置RPC最关键的就是要配置RPC，因为无论是Web界面还是CLI都是通过RPC协议和daemon来进行交互的。在settings.json中与RPC相关的参数有以下几个：rpc-authentication-required: Boolean (default = false)rpc-bind-address: String (default = “0.0.0.0”) Where to listen for RPC connectionsrpc-enabled: Boolean (default = true)rpc-password: Stringrpc-port: Number (default = 9091)rpc-url: String (default = /transmission/. Added in v2.2)rpc-username: Stringrpc-whitelist: String (Comma-delimited list of IP addresses. Wildcards allowed using ‘‘. Example: “127.0.0.,192.168..“, Default: “127.0.0.1” )rpc-whitelist-enabled: Boolean (default = true)打开文件/var/lib/transmission-daemon/info/settings.json，修改配置参数如下：{ ...... "rpc-authentication-required": true "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "123456", "rpc-port": 9091, "rpc-url": "/transmission/", "rpc-username": "transmission", "rpc-whitelist": "*", "rpc-whitelist-enabled": true, ...... }我将用户名设置为了transmission，密码设置为了123456，whitelist设置成了”*”，表示任何IP都可以通过RPC协议访问这个daemon。需要注意的是password设置成了明文。当启动daemon之后，daemon会自动检测密码设置。如果发现密码配置被修改了，daemon会自动计算修改后的密码的HASH值，并用这个HASH值替换掉配置文件中的明文密码，这样会更安全。输入service transmission-daemon start启动程序后，打开settings.json，会看到rpc-password一项被改为了HASH值。rpc-password": "{5f4bd5498bddd9aa2ad8f4d475dcebe23e9d8c8bsorspnUE",配置其它参数settings.json里面还有很多参数可以配置，包括上传/下载速度的限制、DHT的配置、端口设置等等，详细的参数解释可以参考官网的配置说明，这里不再赘述。使用Web界面控制Transmission daemon经过上述配置后，我们就可以通过Web界面来访问和控制Transmission daemon了。在浏览器里面输入以下地址http://<your.server.ip.addr>:9091/transmission/web/浏览器提示你输入刚才配置的用户名和密码，就可以成功登陆Web管理界面。界面和桌面版的GUI程序有点像，操作起来很方便。