把无线路由器打造成NAS存储设备图解

记得自己刚刚买到第一台电脑时整晚都不关机下载,现在有时候想要下载一部720的电影也是好几个小时,嗨,感叹这个带宽啊,想要买一个NAS机来实现在线存取,但价格又太贵,感叹现在的物价啊。现在找到了一种更好的解决方法,可以关机下载BT,迅雷下载都不是问题。
改造所需的软硬件及环境
1.一台具有USB接口、并支持刷写DD-WRT固件的无线路由器。目前市面上符合条件的产品有:Linksys WRT系列的350N、600N、610N,华硕的WL-500系列,贝尔金的F5D7231-4系列等。要确认你的无线路由器是否支持刷写DDWRT固件,可以在DDWRT的网站中查询。
2.USB移动硬盘一个。品牌、功能不限,建议选择带外接电源的移动硬盘,或者使用硬盘底座中转,以免无线路由器的USB接口供电不足。

3.DD-WRT固件。这是基于Linux内核编译的第三方固件。在DDWRT的页面中,输入你的无线路由器型号,会自动弹出可选的固件版本。细分版本有Mini版、STD版、MEGA版等,主要是扩展功能上的区别,详情可登录DDWRT网站查询。
4.宽带网络环境。无线路由器的宽带连接、无线网络设置等不赘述,请读者自行设置。
下面,笔者就以Linksys WRT600N路由器、250GB移动硬盘和r13064(10-10-09)MEGA版固件为例,与大家一起开始神奇而复杂的路由器改造之旅。
硬件准备
1.刷写DD-WRT固件
这一步很简单,尤其是Linksys无线路由器,直接在Web管理的Fireware升级界面中升级即可。其他品牌无线路由器刷写DD-WRT固件的方法略有区别,可登录DDWRT网站查阅相关资料。唯一需要注意的是,无线路由器一定要通过网线连接到PC上再刷写,不要使用无线连接的方式。

DD-WRT固件刷好后,最好在浏览器中登录192.168.1.1,修改无线路由器的用户名和密码(默认用户名为root,密码为admin),以增强安全性。
2.将USB硬盘分区并格式化
可以使用Partition Magic 8.0等软件进行分区。由于无线路由器的ROM较小,建议将硬盘分为两个区,其中第一个分区约为300MB,充当无线路由器的ROM,用于放置需安装的软件;其余的空间分给第二个分区,用于存储下载的内容。为保证良好的兼容性和稳定性,推荐第一个分区选择EXT2FS格式,第二个分区为Ext3FS格式,同时两个分区都要设置为主分区。
无线路由器的固件设置
1.打开无线路由器的SSH和JFFS2功能
SSH(Secure Shell)是一个网络服务程序,它可以代替Telnet、FTP为跨平台之间的文件传输提供一个安全的“通道”,再利用安装的WinSCP客户端(详情请见后文),我们可以把PC上的文件传输至无线路由器或加载的USB移动硬盘上。在浏览器中登录无线路由器的Web管理界面,在“服务”页面点击“服务”标签页,在“Secure Shell”栏将“SSHd”和“密码登录”选项开启(图3)。在“远程管理”栏将“SSH管理”开启(图4)。

JFFS2是在闪存上使用非常广泛的读/写文件系统,无线路由器ROM的文件格式就是JFFS2。打开JFFS2选项的目的是让我们可以访问路由器的ROM,并在ROM和USB移动硬盘之间进行文件传输。在“管理”页面点击“管理”标签页,在“JFFS2支持”栏中启用“JFFS2”和“清除JFFS2”两个选项。

注意,“清除JFFS2”的作用是将JFFS2空间初始化,无线路由器重启后该选项自动会转为禁用,我们不需要再改为启用。此外,在该页面同时把“MMC设备”选项设为启用,“GPIO引脚选择”设为自动,这样我们可以在该管理窗口中查看第二分区的容量。
2.打开无线路由器的USB支持选项
目前Mini、STD、MEGA等版本的DD-WRT固件均已内置了USB支持选项和主要文件系统的驱动程序,只要打开这些选项,即可让无线路由器识别出USB移动硬盘。在“服务”页面点击“USB”标签页,将“核心USB支持”、“USB2.0支持”、“USB存储设备支持”和“ext2/ext3文件系统支持”选项均设为“启用”,然后重启无线路由器。

