查看: 134|回复: 0

[讨论] 【转】在OpenWrt 中安装配置Transmission

[复制链接]

582

主题

3

好友

1万

积分

翰林

Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2017-7-31 13:57:17 |显示全部楼层
    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 1
    3.     option config_dir '/tmp/transmission'
    4.     #option user 'nobody'
    5.     option mem_percentage 50
    6.     option nice 10
    7.     option ionice_flags '-c 3'
    8.     option alt_speed_down 50
    9.     option alt_speed_enabled false
    10.     option alt_speed_time_begin  540
    11.     option alt_speed_time_day 127
    12.     option alt_speed_time_enabled false
    13.     option alt_speed_time_end 1020
    14.     option alt_speed_up 50
    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 2
    20.     option dht_enabled true
    21.     option download_dir '/mnt/sda2/done'
    22.     option download_queue_enabled true
    23.     option download_queue_size 4
    24.     option encryption 1
    25.     option idle_seeding_limit 30
    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 3
    32.     option peer_congestion_algorithm ''
    33.     option peer_limit_global 240
    34.     option peer_limit_per_torrent 60
    35.     option peer_port 51413
    36.     option peer_port_random_high 65535
    37.     option peer_port_random_low 49152
    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 1
    43.     option prefetch_enabled true
    44.     option queue_stalled_enabled true
    45.     option queue_stalled_minutes 30
    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 9091
    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 10
    63.     option speed_limit_down 100
    64.     option speed_limit_down_enabled false
    65.     option speed_limit_up 20
    66.     option speed_limit_up_enabled false
    67.     option start_added_torrents true
    68.     option trash_original_torrent_files false
    69.     option umask 18
    70.     option upload_slots_per_torrent 14
    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
    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 59456
    3. Forward to: IP 192.168.10.100, port 59456 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 '59456'
    7.     option dest_ip '192.168.10.100'
    8.     option dest_port '59456'
    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 59457 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 '59456'
    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. /etc/init.d/transmission stop
    7. /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盘做存储时那种尖锐的毛刺.

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-8-24 14:53 , Processed in 0.237949 second(s), 9 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部