OpenWrt 中安裝配置Transmission


參考文章
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. 配置這是我的配置文件

config transmission
    option enabled 1
    option config_dir '/tmp/transmission'
    #option user 'nobody'
    option mem_percentage 50
    option nice 10
    option ionice_flags '-c 3'
    option alt_speed_down 50
    option alt_speed_enabled false
    option alt_speed_time_begin  540
    option alt_speed_time_day 127
    option alt_speed_time_enabled false
    option alt_speed_time_end 1020
    option alt_speed_up 50
    option bind_address_ipv4 '0.0.0.0'
    option bind_address_ipv6 '::'
    option blocklist_enabled false
    option blocklist_url ''
    option cache_size_mb 2
    option dht_enabled true
    option download_dir '/mnt/sda2/done'
    option download_queue_enabled true
    option download_queue_size 4
    option encryption 1
    option idle_seeding_limit 30
    option idle_seeding_limit_enabled false
    option incomplete_dir '/mnt/sda2/incomplete'
    option incomplete_dir_enabled true
    option lazy_bitfield_enabled true
    option lpd_enabled false
    option message_level 3
    option peer_congestion_algorithm ''
    option peer_limit_global 240
    option peer_limit_per_torrent 60
    option peer_port 51413
    option peer_port_random_high 65535
    option peer_port_random_low 49152
    option peer_port_random_on_start false
    option peer_socket_tos 'default'
    option pex_enabled true
    option port_forwarding_enabled true
    option preallocation 1
    option prefetch_enabled true
    option queue_stalled_enabled true
    option queue_stalled_minutes 30
    option ratio_limit 2.0000
    option ratio_limit_enabled false
    option rename_partial_files true
    option rpc_authentication_required false
    option rpc_bind_address '0.0.0.0'
    option rpc_enabled true
    option rpc_password ''
    option rpc_port 9091
    option rpc_url '/transmission/'
    option rpc_username ''
    option rpc_whitelist '192.168.1.*'
    option rpc_whitelist_enabled true
    option scrape_paused_torrents_enabled true
    option script_torrent_done_enabled false
    option script_torrent_done_filename ''
    option seed_queue_enabled false
    option seed_queue_size 10
    option speed_limit_down 100
    option speed_limit_down_enabled false
    option speed_limit_up 20
    option speed_limit_up_enabled false
    option start_added_torrents true
    option trash_original_torrent_files false
    option umask 18
    option upload_slots_per_torrent 14
    option utp_enabled true
    option scrape_paused_torrents true
    option watch_dir_enabled false
    option watch_dir ''

對各項參數的說明, 可以查看上面的參考頁, 也可以查看Transmission項目的文檔
https://github.com/transmission/transmission/wiki/Editing-Configuration-Files

對於設置的三個路徑: config, incomplete, done, 要檢查目錄的owner是否與transmission daemon的用戶一致. 程序運行用戶默認是 transmission:transmission

OpenWrt重啟后丟失下載列表

這是因為配置文件設置在了臨時文件上, 重啟后這個文件就被重置了. 請設置這個參數到實際的存儲上

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. 一個設置的例子:

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

在/etc/config/firewall中是

config redirect
    option target 'DNAT'
    option src 'wan'
    option dest 'lan'
    option proto 'tcp udp'
    option src_dport '59456'
    option dest_ip '192.168.10.100'
    option dest_port '59456'
    option name 'forward-for-bt1'

測試: 通過外網口, telnet a.a.a.a 59456 能出現已連接提示即成功

2) 如果當前transmission運行在一個路由的lan里, 而這個路由的wan又連接到網關路由的lan, 則除了上面的設置外, 還需要在當前路由上打開端口, 允許外界通過wan訪問此設備的端口

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中是

config rule
    option target 'ACCEPT'
    option src 'wan'
    option proto 'tcp udp'
    option dest_port '59456'
    option name 'Allow-for-bt'

測試同上

4. 啟動
注意: 上面配置中的option enabled 必須為1, 否則不會啟動

# 隨路由器啟動
/etc/init.d/transmission enable
# 啟動服務
/etc/init.d/transmission start

# 對應的停止和不隨服務器啟動
/etc/init.d/transmission stop
/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盤做存儲時那種尖銳的毛刺.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM