开启愉快的路由之旅:广工校园网Wifi

本文记录了一位作者初次接触路由器并配置校园网Wi-Fi的过程,包括刷入Breed和Lede Openwrt 18.06.4,安装gdut-drcom客户端以连接校园网,以及如何防止用户代理检测导致的网络断开问题。通过编译自定义固件和使用privoxy修改UA,实现了多设备共享校园网稳定上网。
部署运行你感兴趣的模型镜像

关于路由

路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动。路由发生在OSI网络参考模型中的第三层即网路层。

上面是维基百科中的定义,在我的理解中,路由就是一个分配网络的中间站。之前我一直以为路由是一种单独的设备,后来才发现路由也相当于一台“计算机”,只不过大部分路由配置也就只能用来分发网络罢了(也就是说,一般的电脑都可以用来改造成路由器)。既然是一台“小巧的计算机”,那么我就可以装系统,装软件了吧?的确如此,只不过由于路由器的配置相对较低,因此和自己用的电脑还是有区别的。

我也只是前天才开始接触路由器,因为装了校园网,想用Wifi。根据朋友推荐,我买了联想的Newifi Y1S这款路由器,一开始玩什么都不懂,于是才有了这几篇折腾了几天的博客。这是系列的第一篇,也是我一开始搞的东西,使用校园网Wifi。

[2019.9.11](距离写这篇文章已经过去快两年了,时间真是无情??)Openwrt 的可玩性非常高,还可以现学现用《计算机网络》,感兴趣的同学可以深入学习下,比如 Openwrt 的工作原理,启动加载顺序,UCI,模块编写,包编写这些,可以最大程度地提升学习体验。

刷入 Breed

Breed是一个路由器用的Bootloader(Bootloader 意思为引导加载器,即为用于加载操作系统的程序。它是一大类此类功能程序的统称。现在的 BIOS、UEFI、GRUB、RedBoot、U-Boot、CFE等都是 Bootloader),如果玩过安卓的大概就知道这是什么了,装它的目的是为了下一步刷入固件(ROM)。刷入Breed的步骤如下:

[2019.9.11] Breed 的网站好像打不开了,大家可以去论坛找找安装包

  • 下载Breed下载对应路由器的Breed,比如我的Y1S,就下载如图所示的:
    在这里插入图片描述

  • 因为路由器原生的bootloader没有DHCP服务,没法通过浏览器直接访问,因此需要到控制面板->网络连接里面,设置网卡IP为192.168.1.3,子网掩码默认,如图所示:

在这里插入图片描述

  • 然后把路由的LAN口和电脑用网线接起来,按住路由的RESET键,然后插上电源,当你看到usb和wifi信号灯不停闪烁时,就可以放开RESET键了。这时打开浏览器,输入192.168.1.1,一切正常的话你会看到如下界面:

在这里插入图片描述

  • 选择刚刚下载的 Breed,点击恢复后,等路由重启完成后拔掉电源。至此 Breed 就安装完成了。

刷入Lede Openwrt 18.06.4

LEDE(Linux Embedded Development Environment,Linux嵌入式开发环境)项目是一个基于OpenWrt的Linux操作系统。是由OpenWrt原核心成员开发的。安装方法如下:

LEDE 和 Openwrt 又合并了。。。这大概就是所谓的分久必合?Openwrt 18.06.4 是目前最新的版本,其中 Linux 内核版本是 4.14.131,如果路由器不支持的话可以看看其他版本。

  • 下载Openwrt 这里,根据自己路由器 CPU 芯片系列找对应文件里的安装文件。我的 Y1S 在 ramips/mt7620 下面:

[2019.9.11] 关于如何寻找自己的固件,一般如果是 TP-LINK 的路由器,基本都在 ar71xx 下面,然后其中的大部分又在 tiny 下面,如果是联发科的芯片,那就是 ramips/mt7620 或者 ramips/mt7621 了。固件一般有两个版本 factory 或者 sysupgrade,前者适合第一次刷入 Openwrt 的时候用,后者属于在 Openwrt 的基础上刷机的时候用。

在这里插入图片描述
[2019.9.11] 然后在下载列表的最下面,有两个特别好用的东西 imageBuilderSDK,使用 imageBuilder 可以很方便地定制自己的专属固件,提前把自己路由器的配置、需要安装的软件都放进去编译成固件,除了非常方便,而且把要用的软件直接编译到固件里面能节省很多闪存空间;SDK的话,则是用来交叉编译需要用到的软件包(即 ipk),比如下文提到的“gdut-drcom”软件包,如果自己的路由器的软件架构不是 mipsel_24kc,则没法用使用我提供的 ipk 安装包,那么便需要自己编译,编译的具体方法下面再说。(BTW,在路由器中输入 opkg print-architecture 就可以看到自己路由器的应用架构了)

在这里插入图片描述

  • 上面刷入 Breed 的时候更改了网卡的IP,现在改回自动获取。接着同样的操作,按住 RESET,连接电源,等电源指示灯开始以橙/蓝闪烁时,松开 RESET,进浏览器,输入 192.168.1.1,这时就进入了 Breed,在左栏选择 固件更新,在右边选择刚刚下载的 Openwrt 固件:

在这里插入图片描述

  • 安装完成后会自动重启,这时可以不断刷新浏览器,直到 Openwrt 的管理界面显示出来。

安装 gdut-drcom