3.加载USB移动硬盘
把USB移动硬盘插在无线路由器的USB接口上。然后在无线路由器的“管理”页面中选择“诊断”→“命令”,输入以下语句:
umount/jffs
umount/mnt
mount/dev/scsi/host0/bus0/target0/lun0/part1/jffs
mount/dev/scsi/host0/bus0/target0/lun0/part2/mmc
mount/dev/mtdblock/4/mnt
mount-obind/jffs/opt/opt
输完后点击下方的“保存为启动命令”。以上语句的意思是:把硬盘第一个分区加载至jffs目录,把第二个分区加载至mmc目录,然后准备好/opt目录。重启无线路由器后我们就可以在Web管理界面的“状态”→“空间使用”栏中看到USB移动硬盘的信息。其中JFFS2显示的是第一个分区的情况,MMC显示的是第二个分区的情况。


至此,无线路由器和USB移动硬盘的连接已经设置完毕,接下来我们还要给无线路由器安装一些软件,才能让它成为一台真正的“BT下载机”。要注意的是,今后无线路由器通电之前要先接上USB移动硬盘及其电源,否则可能导致无线路由器找不到USB移动硬盘。
给无线路由器安装“操作系统”
WinSCP是一个支持SSH协议的SCP(Secure Copy)文件传输软件,用于PC与支持SSH协议的无线路由器之间的文件下载和上传。

运行WinSCP,点击“新建”按钮,填写主机名(即无线路由器的IP地址,例如192.168.1.1)、用户名和密码,文件协议栏选择“SCP”。保存后返回主界面,点击“登录”按钮,软件会提示几个警告和错误窗口,不必理会,确定即可。连接以后看到的界面类似于FTP软件,左边是电脑上的文件,右边是无线路由器上的文件。

我们这里要安装的“操作系统”叫oleg optware。简单地说,如果把无线路由器当作为一台PC,那么DDWRT固件是BIOS,而oleg optware就是操作系统了。oleg optware的安装过程很简单,首先下载该软件,下载地址:oleg-for-mss-base.googlecode.com/files/opt.tar.gz。下载后用WinSCP把“opt.tar.gz”文件传输到无线路由器的“/jffs”文件夹。再在电脑上点击“开始”→“运行”,输入“CMD”,在弹出的命令提示符窗口中输入“telnet 路由IP地址”并回车,如“telnet 192.168.1.1”(图11)。由于Linux系统对大小写敏感,后续的操作中请注意大小写区别。

登录成功后,输入“cd/jffs”→“tarzxvfopt.tar.gz”将文件解压(注意:后续的所有操作均在“/jffs”路径下进行,如果telnet中途退出,请重新登录切回该路径后,再进行操作)。

解压后“jffs”文件夹中会生成“opt”子文件夹。至此,无线路由器的“操作系统”就安装完毕,接下来我们为它安装BT下载软件。
给无线路由器安装BT下载软件
我们给无线路由器WinSCP安装的BT下载软件是rtor rent,它是一个Linux下功能强大的BT下载软件,并且支持PT下载。该软件下载后解压到“/jffs/opt”文件夹中,然后在telnet中执行安装命令:“opt/bin/ipkg install rtorrent”。
rtorrent的配置文件为“rtorrent.conf ”,我们要在其中修改IP地址等rtorrent运行所必须的信息。大家可以登录MCPLive.cn下载该文件,并且文件中我们已经做好了注解以方便大家修改。修改完成后可用WinSCP把该文件复制到“/opt/root”目录,并更名为“.rtorrent.rc”(图13)。

接着在无线路由器的“管理”页面中选择“诊断”→“命令”,输入以下语句:“/opt/bin/screen-d-m/opt/bin/rtorrent-n-oimport=/opt/root/.rtorrent.rc”,再点击下方的“保存为启动命令”。重启后,每次无线路由器开机都会启动rtorrent,运行BT下载功能。

