dd-wrt挂U盘装l ighttpd、 ftp、 php、 mysql、 miniupnpc、 lynx、 bo-blog 中继穿透外网dd-wrt挂U盘装l ighttpd、 ftp、 php、 mysql、 miniupnpc、 lynx、 bo-blog 中继穿透外网
测试平台 comfast cwr54g,刷DD-WRT v24-sp2(02/23/10)mega
作者一剑
1初始化后开始 (以下离开每一个页面前都要save)
Administration->Management->Language:Chinese simpl ified
Enable InfoSite:Disable
Setup->Basic Setup->Local IP Address:19216881
TimeZone:UTC+8
SummerTime(DST):none
Server IP/Name:time windows com
Services->Services->SSHd:Enable
USB->Core USB Support:Enable
USB 1 1 Support (UHCI):Enable
USB 1 1 Support (OHCI):Enable
USB Storage Support:Enableext2/ext3 Fi le System Support:Enable
NAS->ProFTPD:Enable
Al low Write:Enable
NAT/QoS->UPnP->UPnP Service:Enable
Clear port forwards at startup:Enable
Administration->Management->Remote Access->Web GUI Management:Enable
SSH Management:Enable
Telnet Management:Enable
JFFS2 Support:Enable
Clean JFFS2:Enable,Apply
Commands->save firewal l :(本案直接关掉了防火墙)iptables-I INPUT-p udp--dport 8081 -j ACCEPTiptables-I INPUT-ptcp--dport 8081 -j ACCEPT
#iptables-I INPUT 1 -p tcp--dport 21 -j logaccept
2挂U盘
(注意经测试不能打开usb20支持否则失败 BCM5354本身集成了usb20支持的啊还是供电不足 )
PartitionManager v90 以管理员身份运行格式化U盘为EXT2插入U盘到dd-wrt上
添加启动命令组
Administration->Commands->Save Startup:umount /jffsumount /mntmount/dev/scsi/host0/bus0/target0/lun0/part1 /jffsmount/dev/mtdblock/4/mnt
重启路由器,h tt p://19216881->状态->路由器->空间使用看到如下信息就成功了:
JFFS21,88835MB/ 1 ,88833MBwin7添加telnet功能后 ms-dos:c:\>telnet 19216881root@DD-W RT:~#mkdir /jffs/opt
启动命令组追加一条:mount -o bind/jffs/opt /opt
重启,#mount命令可查看挂载成功
3测试ft p可用ft p://19216881
成功但看不到文件 telnet进去后建立一个目录mkdir/mnt/xxx,刷新ftp窗口就看到了删掉rm-R/mnt/xxx启动命令组追加一条:(ft p指向网站该目录还不存在为后面网站备用)mount -o bind/jffs/opt/share/www/mnt
4安装optware dd-wrt
(所有支持软件参考http://ipkg nslu2-l inux org/feeds/optware/ddwrt/cross/stable/)
配置路由器 中继或客户端上网telnet 19216881root@DD-W RT:/#cd/jffsroot@DD-W RT:/jffs#d mesg(查看U盘加载信息)root@DD-W RT:/jffs#df-h(查看分区容量)root@DD-W RT:/jffs#du-h (查看目录大小)root@DD-W RT:/jffs#ls-lroot@DD-WRT:/jffs#wget http://www 3i i i dk/l inux/optware/optware-instal l-ddwrt sh-O- | tr -d'\r'>/tmp/optware-instal l sh(备用#wget http://pastebin ca/raw/328107-O- | tr -d'\r'>/tmp/optware-instal l sh)
(备用#wget http://pastebin ca/raw/1031954-O- | tr -d'\r'>/tmp/optware-instal l sh)
(备用#wget http://www wlan-sat com/boleo/optware/optware-instal l-ddwrt sh-O- | tr -d'\r'>/tmp/optware-instal l sh)(回显 Connecting to www 3i i i dk(19547247102:80))root@DD-WRT:/jffs#sh/tmp/optware-instal l sh
(回显:耐心等待一大堆信息后是Successful ly terminated可以看到/opt下多了一些目录和指令集)
(
作为optware dd-wrt的替代你也可以选择安装optware oleg,后续软件安装要用ipkg来装
所有支持软件参考http://ipkg nslu2-l inux org/feeds/optware/oleg/cross/stable/root@DD-WRT:/jffs#wget http://oleg-for-mss-base googlecode com/fi les/opt tar gz
(也可以在windows下手工下载后用WinSCP上传至jffs中)root@DD-WRT:/jffs#tar zxvf opt tar gzroot@DD-WRT:/jffs#mount -o bind/jffs/opt/opt
-----------------------------------------------
似乎最新的dd-wrt自带了optware oleg,未验证
Create a/jffs/tmp/ipkg
Update ipkgipkg updatecheck ipkgipkg l ist
)
(optware和oleg optware环境之间转换请参考此贴10楼http://www right com cn/forum/viewthread php?tid=12208)5安装l ighttpd:root@DD-WRT:/jffs/opt#ipkg updateroot@DD-WRT:/jffs/opt#ipkg-opt instal l l ighttpd
(回显 Successful ly terminated)
如果失败,手工安装
(http://ipkg nslu2-l inux org/feeds/optware/ddwrt/cross/stable/找到最新的l ighttpd_1426-1_mipsel ipk)root@DD-WRT:/jffs#wget http://ipkg nslu2-l inux org/feeds/optware/ddwrt/cross/stable/l ighttpd_1426-1_mipsel ipkroot@DD-WRT:/jffs#ipkg-opt instal l l ighttpd_1426-1_mipsel ipk
root@DD-WRT:/jffs#cp/opt/etc/l ighttpd/l ighttpd conf/opt/etc/l ighttpd/l ighttpd conf bak用WinSCP或vi修改/opt/etc/l ighttpd/l ighttpd conf
#server event-handler=" ",去掉# 引号内改成pol l(如果升级到K26,可以支持更快的epol l)#dir-l isting activate="enable"去掉#,打开目录文件列表功能
测试
#/opt/etc/init d/S80l ighttpd restartroot@DD-WRT:/jffs/opt/bin#ps(确认l ighttpd运行中)
或
#ps |grep l ighttpd
(回显: 1643 root 3904 S/opt/sbin/l ighttpd-f/opt/etc/l ighttpd/l ighttpd conf)
访问 http://19216881 :8081/显示l ighttpd server is running则成功了
网站文件位于/opt/sh are/www目录中,而不是/opt/s h are/www/l i g httpd中否则二级链接打不开启动命令组追加一条:
/opt/etc/init d/S80l ighttpd start
(
如果愿意还可以修改默认的根文件地址和访问端口分别在server document-root="/opt/share/www"server port=8080
一般修改l ighttpd为80把dd-wrt内网的默认80调到8080 telnet进入后nvram show(查看)nvram show|grep http_(抽取查看lanport wanport值)nvram set http_lanport=8080 内网 (nvram unset http_lanport删除)nvram commitreboot
)
(作为l ighttpd的替代也可以安装thttpd)
6安装phproot@DD-WRT:/jffs#ipkg-opt instal l php php-fcgi
选装GD库root@DD-WRT:/jffs#ipkg-opt instal l php-gd
经我测试l ighttpd conf不需要修改最后一行自动加载了php。
重新启动l ighttpd
#/opt/etc/init d/S80l ighttpd restart
测试
用WinScp建立/opt/share/www/info php
内容为
<?php phpinfo();?>
WinScp右击属性勾上可执行X,用IE打开http://19216881 :8081/info php
7安装mysql
#ipkg-opt instal l mysql php-mysql
(
To start mysqld at boot time you have to copy support-fi les/mysql servertothe right place for yoursystem
PLEASE REMEMBERTO SETAPASSWORD FORTHE MySQL rootUSER!
To doso,start the server, then issuethefol lowing commands:
/opt/bin/mysqladmin-u root password'new-password'
/opt/bin/mysqladmin-u root -h DD-WRT password'new-password'
See the manual for more instructions
You can start the MySQL daemon with:cd/opt ; /opt/bin/mysqld_safe&
You can test the MySQL daemon with the benchmarks in the'sql-bench'directory:cd sql-bench; perl run-al l-tests
Starting MySQL SUCCESS!
Successful ly terminated
)
修改mysql的root@localhost、 root@DD-WRT密码
#/opt/bin/mysqladmin-u root password 123456
#/opt/bin/mysqladmin-u root -h DD-WRT password'123456'
(mysql默认没有打开外部端口只能本地使用所以此步不成功 )
更改mysql默认编码:
#/opt/bin/mysql -u root -pmysql>status;
修改/opt/etc/my cnf:
[cl ient]defau lt-character-set=utf8
[mysqld]defau lt-character-set=utf8
#/opt/etc/init d/S70mysqld restart
#/opt/bin/mysql -u root -pmysql>status;
创建数据库boblog(可以自己定义,记住就行了,之后会用到)
#/opt/bin/mysql -u root -pmysql>create database boblog;
删除用drop database boblog;
查看mysql>show databases;
(
修改已有数据库编码:mysql>alter database boblog character set utf8;mysql>use boblog;mysql>status;
)http://1921681 1 :8081/info php
看到mysql了吗经测试这里看不到实际上装好了后面装博客用过一次数据库后才能看到启动命令组追加一条:
/opt/etc/init d/S70mysqld start
8安装miniupnpc
官网http://miniupnp free fr/for OpenWrt:(所以要用ipkg安装而不是ipkg-opt)http://myantihero net/pub/openwrt/packages/
D D-W RT中的安装
root@DD-WRT:/jffs#wget http://myantihero net/pub/openwrt/packages/mipsel/miniupnpc_14-1_mipsel ipkroot@DD-WRT:/jffs#ipkg instal l miniupnpc_14-1_mipsel ipk
关掉dd-wrt防火墙并测试: (在上一级网关路由器上利用upnp开通网站服务需要上级路由器开通upnp服务)root@DD-WRT:/jffs#upnpc-r8081 tcp 8081 udproot@DD-W RT:/jffs#upnpc-l
9安装lynx一款console浏览器
101root@DD-WRT:/jffs#ipkg-opt instal l lynx
测试www 3322 org动态域名更新:lynx-mime_header -auth=user:pass"http://www 3322 org/dyndns/update?system=dyndns&hostname=myhost 3322 org"
(回显 good xxx xxx xxx xxx或nochg xxx xxx xxx xxx)
Administration->Management->Cron附加任务:(需修改user pswd myhost)
*/10* * * * root upnpc-r 8081 tcp 8080 tcp 20 tcp 21 tcp 22 tcp 23 tcp
*/10* * * * root/opt/bin/lynx-mime_header -auth=user:pswd"http://www 3322 org/dyndns/update?system=dyndns&hostname=myhost 3322 org"10安装单用户博客系统bo-blog
经测试sablog-x首页不完整 wordpress运行不了最后选了bo-bloghttp://www bo-blog com
下载解压到网站根目录中
#cd/opt/share/www
#chmod 777-R attachment
#chmod 777-R bak
#chmod 777-R data
#chmod 777-R post
#chmod 777-Rtemp
在www 3322 org注册动态域名后访问/instal l/instal l php目录就开始安装了,用http://XXX 3322 org:8081访问博客主页。
总结
一级路由器直接接外网二级路由器为dd-wrt,我们利用upnpc自动映射二级路由器就直接穿透到外网了而且不需要到一级路由器上做任何修改当然如果一级路由器是自己的用DMZ主要可能更方便打开dd-wrt自带的动态域名功能就不必装miniUpnpc和lynx了
如果dd-wrt直接接adsl 同上也不必装miniUpnpc和lynx了。
最终启动命令组成了这个样子:umount /jffsumount /mntmount/dev/scsi/host0/bus0/target0/lun0/part1 /jffsmount/dev/mtdblock/4/mntmount -o bind/jffs/opt /optmount -o bind/jffs/opt/share/www/mnt
/opt/etc/init d/S80l ighttpd start
/opt/etc/init d/S70mysqld start
出错提示
Connecting to ipkg nslu2-l inuxorg(14021 1 169169:80)
/tmp/optware-instal l sh: l ine 94: /opt/sbin/ldconfig: not found
/tmp/optware-instal l sh: l ine 95: /opt/bin/ipkg:not found
/tmp/optware-instal l sh: l ine 96: /opt/bin/ipkg:not found
/tmp/optware-instal l sh: l ine 97: /opt/bin/ipkg:not found
原因 ipkg nslu2-l inux org服务器打不开了换个时间再试吧。