前言:本教程通用于可以网页认证上网的校园网,但不能防检测

如果你的校园网支持网页认证,且没有UA检测,特征码检测等瞎扯淡的检测(不知道的话也可以直接试试)

1.电脑直连校园网,打开浏览器(以edge为例),进入校园网认证网页,F12键打开开发者工具,Network(网络),保留日志,输入账号密码,(选择运营商),连接,记下认证绑定的电脑MAC地址(开启无感认证)

如上图,点击连接后出现一个InterFace.do?method=login开头的请求,这一条就是发送认证请求的,右键复制为cURL(bash)命令,如果是多行就把命令改为一行(edge可能是多行,需要删除所有 斜杠回车俩空格 四个字符),

2.以padavan固件为例

代码如下,或直接下载附件

#!/bin/sh
#/etc/storage/xyw.sh
### Custom user script
#copyright by autumoon
logger -t "【校园网】" "脚本开始"
logger -t "【校园网】" "ping 114.114.114.114"
ping -c 1 114.114.114.114
if [ $? -eq 0 ];then
    logger -t "【校园网】" "网络连接正常"
else
    logger -t "【校园网】" "网络无法连接,开始校园网认证"
    varcurl命令
    logger -t "【校园网】" "$var"
    logger -t "【校园网】" "脚本完成,10秒后将再次检查网络"
    sleep 10
    logger -t "【校园网】" "ping 114.114.114.114"
    ping -c 1 114.114.114.114
    if [ $? -eq 0 ];then
        logger -t "【校园网】" "网络连接正常"
    else
        logger -t "【校园网】" "网络连接异常,请自行检查问题所在"
    fi
fi
logger -t "【校园网】" "脚本结束"

以ping 114判断是否连接互联网,var=``(键盘左上角esc键下的英文上角标键,不是回车键左侧的引用号)是请求认证的结果,logger -t 可以输出到padavan系统日志里,sleep 10是等待10秒,

把刚刚在网页抓取的curl请求改为一行,并替换脚本里第12行的curl命令,即夹在var=``的两个上角标之间

3.脚本保存为xyw.sh  ,连接路由器,外部网络配置,MAC地址填电脑认证用的地址

4.用winscp导入xyw.sh到路由器 /etc/storage 目录下(脚本目录,重启还在),文件权限改为0777(需要‘执行’权限,否则可能报错)

打开SSH终端会话窗口,输入 . /etc/storage/xyw.sh                (点+空格+脚本地址)

出现success,已经在线等信息(padavan网页日志有信息输出),校园网认证成功

5.脚本没有使用循环,故需要在padavan里开启网络持续检测,路由器后台 高级设置 自定义设置 网络检测

持续检测 网络改变时运行脚本:

#!/bin/sh

. /etc/storage/xyw.sh

在自定义设置 脚本 在WAN上行下行启动后执行

#!/bin/sh

. /etc/storage/xyw.sh

也可以直接在自定义 Crontab 定时任务配置里加入

0 */1 * * * /etc/storage/xyw.sh  #每隔一小时执行一次xyw.sh脚本

openwrt固件同理,但好像只能用自定义 Crontab 定时任务让它每隔一段时间执行一次了,可能有些地方需要改一下,问题不大

路由器WAN口MAC地址一定要改为上述第一步认证时使用的MAC地址,不然可能一直认证一直失败一直MAC冲突(路由器开启NAT模式,并作为NTP服务器提供服务)

转载自https://www.right.com.cn/forum/thread-958200-1-1.html

❤️这是一个个性签名❤️