无线路由器的主要功能,网口WAN接入,USB无线网卡AP热点输出,连上wifi之后跳转到认证页面,点击认证方可上网,有效时间10分钟,认证成功之后自动访问指定网址。
硬件准备:
1.Raspberry Pi 2 model B
2.USB无线网卡,我使用的是TL-WN722N 150Mbps 芯片是AR9271
3.操作系统:CentOS 7
4.SD卡8GB
开始之前最好配置好代理,因为编译过程中所有的依赖会联网自动下载,会有大部分时间耗在这里,如果速度慢或者被墙……
配置编译环境(一定要非root账户):
#升级组件
sudo yum update
#安装编译组件
sudo yum install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev subversion
下载openwrt源码(新手不建议下载trunk,不是很稳定)
#使用非root用户登录,建立openwrt目录
mkdir openwrt
#进入openwrt目录
cd openwrt
#下载openwrt的源码
git clone git://git.openwrt.org/15.05/openwrt.git
集成nodogsplash 在/openwrt/feeds.conf.default中添加
src-git nodogsplash https://github.com/nodogsplash/nodogsplash.git
设置权限
sudo chmod -R 777 trunk
cd trunk
更新并安装
./scripts/feeds update -a
./scripts/feeds install -a
根据自己的需要更改系统默认设置,就不细说了,这里列举几个我的设置
#这个目录下可以放置之前openwrt的备份文件,也就是说相当于openwrt的/etc/目录
/home/rophie/openwrt/openwrt/package/base-files/files/etc
#默认wifi设置
package/kernel/mac80211/files/lib/wifi/mac80211.sh
network设置
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.88.1'
option netmask '255.255.255.0'
option _orig_bridge 'true'
option gateway '192.168.88.1'
config globals 'globals'
option ula_prefix 'fda9:3639:b1e9::/48'
config interface 'wan'
option ifname 'eth0'
option _orig_ifname 'eth0'
option _orig_bridge 'false'
option proto 'dhcp'
wireless设置
config wifi-device 'radio0'
option type 'mac80211'
option channel '11'
#这里根据你的USB无线网卡的U口来定
option path 'platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0'
option noscan '1'
option country 'CN'
option hwmode '11n'
option htmode 'HT40'
option txpower '40'
config wifi-iface
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'APK-YFKJ'
option encryption psk-mixed<br> option key 88888888<br>
nodogsplash设置
config instance
# Set to 1 to enable nodogsplash
option enabled 1
# Use plain configuration file as well
#option config '/etc/nodogsplash/nodogsplash.conf'
option network 'lan'
option gatewayname 'OpenWrt Nodogsplash'
option maxclients '250'
option idletimeout '10'
option clientforcetimeout '10'
option redirecturl 'http://192.168.88.1:8080'
# Your router may have several interfaces, and you
# probably want to keep them private from the network/gatewayinterface.
# If so, you should block the entire subnets on those interfaces, e.g.:
#list authenticated_users 'block to 192.168.0.0/16'
list authenticated_users 'block to 10.0.0.0/8'
# Typical ports you will probably want to open up.
list authenticated_users 'allow tcp port 22'
list authenticated_users 'allow tcp port 53'
list authenticated_users 'allow udp port 53'
list authenticated_users 'allow tcp port 80'
list authenticated_users 'allow tcp port 443'
list authenticated_users 'allow tcp port 8080'
# For preauthenticated users to resolve IP addresses in their
# initial request not using the router itself as a DNS server,
list preauthenticated_users 'allow tcp port 53'
list preauthenticated_users 'allow udp port 53'
#list preauthenticated_users 'allow tcp port 8080'
# Allow ports for SSH/Telnet/DNS/DHCP/HTTP/HTTPS
list users_to_router 'allow tcp port 22'
list users_to_router 'allow tcp port 23'
list users_to_router 'allow tcp port 53'
list users_to_router 'allow udp port 53'
list users_to_router 'allow udp port 67'
list users_to_router 'allow tcp port 80'
list users_to_router 'allow tcp port 8080'
list users_to_router 'allow tcp port 443'
# See https://github.com/nodogsplash for a full list of available options.
编译配置