参考文章
https://wiki.openwrt.org/doc/uci/transmission

1. 安装包

必装的 transmission-daemon-openssl (后台服务)
选装的 transmission-cli-openssl (命令行管理) transmission-remote-openssl (远程UI管理) transmission-web-openssl (web管理)
我选择的是 daemon 和 remote, 在编译OpenWrt的时候已经加入
另外需要安装一个客户端, 我在windows下使用的是 Transmission Remote GUI https://sourceforge.net/projects/transgui/

2. 挂载外置U盘
fdisk /dev/sda, 如果内存小于128M, 需要分一个64M~128M大小的primary区做swap, 剩下的格式化为ext4, 并挂载到/mnt/sda2 下
需要创建两个目录done, incomplete, 分别用于存放 完成/未完成的下载文件

3. 配置这是我的配置文件

  1. config transmission
  2. option enabled
  3. option config_dir '/tmp/transmission'
  4. #option user 'nobody'
  5. option mem_percentage
  6. option nice
  7. option ionice_flags '-c 3'
  8. option alt_speed_down
  9. option alt_speed_enabled false
  10. option alt_speed_time_begin
  11. option alt_speed_time_day
  12. option alt_speed_time_enabled false
  13. option alt_speed_time_end
  14. option alt_speed_up
  15. option bind_address_ipv4 '0.0.0.0'
  16. option bind_address_ipv6 '::'
  17. option blocklist_enabled false
  18. option blocklist_url ''
  19. option cache_size_mb
  20. option dht_enabled true
  21. option download_dir '/mnt/sda2/done'
  22. option download_queue_enabled true
  23. option download_queue_size
  24. option encryption
  25. option idle_seeding_limit
  26. option idle_seeding_limit_enabled false
  27. option incomplete_dir '/mnt/sda2/incomplete'
  28. option incomplete_dir_enabled true
  29. option lazy_bitfield_enabled true
  30. option lpd_enabled false
  31. option message_level
  32. option peer_congestion_algorithm ''
  33. option peer_limit_global
  34. option peer_limit_per_torrent
  35. option peer_port
  36. option peer_port_random_high
  37. option peer_port_random_low
  38. option peer_port_random_on_start false
  39. option peer_socket_tos 'default'
  40. option pex_enabled true
  41. option port_forwarding_enabled true
  42. option preallocation
  43. option prefetch_enabled true
  44. option queue_stalled_enabled true
  45. option queue_stalled_minutes
  46. option ratio_limit 2.0000
  47. option ratio_limit_enabled false
  48. option rename_partial_files true
  49. option rpc_authentication_required false
  50. option rpc_bind_address '0.0.0.0'
  51. option rpc_enabled true
  52. option rpc_password ''
  53. option rpc_port
  54. option rpc_url '/transmission/'
  55. option rpc_username ''
  56. option rpc_whitelist '192.168.1.*'
  57. option rpc_whitelist_enabled true
  58. option scrape_paused_torrents_enabled true
  59. option script_torrent_done_enabled false
  60. option script_torrent_done_filename ''
  61. option seed_queue_enabled false
  62. option seed_queue_size
  63. option speed_limit_down
  64. option speed_limit_down_enabled false
  65. option speed_limit_up
  66. option speed_limit_up_enabled false
  67. option start_added_torrents true
  68. option trash_original_torrent_files false
  69. option umask
  70. option upload_slots_per_torrent
  71. option utp_enabled true
  72. option scrape_paused_torrents true
  73. option watch_dir_enabled false
  74. option watch_dir ''

对各项参数的说明, 可以查看上面的参考页, 也可以查看Transmission项目的文档
https://github.com/transmission/transmission/wiki/Editing-Configuration-Files

对于设置的三个路径: config, incomplete, done, 要检查目录的owner是否与transmission daemon的用户一致. 程序运行用户默认是 transmission:transmission

OpenWrt重启后丢失下载列表

这是因为配置文件设置在了临时文件上, 重启后这个文件就被重置了. 请设置这个参数到实际的存储上

  1. option config_dir '/mnt/sda1/transmission/.config' #HDD is mounted on /mnt/sda1

Port Forward

如果transmission-daemon的端口不能被局域网外的设备连接, 下载性能就会打很大的折扣, 需要检查port forward是否已经打开.

设置port_forwarding_enabled为true, 开启port forwarding, 然后设置peer_port为一个非51413的端口(在4xxxx~6xxxx间随机),

1) 如果当前transmission运行在网关路由下级设备, 而此设备是直接连到此网关路由的lan里的, 需要在网关路由上打开此IP的port forward. 一个设置的例子:

  1. Name: forward-for-bt1,
  2. Match: IPv4-TCP, UDP, From any host in wan Via any router IP at port
  3. Forward to: IP 192.168.10.100, port in lan

在/etc/config/firewall中是

  1. config redirect
  2. option target 'DNAT'
  3. option src 'wan'
  4. option dest 'lan'
  5. option proto 'tcp udp'
  6. option src_dport ''
  7. option dest_ip '192.168.10.100'
  8. option dest_port ''
  9. option name 'forward-for-bt1'

测试: 通过外网口, telnet a.a.a.a 59456 能出现已连接提示即成功

2) 如果当前transmission运行在一个路由的lan里, 而这个路由的wan又连接到网关路由的lan, 则除了上面的设置外, 还需要在当前路由上打开端口, 允许外界通过wan访问此设备的端口

  1. Name: Allow-for-bt, Any tcp, udp From any host in wan To any router IP at port on this device

