扫描二维码关注官方公众号
返回列表 发布新帖

[盒子/seedbox] 个人的盒子经验谈(更新完鸟~)

   火..
18780 162
发表于 2010-11-20 05:31:24 | 显示全部楼层 阅读模式

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 fest 于 2010-11-21 02:59 编辑

之前在crackin2的帖子里说要写点东西于是就来献丑了,权作抛砖引玉之用:) 还有转载的同学你们知道署名并不会给你们带来多大的麻烦的……
个人用what一段时间了,不过这篇文章也(应该)适用于使用rTorrent的其他box及自行搭建的vps、下载机等

  • 购买box一类的我就不涉猎了(其实这才是最头疼的地方)
  • rTorrent的设置

    rTorrent的设置方法就是编辑~/.rtorrent.rc。是的你也可以在ruTorrent上按Settings按钮然后修改,然而似乎修改后只是保存在目前的session里,重启后设置就还原.rtorrent.rc里的设置了(若有误请指出)
    记得备份
    修改方法就多种多样了,本地改好了上传上去或者nano/vi/...任君选择(如果你不会的话,这篇文章对你来说不太具有价值:()
    这个设置如果你准备参考网上各个地方提供的“优化值”的话,在复制粘贴之前读一次提供的设置方案是不是真的适合你
    具体的设置项目解释可以参照man page,我只提出给我带来过麻烦的几个:
    • max memory usage:
      这对于只跑rTorrent的环境来说你可以设置到接近最大,这个选项的作用是当你打算同时跑MLDonkey等同样浪费内存的任务是防止竞争资源最后崩溃……
      不用怀疑rT是不是真的能用到那么多内存,我才入Jpopsuki的时候蛋疼的把Oricon weekly的2010年份全挂上去了,9M多的下载速度很好看,超过1G的内存用量很浮云……
      对了确定内存大小可以执行
      1. cat /proc/meminfo
      复制代码

      或者简单一点执行
      1. top
      复制代码
      记得按q退出
    • max. no. of http conn.:
      很简单,低了Couldn't connect to server红种一片,高了CPU占用率飙升
      个人实验400+种子(那是我下载机= =)在5~20之间都算运行良好
      呃如果你只有2、30个种子的话当我没说……
    • hash read ahead:
      一个低的数值(3~8)可以让你在比较流畅的运行的同时进行hash,当然速度不会很快……
      设置偏高的话hash时要挑网络速度慢的时候,不然一堆高速上下传用了大把的内存后再hash一下很容易Cannot allocate memory红种(相信我,你一点都不会想见到这种红种……)
    • send/receive buffer:
      比较麻烦的参数。消耗内存导致cannot allocate memory的元凶(之一),同时也是保证高速传输性能的一大因素。
      传输过程中buffer会消耗内存,其大小等于:已打开的上传slot数 x send buffer + 已打开的下载slot数 x receive buffer
      太低会导致频繁的磁盘IO,效率降低不说还浪费一堆CPU time
      太高就可以见到cannot allocate memory……
      个人设置100k~400k,请根据内存和下载的种子自行调整
    • DHT:
      没错如果你愿意的话DHT、种子交换什么的都可以打开,当然在此之前你要知道你在做什么
      一般box默认都是没有打开DHT的(通常你也不需要),如果需要启用的话,设置DHT的端口为box打开的端口就行了(比如whatbox的61000-61100选一个端口)
    • 还有什么参数来着……算了等想起来在补充#TODO
      好了我想不到还有什么参数了……有疑问有异议有补充的话告诉我

  • 数据转移,辅种

    应该每个box都会提供http/ftp下载,所以这似乎不是什么大问题
    不过,试想用浏览器http下载一个拆开的原盘……omg
    就算有迅雷等面对那目录结构依然只能感到无力
    ftp虽好可是我用过的两个whatbox都限速了= =(没限速前很华丽,每线程200KB10线程硬是把我的30M带宽吃掉了20M……如今只有http有这速度了)
    再则某些文件有特殊符号ftp拖不下来只能sftp,一没速度二浪费CPU
    解决方案?当然是有的(很可惜是命令行下的):
    lftp & rsync(各位有其他好的办法请告诉我)
    • LFTP基本在各个Linux发行版里都能找到(找不到装一个也不是什么问题),Windows下也有Cygwin环境下编译好的版本:http://lamclendizzle.com/lftp.zip
      rsync的话我还没在Windows下试过,估计也是靠Cygwin就可以了吧……
      先说LFTP:在这里最大的特点就是可以支持http目录镜像(这里说的http是指apache/lighttp等提供的Directory Listing,那种有ui前端的http我还没见过……),当然事实上这个工具的能力不仅仅是这么简单,FTP等等一样都可以支持
      在下载目录下执行lftp,如:
      1. ~/Downloads $ lftp -u username,password http://http_direct_download.seed.box
      复制代码

      Windows下就cmd再:
      1. D:\Downloads\> D:\lftp\lftp.exe -u username,password http://http_direct_download.seed.box
      复制代码
      (如果已经添加path的话就不需要那个绝对路径了)
      之后便可以看到lftp的提示符
      lftp: ~>

      为了方便可以输入
      1. bookmark add seedbox
      复制代码

      以后便可直接
      1. lftp seedbox
      复制代码
      不需要输入那一长串了

      之后执行ls就可以看到和box的http提供的文件列表,
      对单个文件用
      1. pget filename
      复制代码

      对于目录用
      1. mirror dirname
      复制代码
      就可以下载了……当然这只是及格分XD

      说到下载当然就是多线程,比如
      1. pget -c -n 8 The.Day.After.Tomorrow.2004.RERiP.1080p.BluRay.x264.DTS-WiKi/The.Day.After.Tomorrow.2004.RERiP.1080p.BluRay.x264.DTS-WiKi.mkv
      复制代码
      (懒得用范例名了,直接用实际例子……)
      -n 8就是8线程,-c是断点续传,为了防止悲剧记得每个pget和mirror都加上吧(忘了-c浪费了上次下载的20+ GB的经验总结- -)
      话说pget不加-n的时候是默认5线程好像

      目录也可以多线程,如
      1. mirror -c --parallel=8 Avatar.2010.Extended.Collectors.Edition.1080p.Blu-ray.AVC.DTS-HD.MA.5.1-HDRoad/
      复制代码
      --parallel就是同时多少文件并行下载,但是每个文件都是单线程的,想要每个文件都是多线程,再加上参数:--use-pget-n=8
      输入的时候记得tab键补足(我相信看到这里的各位应该都知道了……)
      下载的时候按下Ctrl+Z就可以返回,任务会在后台继续下载,执行jobs可以查看

      现在离下载工具还有一步之遥:任务队列
      没有队列的话可能你会不停的mirror/Ctrl+Z,然后一个jobs满屏的任务。带宽倒是撑满了,效率却并不高,box的CPU还会飙升……
      有了队列一切都平静了:
      首先
      1. queue stop
      复制代码
      (你要是喜欢也可以不执行这句)
      然后不停的
      1. queue mirror -c --parallel=5 ...
      复制代码
      最后
      1. queue start
      复制代码

      好了这下没什么问题了:)
    • rsync:
      算了太晚了这小众物我还是下次再补好了……#TODO
      rsync相比之下并不比lftp有什么特别的优势,虽然事实上那个差分同步功能是相当的耀眼强大实用但是在这里我们也只是作基本同步用……
      基本用法:
      1. rsync -avz username@box.server.host:/home/username/download/ ~/LocalDir/
      复制代码

      至于额外的功能像是同步链接、权限等就不列出来了,参见man page如果要用到的话


    辅种:
    两种工具:rtorrent_fast_resume.pl(http://libtorrent.rakshasa.no/downloads/rtorrent_fast_resume.pl]rtorrent_fast_resume.pl)和xseed.py
    • rtorrent_fast_resume.pl:
      用法不难,简单点说就是在下载完某个种子(下载于DownloadingDir)后,找到另一个内容完全相同的种子(Source.torrent
      1. perl rtorrent_fast_resume.pl DownloadingDir <./Source.torrent> Output.torrent
      复制代码

      (注意perl需要安装Bencode module——默认应该是有的吧……)
      然后把Output.torrent cp/mv到watch目录里或者用ui添加即可,如果一切顺利的话新种子就应该直接100%开始上传了
      但是现实是:事情没那么简单——
      • 两个种子的默认目录名不同:
        如已经下载完的种子,下载路径是/home/username/files/FinishedDir/,另一个新种子,在执行
        1. perl rtorrent_fast_resume.pl /home/username/files/ <./Source.torrent> Output.torrent
        复制代码
        的时候报错:
        /home/username/files/AnotherDir/Some.File not found.

        那么我们就知道这两个种子的默认下载位置不一致,新种子的默认位置是AnotherDir/
        解决办法?建立符号链接:
        1. ln -s /home/username/files/FinishedDir/ /home/username/files/AnotherDir
        复制代码

        然后再次执行rtorrent_fast_resume.pl就可以了
        PS:目录的符号链接在失效后(即指向目标不存在)用rm删除而非rmdir
      • 添加种子失败或者添加后依然需要hash:
        这种问题虽然不太常见,不过如果遇到原盘一类的出现这种问题靠那box的hash速度……
        目前我的解决办法是,在本地用uT等重新制作种子(对,这需要你已经同步了这个种子的数据),然后用bencode editor一类的工具把制作好的种子的infohash改回那个有问题的种子的infohash,之后再用rtorrent_fase_resume.pl脚本调用这个修改好的种子,最后生成的种子应该就可以用了……(真的很麻烦= =不过总比hash 40G的数据快)
      • 其他问题:
        等我睡一觉起来再说……#TODO
        想不起来还遇到过什么辅种问题了……各位如果遇到其他问题的话可以提出然后慢慢讨论;)

    • xseed.py
      这个脚本似乎是whatbox开发的,网上没看到怎么流传,所以我现在都不知道可不可以公开这个脚本了……事实上原理跟那个perl脚本差不多,都是用bencode parse然后处理然后写新文件……不同之处就是infohash是随机生成的
      姑且隐藏之,别告诉我这样还是躲不开spider……
      游客,如果您要查看本帖隐藏内容请回复


  • Misc
    • 批量上传种子:
      ruTorrent那个ui只能一个一个的上传,那叫一个悲剧……
      解决办法:先用ruTorrent设置好下载目录,然后用nTorrent批量上传或者直接把种子丢到watch/
    • 修改下载位置:
      方法1:建立符号链接
      1. ln -s
      复制代码

      方法2:ruTorrent里右键Save to...(我居然一直没发现……OTL)
      方法2:
      登录ssh后,
      1. screen -x
      2. 或者
      3. tmux -x(如果box用的是tmux的话)
      复制代码

      然后在rT的CUI里用上下方向键找到那个种子(利用分类:http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide#MainViewKeys会快一些找到)
      之后Ctrl+K停止那个种子,Ctrl+O设置位置,然后Ctrl+R重新hash,Ctrl+S开始(对我知道这很麻烦……)
    • 更方便的box监测:
      ruTorrent上的cpuload插件永远是100%,没有memload,disk usage没太大用处(我看到的是永远100%并且曾经超100G长达一周平安无事= =)
      一直开top感觉很浪费,就算ps aux然后上方向键回车也不够方便:
      只好改bash prompt了——
      1. PROMPT_COMMAND='history -a;echo -en "\033[m\033[38;5;2m"$(( `sed -nu "s/MemFree:[\t ]\+\([0-9]\+\) kB/\1/p" /proc/meminfo`/1024))"\033[m\033[38;5;2m+"$(( `sed -nu "s/^Cached:[\t ]\+\([0-9]\+\) kB/\1/p" 、proc/meminfo`/1024))"\033[38;5;22m/"$((`sed -nu "s/MemTotal:[\t ]\+\([0-9]\+\) kB/\1/Ip" /proc/meminfo`/1024 ))MB"\t\033[m\033[38;5;55m$(< /proc/loadavg)\033[m"'
      2. PS1='\[\e[m\n\e[1;30m\][$:$PPID \j:\!\[\e[1;30m\]]\[\e[0;36m\] \T \d \[\e[1;30m\][\[\e[1;34m\]\u@\H\[\e[1;30m\]:\[\e[0;37m\]${SSH_TTY} \[\e[0;32m\]+${SHLVL}\[\e[1;30m\]] \[\e[1;37m\]\w\[\e[0;37m\] \n($SHLVL:\!)\$ '
      复制代码

      PS:如果要固定这个格式记得把代码加入.bashrc

      这段代码把提示符修改为:
      31+3256/3925MB  1.98 2.18 2.17 1/156 764
      [30510:30509 0:469] 04:08:30 Fri Nov 19 [user@some.box.server:/dev/pts/8 +1] ~
      (1:469)$

      于是你可以看到free mem+cached mem/total mem, cpu load(1分钟,5分钟,15分钟),线程数等等按回车即可更新XD
      别把这样式用到其他地方,在需要输入大堆命令的时候这个不够清爽……
    • putty支持CJK字符:
      Windows下的ssh工具putty其实是支持CJK字符的,如果ls的时候看到一堆问号那只是因为默认字符集的问题,执行
      1. export LANG='en_US.UTF-8'
      复制代码
      就可以了(当然你要zh-CN.UTF-8我也没意见XD)
      同样,加入命令到.bashrc以保证每次打开putty的时候都是正常的
    • 检查下载目录的磁盘用量:
      1. du -sh ~/DownloadDir
      复制代码

    • 下载完成后移动数据到另一目录:
      在.rtorrent.rc里加入
      1. system.method.set_key = event.download.finished,move_complete,"execute=mv,-u,$d.get_base_path=,~/Finished/;d.set_directory=~/Finished/"
      复制代码

      就可以让rT在每个种子下载完成后把种子移动到~/Finished/并更改相应的种子的保存位置(不会重hash的,放心)
    • 利用box的ssh tunnel做socksv5代理:
      绝大多数box都支持ssh tunnel(不像某些小气的hosting……)
      那么我们就可以用putty等建立一个本地sockv5转发到ssh tunnel,于是一个梯子就出现了:)
      • Windows/putty:
        在相应的putty的session里(什么?你跟我说你每次都是手动输入的?),找到Connection->SSH->Tunnels,然后在右方选择Dynamic,source port输入你想socksv5代理打开的端口(比如什么8000啊8080啊一类的,选个你还没使用的就行)
        使用这个设置连接上box后你就建立了这个转发服务器,之后设置浏览器就行了(socks v5, 127.0.0.1:设置的端口)
      • Windows/plink:
        对,上面那个方法对于只是想翻过去的想法来说太麻烦了,所以这里用putty的命令行工具plink简化一下:
        1. plink -N username@your.box.server -D 127.0.0.1:7777
        复制代码
        简单对吧?
      • Linux/ssh:
        1. ssh -qTfnN -D 7777 username@your.box.server
        复制代码
        输入密码后就连接上了:)
        如果要断线自动重连的话(需要安装autossh)
        1. autossh -M 2000 -N -D 127.0.0.1:7777 username@your.box.server
        复制代码

      • Linux/bash+ssh:
        这是我目前用的办法,需要安装expect和openssh(应该没几个用linux没装吧……)
        保存下面为sh脚本
        1. #!/usr/bin/expect
        2. set timeout 60
        3. spawn /usr/bin/ssh -D 7777 -g username@your.box.server
        4. expect {
        5. "password:" {
        6. send "boxpassword\r"
        7. }
        8. }
        9. interact {
        10. timeout 60 { send " "}
        11. }
        复制代码
        然后chmod +x添加执行权限
        之后执行这个脚本就行了
        PS:如果要转换到http的话就用proxychains跳板

    • 算了太困了睡了先,ruTorrent的plugin有谁愿意写的么?一个人感觉写不过来啊……
      差不多补充完了修改好了,有很多东西还是没能提到,比如各种插件、自动化脚本、辅助工具。网盘下载……算了留作下次再写吧(好大一个坑!)



