猫言猫语

严以律己·宽以待人·自强不息·知行合一

在 OpenWrt 上部署 WifiQRCode

| 在 OpenWrt 上部署 WifiQRCode已关闭评论

假设你有一个使用 OpenWrt 的公开 Wifi 想部署 WifiQRCode,并且路由器的 LAN 口地址为 192.168.1.1,你就可以根据这个教程快速部署 WifiQRCode

一、安装软件包

使用 SSH 登录到 OpenWrt 上,执行以下命令:

# opkg update
# opkg install iptables-mod-conntrack-extra ipset zoneinfo-asia wget unzip php5-cgi php5-mod-gd php5-mod-session php5-mod-sockets

二、配置软件包

首先编辑 uhttpd 的配置文件 /etc/config/uhttpd,在文件头部先增加 portal 服务器相关配置

config uhttpd 'portal'
        list listen_http '0.0.0.0:11990'
        list interpreter ".php=/usr/bin/php-cgi"
        option home '/www/portal'
        option error_page ‘/error.html'
        option index_page 'error.html'

然后再修改原有 main 服务器的配置,增加以下 2 行

        list interpreter ".php=/usr/bin/php-cgi"
        option index_page 'index.php'

三、配置防火墙

打开防火墙的配置文件 /etc/firewall.user,增加以下配置

ipset destroy WifiQRCode
ipset create WifiQRCode bitmap:ip,mac range 192.168.1.0-192.168.1.255
iptables -t nat -A prerouting_lan_rule -m set ! --match-set WifiQRCode src,src -j SET --del-set WifiQRCode src,src
iptables -t nat -A prerouting_lan_rule -m set ! --match-set WifiQRCode src,src -m recent --remove --name WifiQRCode3600 --rsource
iptables -t nat -A prerouting_lan_rule -m set ! --match-set WifiQRCode src,src -m recent --remove --name WifiQRCode14400 --rsource
iptables -t nat -A prerouting_lan_rule -m set ! --match-set WifiQRCode src,src -m recent --remove --name WifiQRCode32400 --rsource
iptables -t nat -A prerouting_lan_rule -p tcp -m recent --rcheck --seconds 3600 --name WifiQRCode3600 --rsource -j ACCEPT
iptables -t nat -A prerouting_lan_rule -p tcp -m recent --rcheck --seconds 14400 --name WifiQRCode14400 --rsource -j ACCEPT
iptables -t nat -A prerouting_lan_rule -p tcp -m recent --rcheck --seconds 32400 --name WifiQRCode32400 --rsource -j ACCEPT
iptables -t nat -A prerouting_lan_rule ! -d 192.168.1.1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 11990
iptables -t filter -A input_lan_rule -p tcp -m state --state NEW -m tcp --dport 80 -j SET --add-set WifiQRCode src,src
iptables -t filter -A output_lan_rule -p udp --dport 3600 -m recent --set --name WifiQRCode3600 --rdest -j ACCEPT
iptables -t filter -A output_lan_rule -p udp --dport 14400 -m recent --set --name WifiQRCode14400 --rdest -j ACCEPT
iptables -t filter -A output_lan_rule -p udp --dport 32400 -m recent --set --name WifiQRCode32400 --rdest -j ACCEPT
iptables -t filter -A forwarding_lan_rule -m recent --update --seconds 3600 --name WifiQRCode3600 --rsource -j ACCEPT
iptables -t filter -A forwarding_lan_rule -m recent --rcheck --seconds 14400 --name WifiQRCode14400 --rsource -j ACCEPT
iptables -t filter -A forwarding_lan_rule -m recent --rcheck --seconds 32400 --name WifiQRCode32400 --rsource -j ACCEPT

四、下载WifiQRCode

# cd /www
# wget https://github.com/wuwx/wifiqrcode/archive/basic.zip --no-check-certificate
# unzip basic.zip
# mv wifiqrcode-basic portal
# rm basic.zip

五、测试WifiQRCode

安装完成后重新启动一次路由器,然后连上路由器Wifi,打开浏览器访问任何网址,都会被跳转到带二维码的网页,用其他手机扫描二维码,打开二维码所在网址,则会提醒你输入用户名密码(默认是admin/password),就可以对用户进行授权了。
如果需要修改密码,可以修改 /www/portal/application/controllers/authorization.php

评论已关闭。