本文核心内容来自网络,由李星海和黄瀚进行实际操作并修改了部分步骤。李星海负责编写了本文起始至完成搭建无线AP的部分;黄瀚负责编写了mentohust至结束的部分。设备的实际操作由两人共同在华南农业大学宿舍进行。
参考文章请至文末查看。
据了解华南农业大学的校园网与广东工贸职业技术学院的校园网服务商相同。故本文也可适用于广东工贸职业技术学院。
- 前置准备条件:
- TF卡1张(建议32G)
- TF卡读卡器一块
- 树莓派开发板一块(这里以树莓派0为例)
- MicroUSB OTG转换器一个
- USB扩展坞1个(建议至少含有3个USB和1个RJ45接口)
- MicroHDMI转HDMI转换器1个
- HDMI视频采集卡一块(如果不方便购买可以选择使用已有的HDMI显示器)
- 键盘一块,网线一条,U盘一块,HDMI数据线一条
- 网络环境:普通家庭网络即可,路由器最好配置了DHCP
- 带有无线网卡的PC一台(操作系统建议为Windows10)
- 软件环境(本文所需要的软件均在FTP项目文件夹下)
- 无线AP的网络拓扑图参见图0

- 将TF卡装入TF卡读卡器内,连接电脑,打开软件[balenaEtcher-Protable-1.5.4.5.exe],此时选择下载好的[树莓派lite](这个可以直接在树莓派官网下载,文件过大就不放FTP上面了),在Flash Disk处选择与电脑连接的TF卡的盘符,开始点按Flash进行系统刷写。
- 系统刷写完成后,断开与电脑的连接,将TF卡装入树莓派开发板的插槽内。将MicroHDMI转HDMI转换器插入树莓派开发板插槽内,将HDMI视频采集卡与PC连接,将HDMI数据线与树莓派和PC机连接。将MicroUSB OTG转换器插入树莓派开发板的插槽内,将USB扩展坞与MicroUSB OTG转换器连接,将网线与路由器和USB扩展坞进行连接,将键盘与USB扩展坞进行连接。
- 开机,将电源线连接,此时树莓派会自动开机。默认用户是[pi],默认密码是[raspberry]
- 完成开机后,使用管理员命令进行换源的操作。
- 使用命令[
sudo nano /etc/apt/source.list
]进行编辑,注释原有的内容,增加如下字段(替换清华源)。
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
- 使用命令[
sudo nano /etc/apt/sources.list.d/raspi.list
] 进行编辑,注释原有的内容,增加如下字段(替换清华源)。- [
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
]
- [
- 使用命令[
- 完成第4步后,即可用[
sudo apt-get update
]进行源的更新,使用[sudo apt-get dist-upgrade
]先进行一次系统升级。如下附图1,2所示。 - 升级完成后,为了更方便的连接,可以使用SSH进行连接。输入指令[
sudo service ssh enable
][sudo service ssh start
]开启SSH。随后在PC机使用PUTTY,通过输入树莓派的IP地址进行连接。 - 在终端输入[
sudo raspi-config
],可以配置环境,此处修改字符集编码为[en-us utf8]。如果您的系统已经是这个字符集了,可以忽略此步。- 使用上下键移动到[5 Localisation Options],点按enter;在新界main点按enter[L1 Locale];在新的界面使用上下键移动到en_us UTF-8,按下空格进行选中。完成后按tab,此时会选中[ok],按下enter,在新的界面选中[en_US.UTF-8]。完成配置后,选择Finish退出。
- 此时正式开始配置树莓派的无线AP。
- 如果您不在中国大陆,您可以直接使用命令[
curl -sL https://install.raspap.com | bash
]进行一键安装,完成安装后,可以直接跳转至[24]步。如果您在中国大陆,请继续进行如下配置。 - 安装必备的依赖项目,部分过程如图1,图2所示。
sudo apt-get install lighttpd git hostapd dnsmasq iptables-persistent vnstat qrencode php7.3-cgi


12.开启lighttpd服务
sudo lighttpd-enable-mod fastcgi-php
- 此时会见到如下输出
Met dependency: fastcgi
Enabling fastcgi-php: ok
Enabling fastcgi: ok
Run "service lighttpd force-reload" to enable changes
- 参考如图3所示

13.继续执行指令
sudo service lighttpd force-reload
sudo systemctl restart lighttpd.service
- 参考如图4所示

14.克隆raspap-webgui的源码,输入如下指令。
sudo rm -rf /var/www/html
sudo git clone https://gitee.com/ursaminor68/raspap-webgui.git /var/www/html
- 此时会见到如下输出
Cloning into '/var/www/html'...
remote: Enumerating objects: 19377, done.
remote: Counting objects: 100% (19377/19377), done.
remote: Compressing objects: 100% (10829/10829), done.
remote: Total 19377 (delta 7163), reused 19377 (delta 7163), pack-reused 0
Receiving objects: 100% (19377/19377), 20.96 MiB | 2.46 MiB/s, done.
Resolving deltas: 100% (7163/7163), done.
克隆完成,参考过程如图5所示。

15.为www-data用户添加sudo权限。
cd /var/www/html
sudo cp installers/raspap.sudoers /etc/sudoers.d/090_raspap
- 参考如图6所示。

16.创建RaspAP的配置目录,添加dhcpcd文件作为基础配置文件,输入如下指令。
sudo mkdir /etc/raspap/
sudo mkdir /etc/raspap/backups
sudo mkdir /etc/raspap/networking
sudo mkdir /etc/raspap/hostapd
sudo mkdir /etc/raspap/lighttpd
cat /etc/dhcpcd.conf | sudo tee -a /etc/raspap/networking/defaults > /dev/null
17.更改文件目录和用户组权限,输入如下指令。
sudo cp raspap.php /etc/raspap
sudo chown -R www-data:www-data /var/www/html
sudo chown -R www-data:www-data /etc/raspap
sudo mv installers/*log.sh /etc/raspap/hostapd
sudo mv installers/service*.sh /etc/raspap/hostapd
sudo chown -c root:www-data /etc/raspap/hostapd/*.sh
- 此时会见到如下输出
changed ownership of '/etc/raspap/hostapd/disablelog.sh' from www-data:www-data to root:www-data
changed ownership of '/etc/raspap/hostapd/enablelog.sh' from www-data:www-data to root:www-data
changed ownership of '/etc/raspap/hostapd/servicestart.sh' from www-data:www-data to root:www-data
- 参考如图7所示。

- 继续执行指令
sudo chmod 750 /etc/raspap/hostapd/*.sh
sudo cp installers/configport.sh /etc/raspap/lighttpd
sudo chown -c root:www-data /etc/raspap/lighttpd/*.sh
- 此时会见到如下输出
changed ownership of '/etc/raspap/lighttpd/configport.sh' from root:root to root:www-data
- 参考如图8所示。

- 继续执行指令
sudo mv installers/raspapd.service /lib/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable raspapd.service
- 此时会见到如下输出
Created symlink /etc/systemd/system/multi-user.target.wants/raspapd.service → /lib/systemd/system/raspapd.service.
- 参考如图9所示。

18.将一些配置文件进行保存或配置,输入如下指令。
sudo mv /etc/default/hostapd ~/default_hostapd.old
sudo cp /etc/hostapd/hostapd.conf ~/hostapd.conf.old
(这一步可能出现找不到文件的情况,不过不影响正常的操作,无需担心)sudo cp config/default_hostapd /etc/default/hostapd
sudo cp config/hostapd.conf /etc/hostapd/hostapd.conf
sudo cp config/dnsmasq.conf /etc/dnsmasq.d/090_raspap.conf
sudo cp config/dhcpcd.conf /etc/dhcpcd.conf
sudo cp config/config.php /var/www/html/includes/
- 参考如图10所示。

sudo systemctl stop systemd-networkd
sudo systemctl disable systemd-networkd
sudo cp config/raspap-bridge-br0.netdev /etc/systemd/network/raspap-bridge-br0.netdev
sudo cp config/raspap-br0-member-eth0.network /etc/systemd/network/raspap-br0-member-eth0.network
- 参考如图11所示。

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/90_raspap.conf > /dev/null
sudo sysctl -p /etc/sysctl.d/90_raspap.conf
sudo /etc/init.d/procps restart
- 此时会见到如下输出:
[ ok ] Restarting procps (via systemctl): procps.service.
- 参考如图12所示。

19.修改IP表连接方式
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
20.修改完成后,如果出现如下[错误信息提示],请继续进行下述配置。如果没有出现,请直接跳转到[21]步
- [错误信息提示]
iptables/1.8.2 Failed to initialize nft: Protocol not supported
- [继续执行]
sudo reboot
- 重启完成后,重新使用SSH进行连接
- 再次执行[
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
]
21.继续输入如下指令
sudo iptables -t nat -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables/rules.v4
- 此时会见到如下输出
- *filter
- :INPUT ACCEPT [0:0]
- :FORWARD ACCEPT [0:0]
- :OUTPUT ACCEPT [0:0]
- COMMIT
- # Completed on Sat Nov 21 22:43:02 2020
- # Generated by xtables-save v1.8.2 on Sat Nov 21 22:43:02 2020
- *nat
- :PREROUTING ACCEPT [0:0]
- :INPUT ACCEPT [0:0]
- :POSTROUTING ACCEPT [0:0]
- :OUTPUT ACCEPT [0:0]
- -A POSTROUTING -j MASQUERADE
- -A POSTROUTING -s 192.168.50.0/24 ! -d 192.168.50.0/24 -j MASQUERADE
- COMMIT
- 参考如图13所示。

22.配置hostapd服务,输入如下指令
sudo systemctl unmask hostapd.service
sudo systemctl enable hostapd.service
- 此时会见到如下输出
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Synchronizing state of hostapd.service with SysV service script with /lib/systemd/systemd-sysv-install.

- 重启[
sudo reboot
] - 完成重启后,登陆进系统,使用您的手机打开WIFI,应该能搜索到一个名为[raspi-webgui]的网络,参考如图15所示。

24.此时您的RaspAP就配置成功了。不要激动,继续配置管理界面。
25.让您的PC机连接到这个网络,密码是[ChangMe]使用浏览器在地址栏中输入[http://10.3.141.1],此时会要求输入用户名[admin],密码[secret]。进入管理面板。参考如图16所示。

26.可以在[WLAN热点设置]修改无线的SSID,您可以取一个您喜欢的名字。在[安全性]菜单下可以修改此无线网络的密码。其他设置不需要额外的更改。,参考如图17所示。

27.至此,在树莓派上创建无线AP的教程就结束了;现在,开始配置mentohust,让它可以自动认证锐捷校园网。(所需的文件均可在FTP服务器中“项目文件库-G12华南农大绕过校园网用户限制”中获取)
28.将附带的文件于树莓派用户文件夹下解压(mentohust-0.3.1.tar.gz),会有一个mentohust-0.3.1的文件夹,进入该文件夹下的src文件夹。[cd ./mentohust-0.3.1/src
]
29.在树莓派中安装svn工具来checkout项目代码,安装必须的配置或编译工具。输入如下指令。
sudo apt-get install subversion-tools build-essential autopoint automake autoconf gettext-base gettext liblocale-gettext-perl libpcap-dev libnotify-dev
30.安装完成后,就可以从代码库中Check out,并运行脚本
svn checkout http://mentohust.googlecode.com/svn/trunk/ mentohust
cd mentohust
sh autogen.sh
31.进行配置,为下一步的编译做准备,输入如下指令。
./configure –prefix=/usr
32.使用make命令进行封装,输入如下指令。
sudo make
sudo make install
33.设置权限,输入指令[sudo chmod u+s /usr/bin/mentohust
]
34.此时,SRC文件夹下会生成一个可执行的【mentohust】文件。这样就可以使用了,输入指令[./mentohust
]即可运行。
35.运行后,会弹出【人到华中大,有甜亦有辣,明德厚学地,求是创新家】的介绍。随后开始配置mentohust,部分步骤配置过程:认证方式选择“赛尔”认证,DHCP的方式为“认证后”。输入校园网的账号和密码,其他选项根据实际进行配置。完成后就会自动进行认证。若认证成功即可完成绕过。(上述配置过程适用于华南农业大学,因尚未在广东工贸职业技术学院进行配置,因此部分配置需要进行相应的修改。)
36.如需要技术支持,欢迎与作者联系。
参考文献