--
添加url只能是html,文件或者有锚点都不行……管理员快来除bug(:
--EDIT2
Discuz的代码太让人不爽了……慢慢编辑:(

评论162

arjam@2Lv.7 发表于 2010-11-20 08:31:55 | 显示全部楼层
菜鸟高手的我完全看不懂
回复 点赞

使用道具 举报

1235Lv.6 发表于 2010-11-20 09:01:54 | 显示全部楼层
沉重的表示同LS。。。orz
偶还是老老实实想办法改善网络吧——!
回复 点赞

使用道具 举报

taidian@2Lv.8 发表于 2010-11-20 09:57:46 | 显示全部楼层
同lss,我也还是认真的挂机好了
回复 点赞

使用道具 举报

aniu1516Lv.9 发表于 2010-11-20 10:04:35 | 显示全部楼层
支持一下 准备入手CDX 发帖辛苦~
回复 点赞

使用道具 举报

1530Lv.8 发表于 2010-11-20 10:17:55 | 显示全部楼层
进来学习一下{:1_87:}
回复 点赞

使用道具 举报

1201Lv.7 发表于 2010-11-20 10:23:52 | 显示全部楼层
进来学习高级玩家
回复 点赞

使用道具 举报

MedicineSUVLv.10 发表于 2010-11-20 12:24:06 | 显示全部楼层
rTorrent 的设定说明,感谢分享!
回复 点赞

使用道具 举报

hjgeLv.6 发表于 2010-11-20 13:40:36 | 显示全部楼层
真是太深奥了{:2_141:}
再回家 好好努力。  详情 回复
发表于 2011-12-28 22:20
俺也完全看不懂。。  详情 回复
发表于 2011-11-9 23:07
回复 点赞

使用道具 举报

masseurLv.6 发表于 2010-11-20 13:40:40 | 显示全部楼层
感谢楼主分享,明白多了。
回复 点赞

使用道具 举报

zwgLv.6 发表于 2010-11-20 15:27:24 | 显示全部楼层
感谢分享,很好的文章
回复 点赞

使用道具 举报

PiaLv.8 发表于 2010-11-20 16:31:10 | 显示全部楼层
纯粹膜拜高手,看不懂路过
同看不懂。。。  详情 回复
发表于 2011-11-9 23:08
回复 点赞

使用道具 举报

sntitan@2Lv.3 发表于 2010-11-20 17:20:08 | 显示全部楼层
回复看看怎么回事
回复 点赞

使用道具 举报

bulvceLv.3 发表于 2010-11-20 17:57:50 | 显示全部楼层
看一下,谢谢LZ分享经验
回复 点赞

使用道具 举报

xiaochenjiaLv.6 发表于 2010-11-20 22:16:45 | 显示全部楼层
OMG 膜拜 太强大了 ~  可惜偶看不懂 - -
我要挂科了
回复 点赞

使用道具 举报

weixin2008@2Lv.5 发表于 2010-11-20 22:18:58 | 显示全部楼层
这个很强大 看不懂 简单一点就好了
回复 点赞

使用道具 举报

walqaLv.4 发表于 2010-11-20 22:20:36 | 显示全部楼层
来回复看看是什么
回复 点赞

使用道具 举报

cooolLv.4 发表于 2010-11-20 22:39:27 | 显示全部楼层
好高深啊,基本看不懂啊,不过还是谢谢楼主
回复 点赞

使用道具 举报

fest楼主Lv.8 发表于 2010-11-21 02:09:56 | 显示全部楼层
最后让我说一句:
上传量什么的有了box后都是浮云,3T跟30T除了虚荣就没什么区别了
真正的快乐不是上传数据,而是上传种子:)
关键是哪来的资源啊~  详情 回复
发表于 2011-11-9 23:08
回复 点赞

使用道具 举报

sunnya@2Lv.5 发表于 2010-11-21 06:58:54 | 显示全部楼层
拜linux技术帝

问下楼主我在自己机器上装rtorrent 有rss插件功能吗
我搞了半天flexget没成功
现在Wine了一个UT专门Rss种子到奔流的种子自动载入目录 真TM杯具
回复 点赞

使用道具 举报

回复

懒得打字嘛,点击右侧快捷回复 【本站酷狼4T,750元】
您需要登录后才可以回帖 登录 | 注册

本版积分规则

投诉/建议联系

support@gebi1.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 隔壁网 版权所有 All Rights Reserved. 粤ICP备14056481号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表