在/etc/config/firewall中是

  1. config rule
  2. option target 'ACCEPT'
  3. option src 'wan'
  4. option proto 'tcp udp'
  5. option dest_port ''
  6. option name 'Allow-for-bt'

测试同上

4. 启动
注意: 上面配置中的option enabled 必须为1, 否则不会启动

  1. # 随路由器启动
  2. /etc/init.d/transmission enable
  3. # 启动服务
  4. /etc/init.d/transmission start
  5.  
  6. # 对应的停止和不随服务器启动
  7. /etc/init.d/transmission stop
  8. /etc/init.d/transmission disable

5. 查看日志
日志信息在 system log. 如果需要更多信息, 修改配置中的 message-level -- (0 = None, 1 = Error, 2 = Info, 3 = Debug, default = 2)

6. 使用Transmission Remote GUI连接添加新服务地址192.168.1.1 9091后, 就可以连接, 并往上面添加bt任务了

Update 2017-02-07: 使用U盘和移动硬盘的下载性能差别

之前图方便, 一直是使用U盘作为Transmission的存储, 但是在下载过程中, 经常会发生Overheated(过热)现象, 不是说发热, 而是说当下载速度开始突然增大时, 路由器的负载会突然加大, 然后失去响应, 速度陡降到零, 然后过一段时间恢复后, 又来一次. 在种子数量较多时, 通过 top -d1可以观察到, 整个系统负载一直是在2.x~4.x之间, 非常高. 但是transmission-daemon本身所占的cpu并不高, 只有10%~20%, 这些额外的负载, 很大可能是在IO上.

这些问题在换成移动硬盘作为存储后就消失了. 此时系统负载最高不超过0.8, transmission-daemon占的cpu在5%~10%之间. 从上级路由中看到流量一直保持在一个比较平稳的曲线上, 而不像U盘做存储时那种尖锐的毛刺.

OpenWrt 中安装配置Transmission的更多相关文章

  1. Eclipse中安装配置Tomcat

    Eclipse(4.4.x及以上)中安装配置Tomcat 以下配置说明全部针对免安装版本 基于tomcat的安装目录和运行目录是可以不同的,本文都会进行说明 首先简单介绍一下tomcat的目录结构,一 ...

  2. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践

    欢迎转载,转载时请保留全文及出处. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践 Apache安装 下载源程序(http://httpd.ap ...

  3. 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法

    在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法   对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...

  4. 在Docker中安装配置Oracle12c并实现数据持久化

    在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...

  5. Linux中安装配置spark集群

    一. Spark简介 Spark是一个通用的并行计算框架,由UCBerkeley的AMP实验室开发.Spark基于map reduce 算法模式实现的分布式计算,拥有Hadoop MapReduce所 ...

  6. Linux中安装配置hadoop集群

    一. 简介 参考了网上许多教程,最终把hadoop在ubuntu14.04中安装配置成功.下面就把详细的安装步骤叙述一下.我所使用的环境:两台ubuntu 14.04 64位的台式机,hadoop选择 ...

  7. CentOS6.6系统中安装配置Samba的教程

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通 ...

  8. 如何在CentOS系统中安装配置SNMP服务

    CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络 ...

  9. IIS5.1、IIS6.0、IIS7.5中安装配置MVC 3

    本文主要介绍在IIS5.1.IIS6.0.IIS7.5中安装配置MVC 3的具体办法! 正文: IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装AS ...

随机推荐

  1. pytest文档24-fixture的作用范围(scope)

    fixture作用范围 fixture里面有个scope参数可以控制fixture的作用范围:session > module > class > function fixture( ...

  2. rman多通道全备份脚本

     run{ allocate channel d1 type disk; allocate channel d2 type disk; allocate channel d3 type disk; ...

  3. Common Internet File System

    CIFS (Common Internet File System) is a protocol that gained popularity around the year 2000, as ven ...

  4. python的内存回收机制即gc模块讲解

    最后容易造成内存问题的通常就是全局单例.全局缓存.长期存活的对象 引用计数(主要), 标记清除, 分代收集(辅助) 引用计数为0则会被gc回收.标记删除可以解决循环引用的问题.分代:0代--年轻代:1 ...

  5. @JVM新一代的垃圾回收算法

    垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限.但是他无法解决的一个问题,就是Full GC所带来的应用暂停.在一些对实时性要 ...

  6. go语言基础之切片做函数参数

    1.切片做函数参数 (备注:用了冒泡排序) 示例: package main //必须有个main包 import "fmt" import "math/rand&quo ...

  7. HTML5 Canvas,WebGL,CSS Shaders,GLSL的暧昧关系 【转】

    HTML5 Canvas,WebGL,CSS Shaders,GLSL的暧昧关系 这篇文章发布于 2011年10月10日,星期一,17:14,归类于 canvas相关. 阅读 58013 次, 今日 ...

  8. 解决报错"Your security system have blocked an application with expired or not yet valid certificate from running"

    方法如下: Go to Control Panel Java in the Security tab click the "Edit Site List-" button clic ...

  9. 如何查看ETW Trace?

    三种方法: LogParser Tractrpt - C:\Windows\System32 SvcTraceViewer.exe   后面的链接中有使用的详细步骤.   参考资料 ========= ...

  10. 取消Eclipse SVN的自动链接方式

    1. 选中指定的项目名(有文件夹样子的那个) 2. 右键,在在弹出菜单选择 Team 3. 然后再点击, Disconnect 即可.