在无线路由器的“管理”→“诊断”→“命令”中,添加防火墙命令,注意端口与rtorrent.conf文件的设置保持一致(图14)。至此,rtorrent已可以正常运行并下载文件了。
rtorrent的web管理
rtorrent本身是用命令行方式进行管理和控制的BT下载程序,但对普通用户来说,使用起来非常不方便。因此,最后我们还要让它实现web管理,甚至是用独立软件来管理下载。接下来我们就要给无线路由器安装web服务器、提供PHP语言的支持,并且安装独立的下载管理软件。
1.安装和配置lighttpd
我们用到的web服务器很微型,是一款叫做“lighttpd”的软件。该软件下载后解压到“/jffs/opt”文件夹中,然后在telnet中执行安装命令:“opt/bin/ipkg install lighttpd”。
用WinSCP打开“/jffs/opt/etc/lighttpd/lighttpd.conf”,在”lighttpd.conf”文件中的“server.modules一段,确保以下三项内容的前面没有#号:
“mod_access”、“mod_fastcgi”和“mod_scgi”(如果没有这三项请参照已有内容的格式自行添加)。然后在“lighttpd.conf”文件的最后加入以下命令:
scgi.server = ( “/RPC2” =>
( “127.0.0.1” =>
(
“host” => “127.0.0.1”,
“port” => 5000,
“check-local” => “disable”
)
)
)
要实现“lighttpd”开机自动运行,请在无线路由器的“管理”→“诊断”→“命令”中输入:“opt/etc/init.d/S80lighttpd start”。
2.安装和配置PHP
这一步是实现web管理的关键,很多朋友无法打开web控制界面,都是因为PHP没有成功安装。PHP的安装命令为:“opt/bin/ipkginstallphp”,请仔细阅读命令运行后界面上出现的提示,有没有出现“An error ocurred”之类的提示,常见的提示是:“依赖包bzip2没有安装完成,与busybox-links冲突。”如果出现这些提示,请运行“opt/bin/ipkg remove busybox”和“opt/bin/ipkg remove busybox-links”,然后再运行一遍“opt/bin/ipkg install php”即可。
PHP安装完了还得装PHP-fcgi(支持组件之一)。安装命令为“opt/bin/ipkg install php-fcgi”。

安装完毕后我们再编辑一个内容为“”的“info.php”文件,放到“/jffs/opt/share/www”文件夹中,然后在浏览器中输入http://192.168.1.1:8081/info.php,如能正确显示php信息,就说明php已成功安装。
3.安装管理软件
基于rtorrent的web管理软件很多,如:rTWi、rutorren、wtorrent、rtgui等,其中rutorren功能最强,安装和使用简单,因此着重为大家介绍这款管理软件。rutorren的下载地址为:code.google.com/p/rutorrent/,最新版本为2.8,文件名为“rtorrent-2.8.tar.gz”。下载后把它解压,并把解压所得的rtorrent文件夹用WinSCP传输至“/jffs/opt/share/www”文件夹。然后在浏览器输入“192.168.1.1:8081/rtorrent”即可进行Web管理。

在下载BT文件时,由于rutorrent的界面和使用方法跟迅雷软件很相似,完全没有技术门槛,因此在电脑上和往常一样下载BT种子文件,再用rutorrent打开种子文件就能下载BT,普通玩家也可以轻松上手(图16)。
本文方案的实现,利用了目前无线路由器越来越强大的性能(主流无线路由器通常为300MHz以上处理器、32MB以上内存,已经达到了PentiumⅡ时代PC的硬件配置水平),把它当作一台PC,让其承担更多的工作。由于Linux软件目前也非常丰富,除了BT下载之外,很多朋友用无线路由器在oleg optware环境下实现了电驴下载、架设BBS论坛、邮件服务器等应用,甚至通过加装USB声卡,把无线路由器变成了无线音乐播放器。笔者的文章希望能起到抛砖引玉的作用,激发广大DIY玩家的探索热情。

就本次改造的效果来说,改造后的“BT下载机”用于BT或PT下载绰绰有余,在笔者的2Mbps ADSL宽带中能达到满负荷下载。
而要在PC上从USB移动硬盘中拷贝数据,建议在PC上安装“EXT2FSD”软件,这样就可以让装有Windows操作系统的PC访问Linux格式的磁盘分区。此外,当有任务在下载时,如要重启无线路由器,请先将任务停止,并用“killall”命令退出rtorrent,否则重启后所有下载任务会重新进入hash校验的过程,比较费时间。

发表评论

电子邮件地址不会被公开。 必填项已用*标注