至专校园网攻略
日后你惹出祸来,不把师父说出来就行了
校园网概况
- 名义上有三家运营商,但实际出口只有联通和移动两家,2024 年秋季开学以来,电信好像消失了;
- 所以无论你办哪家的校园网,校园网(有线网络、校园热点)的网络质量都是一样的;
- 没有 ipv6;
- 教务处的服务不需要内网,你不买校园网也可以正常选课。
认证客户端:inyn
自由不是你想做什么就能做什么,而是你不想做什么就可以不做什么 —— 伊曼努尔·康德
你想要在学校上网,对吗?你还想要多台设备同时上网,而不是被限制登陆数量,对吗? 有时候你并没有在用 Windows, 而是用别的系统,你希望插上网线也能认证,对吗? 又或者你使用 Windows ,也接受不了一个又大又可疑的认证客户端,对吗?
inyn 就是为您设计的 : )
inyn 是一个现代新华三 802.1x 标准认证客户端。它的全称是 “I am Not Your Node”,而新华三官方的认证客户端叫 iNode。
使用 inyn, 您可以在各种平台上认证校园网。只要配置好账号密码,它会自动认证,并在认证失败时告诉你哪里出错了。
你可能会觉得,自己编译和配置会不会特别麻烦?没错,它就是这么麻烦,不过它的后继版本 inyn-go 正在由一个校园网害虫精心开发,届时会有更清晰的文档和 Web 配置前端,并支持更多功能(定时断网、失败回调…)
inyn 基于 bitdust 的 njit8021xclient 分支开发,njit8021xclient 来自南京工程学院和开源社群,向所有研究协议和实现的大侠们致敬~
路由器刷机
选择一个可以刷成 OpenWrt 的路由器,红米 ac2100 和 wr30u 都是不错的选择。我自己用的是 ac2100, 不支持 wifi6, 不过价格比较亲民,学校的网速也能跑满。
我想在这里省略具体的做法,因为这件事的教程在网上很多,你可以自己找。 比方说,这是我参考的刷机教程:红米 AC2100 路由器刷 OpenWrt 教程
要注意一下,这篇文章的成文时间比较早了,现在最新的稳定版 OpenWrt 是 23.05.4
, 把 URL 里的 21.02.0
换成 23.05.4
就行。
手动编译 inyn 的 OpenWrt 包
首先,我建议你在 Linux 下做这件事情,这个教程大部分内容都是在 Ubuntu 24.04 下完成的,跟着我一步一步做应该不难。
如果你没有 Linux 使用经验也不想折腾,我建议你等我的 inyn-go 出来,到时候我会提供预编译的软件包,方便你在刷完路由器之后直接安装认证客户端。
在 Ubuntu 上安装 SDK 所需要的依赖
sudo apt install python3-distutils-extra git gawk libncurses-dev build-essential
下载对应设备的 OpenWrt SDK
上一步下载系统镜像的页面也包含了 SDK 的下载链接,在 Supplementary Files 栏中,找到文件名类似于:openwrt-sdk-*.Linux-x86_64.tar.xz
的文件,在你的 Ubuntu 里下载,然后解压。
进入解压出的文件夹
这个文件夹里应该会有这些东西:
build_dir COPYING include package rules.mk target
Config-build.in dl LICENSES prepare.mk scripts
Config.in feeds.conf.default Makefile README.md staging_dir
修改 feeds.conf.default
文件
这个文件描述了我们待会儿编译的时候,下载依赖包的来源,默认是 OpenWrt 官方地址,但很不幸我们身处大洋彼岸,官方地址太慢了。
把所有 git.openwrt.org
都换成第三方镜像,最后类似于这样:
src-git-full base https://gitee.com/mirrors/OpenWrt.git;openwrt-23.05
src-git packages https://gitee.com/harvey520/packages.git^....
src-git luci https://gitee.com/harvey520/luci.git^....
src-git routing https://gitee.com/harvey520/routing.git^....
src-git telephony https://git.openwrt.org/feed/telephony.git^....
注意不要动后面省略号那部分,那是仓库的 commit 值,用来标识我们到底需要哪个版本的仓库。
下载和安装仓库信息
./scripts/feeds update -a
./scripts/feeds install -a
下载并选中我们需要编译的 inyn 包
git clone https://github.com/diredocks/openwrt-inyn.git ./package/inyn
make menuconfig
在 menuconfig
的命令行界面中,选中 Network -> inyn
将其首部调整为 <M>
表示按需编译,最后选中 Save -> OK -> Exit
保存配置信息,然后 Exit
退出配置。
编译 inyn 软件包
make package/inyn/compile V=s
这里会从网上下载源码,而且配置不了镜像,所以我建议你有条件还是开个梯子啥的,要不然很可能卡在这里。
如果一切顺利的话,你会在 ./bin/packages/mipsel_24kc/base
里找到文件名类似于 inyn_*.ipk
的文件,这就是我们编译出来的软件包。
至于咋安装,你自己上网搜吧()
这玩意怎么用
既然你已经把你的路由器刷成 OpenWrt 的了,那你应该知道怎么通过 ssh 登陆它。 登陆之后,查看一下你路由器的 WAN 口名称:
输入 ip addr
,你应该能看到网络设备的信息,其中对于 ip 为 10.xx.xx.xx
的就是连接上校园网网络的设备。
3: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 10.xx.xx.xx/23 brd 10.xx.xx.xx scope global wan
valid_lft forever preferred_lft forever
可以看到我这里这个设备叫 wan
inyn 目前只支持从命令行获取参数登陆,参数的顺序是:
inyn [账户] [密码] [对应设备]
比方说你的账户是 212402333
,密码是 chiputaobutuputaopi
,WAN 口对应设备是 wan
,运营商是中国联通,那么你使用 inyn 登陆的命令就是:
inyn 212402333@cucc chiputaobutuputaopi wan
注意这里账户后面要用 @
加上运营商名,其他两家你可以自己搜一下缩写是什么。
程序开始认证就会输出日志,当出现:
[*] Server: Success.
的时候代表认证成功,你就可以开始上网了。
但你总不可能老把程序放前台挂着,所以你得自己写个服务让他在后台运行,OpenWrt 使用 procd 管理后台服务,你可以自己研究下这玩意怎么用。
你甚至可以和 cron 结合一下,达到每晚断网自动关闭热点、节假日自动适应联网等等….
当然,我正在撸的 inyn-go 会自带这些功能,如果你也感兴趣,可以加入我的开发。(╯•̀ὤ•́)╯