..

至专校园网攻略

日后你惹出祸来,不把师父说出来就行了

校园网概况

  1. 名义上有三家运营商,但实际出口只有联通和移动两家,2024 年秋季开学以来,电信好像消失了;
  2. 所以无论你办哪家的校园网,校园网(有线网络、校园热点)的网络质量都是一样的;
  3. 没有 ipv6;
  4. 教务处的服务不需要内网,你不买校园网也可以正常选课。

认证客户端: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 会自带这些功能,如果你也感兴趣,可以加入我的开发。(╯•̀ὤ•́)╯