经过上一步安装完 Openwrt 后,就可以通过 192.168.1.1 访问管理界面,在里面安装好 gdut-drcom 就可以连接校园网了,步骤如下:

  • 先下载 gdut-drcom 1.6.8-3 软件包,提取码: p4w9

  • 接着下载 WinSCP 用来上传文件到路由器上,提取码: cdjb

  • 打开 WinSCP,然后如图所示输入(此处的密码是在网页登录 Openwrt 后设置的登录密码):

在这里插入图片描述

  • 连接上之后把下载好的 gdut-drcom 拖放到右边,为了方便重命名为 drcom.ipk,接着打开右上角的终端窗口,如图所示,输入 opkg install drcom.ipk,等待命令执行结束后,关闭所有窗口即可。

在这里插入图片描述

  • 把校园网网线接到 WAN 口上,接着到 Openwrt 的管理界面,在网络下找到刚安装的客户端,然后进入,按图所示配置,最后保存/应用,刷新之后就可以无忧无虑地用 WIFI 上网啦
    在这里插入图片描述
    [2019.9.11] 图中的接口名称填写自己路由 WAN 口的接口,可以在如图所示的地方找到:
    在这里插入图片描述

编译 gdut-drcom

[2019.9.11] 首先感谢 chenhaowen01 师兄编写的心跳包验证程序,上面链接给出的是我自己汉化并编译的版本,软件架构是 mipsel_24kc,其他架构需要自己编译,具体编译方法如下:

  • 首先准备一个 Linux 系统,建议在 VMware 安装一个虚拟机,Mac 用户可以无视,直接用终端就行了
  • 安装好编译需要用到的依赖,以我 Debian 为例: sudo apt install build-essential libncurses5-dev gawk git libssl-dev gettext zlib1g-dev swig unzip time
  • 然后把上面提到的,对应自己路由器 CPU 架构的 sdk 下载好并解压
    在这里插入图片描述
  • 下载 gdut-drcom-for-openwrt,提取码: kq73
  • 解压后的 gdut-drcom 文件,复制到 SDK 的 package 目录下面
    在这里插入图片描述
  • 打开终端输入 make package/gdut-drcom/compile V=s,在弹出的配置界面的 Network 中把 gdut-drcom 勾选上
    在这里插入图片描述
  • 等编译完成后即可在 bin 文件夹下面找到生成的 ipk 文件

防用户代理检测

[2019.9.11] 去年差不多这个时候,学校机房更新了一个检测机制,一旦同一个端口连接的数量超过了 2 台,网络就会断开,10 分钟后恢复,导致同学们叫苦不迭。好在经过大家的一番探索之后,发现该检测机制实际上是检测流量数据包的用户代理(User-Agent)信息来判断是否超过两台设备,UA 中包含了操作系统版本等信息,而 HTTP 协议没有对这些信息加密,因此别人可以从这里看到这个数据包发自电脑还是安卓/苹果手机,因此便有了现在的解决方案:修改本地所有设备的 HTTP 数据包的 UA,使之统一为一条,这样服务器就检测不出来了。具体操作方法如下:

  • 首先在路由器中安装 privoxy:在“系统->软件包”界面,先点击刷新列表,刷新完成后在“下载并安装软件包”那里输入 luci-app-privoxy 然后点击确认进行安装,安装完成后刷新页面,即可在“服务”下面看到装好的 privoxy(需要中文的,再安装 luci-i18n-privoxy-zh-cn 即可)
  • 进入 privoxy,按图所示进行配置:
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述* 配置好并保存后,在浏览器中输入:http://config.privoxy.org/edit-actions-list?f=0,如果打不开,请重启路由器多测试几次。然后点击 Edit 按钮。在Action 那一列中,hide-user-agent 改选为 Enable,在右侧 User Agent string to send 框中填写以下内容:
    (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36,然后点击 Submit 提交即可

在这里插入图片描述在这里插入图片描述

  • 最后还需要修改一下防火墙规则:在“网络->防火墙->Custom Rules”下面填入如下所示的内容,然后点击“重启防火墙”即可
iptables -t nat -N http_ua_drop
iptables -t nat -I PREROUTING -p tcp --dport 80 -j http_ua_drop
iptables -t nat -A http_ua_drop -d 0.0.0.0/8 -j RETURN
iptables -t nat -A http_ua_drop -d 127.0.0.0/8 -j RETURN
iptables -t nat -A http_ua_drop -d 192.168.0.0/16 -j RETURN
iptables -t nat -A http_ua_drop -p tcp -j REDIRECT --to-port 8118

接下来还有两点注意事项:

  1. 由于 UA 都被统一了,会导致手机部分应用出现问题,现已知的比如移动端的 Bilibili,解决方法如下:
    在最后一条防火墙规则的前面添加一句:iptables -t nat -A http_ua_drop -s 你的手机的IP地址 -j RETURN ,至于如何查看自己手机的 IP 地址,可以在“状态->总览->已分配的 DHCP 租约”里面找到

  2. 由于来自本地网络的所有 HTTP 流量都转发到了 privoxy,久而久之网络会变得很卡(大概是软件的缓存?),重启路由器即可解决,为了方便可以添加一个计划任务,在“系统->计划任务”里面填写 40 4 * * * reboot 后提交即可,这句命令的意思是每天凌晨 4:40 重启路由器

所有东西都搞定之后重启路由器,就大功告成了

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值