一步一步配置openwrt-Joey 于2011年儿童节前 -2011.5.30
感谢安安,人生如戏编译的固件,风飞雪帮助配置openvpn,以及友们的帮助。此文目的是让众多像我这样的OP小白们少走弯路。
wifi分享
一些说明,以下内容基于安安27000固件,路由为mv300R 8M flash,adsl拨号。为了防止歧义,我将固件语言切换为英文。
1.System-Mount Points
用自己擅长的工具格式化自己的脱机硬盘。我分为了两个区,一个512M,用来extroot,剩余的作为下载目录。之所以先说这个是因为一旦extroot之后,所有配置都会丢失,所以先说这个。那么下面的配置文件都会自动copy在extroot分区上。
a.将硬盘插入路由后,ssh到路由(请参阅步骤2),然后运行blkid,查硬盘的uuid
然后在Mount Points里通过uuid来挂载,通过uuid挂载的好处是插入不同的硬盘后,不会乱挂。挂载后重启,应该能看到overlay分区500+M,看到overlay-disable说明挂载失败(可以删除第一分区的下etc/extroot.md5sum文件,然后尝试重启)。
制作swapfile文件,用dd if=/dev/zero of=swapfile bs=1024 count=131072 (128MB)制作,然后mkswap swapfile,你然后在下面指定这个swapfile,但我发现web里挂载后,用free -h看到的还是没有,直到在ssh里swapon swapfile。喜欢的话也可以在分区的时候专门分一个swap分区来挂载。
最后确认你的两个分区都已经正确挂载。
PS: 我的第二分区挂载为/home
2.system-administration
刷机什么就不说了。初始用户名root,密码admin,先到system-administration 修改密码,否则ssh不能,顺便修改监听端口默认为22,勾选下面的三项用于ssh认证和端口转发。
3.Services-Dynamic DNS
建议设置两个,以防某个挂了,另一个还能用。source of IP address选择network,network选择wan。
4.Services-uShare
如果需要多媒体服务,开启该服务,在/home目录下建立medias目录,以后可以把mp3,avi这些多媒体格式扔进去,然后upnp多媒体播放器就能播放里面的内容了。比如wmp,甚至是一些网络播放机。
5.Extensions-Transmission
开启内置的bt下载工具,关键是修改Download Path,我的设置是/home/downloads,config dir是/home/temp,高级设置里务必设置一下web登录时的用户名和密码
6.Network-Interfaces
安安这版的wan默认没有加入任何zone,所以把wan加到wan这个zone里,这样能使之后的firewall设置生效,我在这里卡了很久,很多次把firewall弄坏,导致web配置页打开不能。
-wifi
开启wifi,默认是关闭的,里面的安全认证设置就不说了,很简单的。
-DHCP AND DNS
也不多说了,注意的是默认从内网访问DDNS的话是不允许的,开关在DNS里的一个设置里。
7. Firewall
这个是重头戏,栽倒无数次。引用里某人的
话,把Rules看成只针对路由本身的端口映射,把Redirections看成对内网其他计算机做端口映射的区域就好。
先说下我的Zones的设置
Lan--->wan,全部accept
Wan--->reject,Reject,accept,reject
Redirections
--目前为空
Rules
--映射Transmission_port和web端口,分别是51413和9091
--http 80 , https 443 , 路由的web页,可以通过修改/etc/config/uhttpd来修改该相应的端口。记得修改后/etc/init.d/uhttpd restart一下
--ssh 22, 路由的ssh
-- 相应的mldonkey端口,有服务端口,比如4001,4080等,还有下载端口,具体看我上传的mlnet文件里的说明。
--ftp 21,40000~50000,21不说了,后面的下面会说到
--OpenVPN 1194(UDP),OpenVPN端口,如果是TCP的443,注意不要和https的443冲突。
8.说一下vsftpd,这个内置在固件中,但是没有web配置页面的。
因为固件中没有useradd命令,所以要添加用户直接修改/etc/passwd文件。我开启了匿名用户,默认vsftpd的默认匿名是ftp,然后要求了一下密码验证。所以passwd ftp一下,根据提示会要求输入两次密码,就可以了。
这里是我的ftp配置文件,/f
background=YES
listen=YES
anonymous_enable=YES
anon_root=/home/ftp
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
local_root=/home
connect_from_port_20=YES
listen_port=2121
pasv_min_port=40000
pasv_max_port=40021
#dirmessage_enable=YES
#ftpd_banner=Welcome to blah FTP service.
session_support=NO
#syslog_enable=YES
#userlist_enable=YES
#userlist_deny=NO
#userlist_file=/etc/vsftpd.users
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=YES
很多次发现vsftpd的服务重启后,用netstat -npl查看,会看到两个服务,可以用kill -9 pid来杀掉老的那个。
匿名用户的默认目录在/home/ftp,注意这个目录权限需要755,就是chmod 755 /home/ftp,否则登录会有失败提示
pasv_min/max_port这个是为了在pasv登录时候避免卡死,这里我卡了很久,论坛问了很多也没人理睬,后来还是通过搜索慢慢摸索出来了。开始没写着两行,然后用filezilla登录,然后在ssh端 netstat -npl后就能看到vsftpd的进程有卡死,会有一个外网:端口(40000~50000之间),然后用了flashfxp,可以打开了,但是在切换目录时还是有问题。然后曾经尝试用主动模式的ftp模式,可以,而且没有错误,但是用web访问时问题依旧。最终加上min/max,就没有问题了,外网的起始端口21的访问都会被转发到这个vsftpd服务上去。
OpenVPN服务我自己还没搞明白,比起tt的设置要复杂很多。所以说不清不如不说。
注:该版本固件ssh下不能显示中文目录或文件,在ssh客户端设置正确的情况下,可以试试vi +tab来显示(vi 是linux下的编辑器),这个方法有点讨
巧,但是可用。