____ _ __ __
/ __ \____ ___ ____| | / /____/ /_
/ / / / __ \/ _ \/ __ \ | /| / / ___/ __/
/ /_/ / /_/ / __/ / / / |/ |/ / / / /_
\____/ .___/\___/_/ /_/|__/|__/_/ \__/
/_/
- 免责声明
- 前言
- 准备工作
- 步骤一:获取路由器root权限
- 步骤二:刷入不死Breed
- 步骤三:刷入OpenWrt 系统固件
- 步骤四:安装Dr.com插件
- 步骤五:配置上网
- 步骤六:配置防检测
- 疑惑解答
- 补充
- License
免责声明
- 在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖、故障、数据丢失等情况,概不负责;
- 该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任由您自行承担;
- 部分学校明令禁止使用路由器上网,相关文件请点击广东工业大学校园网责任书、厦门大学校园网责任书查看。本教程仅用于交流使用,安装路由器的行为完全是您个人意志所决定的,如您已成功安装,请在 24 小时内重置路由器至原出产状态;
- 请按照学校推荐的方式连接到互联网,如因个人问题受到相关校规追责,由您自行承担。
QQ交流群
欢迎加入QQ交流群,群号748317786,仅限技术交流,禁止商业行为
前言
本教程教您如何在Drcom下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)
本教程适合使用Drcom进行拨号上网的用户,同时,要求您的路由器支持刷入第三方系统,如openwrt。由于是针对新手的教程,所以叙述部分可能会比较冗杂,您可自行跳到不同的章节。
本教程以极路由1S HC5661A为例,不同型号路由器所对应的教程略有不同,请您注意。
本教程非原创,在以下开发者的基础上进行改进:
准备工作
- 一款支持刷入第三方系统(openwrt)的路由器
- 该路由器已联网并获得开发者(root)权限
- 一根网线
- 下载软件WinSCP
- 下载软件putty,32位操作系统请下载putty32,64位系统请下载putty64
步骤一:获取路由器root权限
以极路由1S HC5661A
为例,在您购买满14天后,请先登录极路由器后台,然后依次开通、安装开发者插件
- 开通开发者模式:“云插件”>“路由器信息”>“高级设置”>“开通”
- 安装开发者插件:“云插件”>“全部插件”>“开发者模式”>”确定”
其他路由器可查看其他教程获取root权限。
步骤二:刷入不死Breed
下载Breed
Breed是一个路由器的Bootloader(Bootloader 意为引导加载器,即为用于加载操作系统的程序。它是一大类此类功能程序的统称。现在的 BIOS、UEFI、GRUB、RedBoot、U-Boot、CFE等都是 Bootloader),装它的目的是为了下一步刷入固件(ROM)。以极路由1S HC5661A
为例,不同型号下载不同的Breed,请务必对号入座,下载breed-mt7628-hiwifi-hc5661a.bin
以下是几种常见的路由器型号对应的Breed下载链接:
路由器版本号 | 下载链接地址 |
---|---|
极路由1(HC6361) | HC6361-uboot |
极路由1S(HC5661A) | breed-mt7628-hiwifi-hc5661a |
极路由1S(HC5661)/极路由2(HC5761) | breed-mt7620-hiwifi-hc5761 |
极路由3(HC5861) | breed-mt7620-hiwifi-hc5861 |
极路由4(HC5962) | breed-mt7621-hiwifi-hc5962 |
- | - |
小米路由器mini版 | breed-mt7620-xiaomi-mini |
红米AC2100版 | 链接: 红米AC2100刷Breed工具包, 密码: 14wa 红米AC2100路由器类型的, 刷完可直接跳到步骤三 |
小米路由器4C版 | 请直接查看issues27提供的小米路由器4C刷机过程 |
- | - |
新路由mini(newifi y1) | breed-mt7620-lenovo-y1 |
新路由1(newifi y1s) | breed-mt7620-lenovo-y2 |
新路由2(newifi d1) | breed-mt7621-newifi-d1 |
新路由3(newifi d2) | breed-mt7621-newifi-d2 |
- | - |
斐讯K1、K2一键刷Breed工具包 | 链接: 斐讯路由器刷breed Web助手通用版, 提取码: 5kjc 斐讯路由器类型的, 刷完可直接跳到步骤三 |
说明:
由于路由器版本太多,若您在上面没有找到对应的路由器型号,请自行查找
上传到指定目录
使用WinSCP登入你的路由器后台,其中:
主机名: 你的后台管理地址(比如192.168.1.1或者192.168.1.199或者其他)
账号: root
密码: 你的后台管理密码,如果忘记请恢复出产设置
端口: 1022或者22(自行测试)
模式: SCP
登陆成功后进入/tmp目录
,将刚才下载的breed-mt7628-hiwifi-hc5661a.bin上传到这个目录
刷入Breed
使用putty64登入你的路由器后台,主机名称、账号、密码、端口均与上述相同。连接类型选择SSH,然后点击打开按钮。
然后等一会,窗口会弹出login as:,此时输入账号root
接着,窗口会弹出password as:,此时输入后台管理密码。注意,输入密码的时候,密码不会显示在窗口上,需要靠感觉输入密码。
linux系统的登录方式是基本知识,但是考虑到的确有一部分人对计算机完全不懂,所以才会介绍那么详细。
登入成功后键入以下命令:
mtd -r write /tmp/breed-mt7628-hiwifi-hc5661a.bin u-boot
如果是小米路由器mini,则键入以下命令:
mtd -r write /tmp/breed-mt7620-xiaomi-mini.bin Bootloader
显示rebooting后等待路由重启完成,不死uboot就完成了刷入了。(注意,为了确定百分百刷入成功,建议此时什么都不要动,等待5分钟后再进行其他操作)
步骤三:刷入OpenWrt 系统固件
下载对应的OpenWrt系统固件
键入以下命令查看路由器CPU的型号
,以确定我们要刷什么版本的固件
cat /proc/cpuinfo
点击这里OpenWrt Downloads下载对应型号的OpenWrt固件,以极路由1S HC5661A
为例,点击下载openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin
如下图:
以下是几种常见的路由器型号对应的OpenWrt固件下载链接:
说明:
由于路由器版本太多,若您在上面没有找到对应的路由器型号,请自行查找
开始刷入OpenWrt固件
本小节的步骤请严格按照先后顺序操作。
- 用网线让路由器的LAN口与电脑的网口相连接;
- PC设置为自动获取IP(一般默认自动获取IP);
- 路由器断电(就是拔插头);
- 首先按住reset不放!,确保没有松开reset键后,然后,插入路由器电源;
- 保持按住reset 3-4秒左右,路由器灯开始一闪一闪的时候,松开reset;
- PC网卡获取到192.168.1.x的地址 (如未获取到手工设置),一般是192.168.1.1 ;
- 浏览器访问 192.168.1.1,接着你就会看到一个uboot控制台的界面。
为了保险起见,首先进行固件备份,以备不时之需。严重强烈建议极路由用户刷Breed后,第一次进入后台就备份一次,这样以后想要重新刷回官方系统时原有功能不会受到影响,仍然能够访问云平台。
现在正式开始刷入OpenWrt固件,依次点击固件更新→勾选固件→点击选择文件,选择我们刚刚下载的openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin,然后耐心等待固件刷入完成。
安装完成后会自动重启,这时可以不断刷新浏览器,直到管理界面显示出来,如果没有显示,建议稍后使用192.168.1.1访问管理页面。
账号:root
密码:默认没有密码或者默认密码为password
步骤四:安装Dr.com插件
Dr.com插件仅适用于使用Dr.com客户端认证(PPPoE,P版)的用户,主要是进行模拟拨号,定时发送心跳包的作用。使用Dr.com网页版认证(DHCP,D版)或者不使用Dr.com认证进行上网的用户不需要安装Dr.com插件。
安装现成Drcom插件
这里以广工(广东工业大学)校园网为例
,其他学校请自行获得相应的Dr.com插件,如果您愿意折腾的话,可以点击这里自行编译合适自己的学校的Dr.com插件(需要较强的编程基础,建议还是找对应自己学校的现成的插件)
以下是广工(广东工业大学)校园网
各个路由器相应版本Dr.com插件下载
路由器版本号 | CPU的架构 | 下载链接地址 |
---|---|---|
GDUT-极路由HC5661, HC5761, HC5861 | ramips/mt7620 | 下载链接地址 |
GDUT-极路由HC5661A, HC5861B | ramips/mt76x8 | 下载链接地址 |
GDUT-极路由HC5962 | ramips/mt7621 | 下载链接地址 |
GDUT-极路由HC6361 | ar71xx-generic | 下载链接地址 |
- | - | - |
GDUT-斐讯K2P版 | ramips-mt7621 | 下载链接地址 |
GDUT-斐讯K1, K2,K2G, K2C | ramips-mt7620 | 下载链接地址 |
- | - | - |
GDUT-小米路由器mini版 | ramips/mt7620 | 下载链接地址 |
GDUT-红米路由器AC2100版 | ramips/mt7621 | 下载链接地址 |
GDUT-小米路由器4C版 | ramips/mt76x8 | 下载链接地址 |
- | - | - |
GDUT-新路由mini(newifi y1), 新路由1(newifi y1s) | ramips/mt7620 | 下载链接地址 |
GDUT-新路由2(newifi d1), 新路由3(newifi d2) | ramips/mt7621 | 下载链接地址 |
- | - | - |
GDUT-ramips-rt305x | ramips-rt305x | 下载链接地址 |
GDUT-ar71xx_tiny | ar71xx_tiny | 下载链接地址 |
说明:
由于路由器版本太多,若您在上面没有找到对应的路由器型号,建议选择自己编译(难度很低)
将下载的Dr.com插件
用WinSCP
传到路由器/tmp
文件夹下(WinSCP的使用方式上面已经阐述过)。
打开并登录putty,进行安装Dr.com,请键入以下命令:
cd /tmp
opkg install gdut-drcom_6.0-4_mipsel_24kc.ipk
至此,Dr.com插件安装完毕。
自己编译Drcom插件
对于没有上述对应型号路由器的广工(广东工业大学)同学
,可进行以下步骤进行编译生成自己的Dr.com插件.
1.首先路由器CPU的型号
,键入以下命令查看cat /proc/cpuinfo
2.然后进入OpenWrt 18.06,根据自己路由器的路由器型号
进入相应的网站,以极路由HC5661A为例
,进入ramips/mt76x8,找到openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz并下载
3.在linux系统下(建议debian或者ubuntu),键入以下命令:
# 本次交叉编译过程在 Debian 8.9 系统下完成
# 先更新包列表
sudo apt-get update
# 安装ncurses,不同Linux版本执行不同命令
# Debian/Ubuntu 执行下面这1条命令,2选1
sudo apt-get install libncurses5-dev libncursesw5-dev
# CentOS 执行下面这条命令,2选1
yum install ncurses-devel ncurses
# 再次更新包列表
sudo apt-get update
# 安装awk,执行过程中有任何提示,请输入Y确认
sudo apt-get install gawk
# 安装git,执行过程中有任何提示,请输入Y确认
sudo apt-get install git
# 返回到当前用户目录,建议在当前用户目录下完成我们的工作,最好不要在root下
cd ~
# 在线下载相应的openwrt-sdk,这一步网络比较慢,下载可能比较久
# 如果你想加快速度,则请从其他电脑*fan*qiang*下载完成后传输到这个位置(也就是当前用户目录)
wget https://archive.openwrt.org/releases/18.06.0/targets/ramips/mt76x8/openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz
# 解压我们刚刚下载的openwrt-sdk,请务必确保该压缩包已经位于当前目录
tar xvJf openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz
# 进入该sdk文件夹
cd openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64
# 然后再进入package文件夹,并下载drcom ODP文件夹
cd package && git clone https://github.com/GJXS1980/ODP.git
# 返回上层目录,也就是为了回到openwrt-sdk这个目录
cd ..
# 开始编译
make package/ODP/compile
# 编译到最后的时候,会弹出一个框
# 此时,通过移动键盘左右键,移到Exit,按下回车键确认
# 接着,通过移动键盘左右键,移到Yes ,按下回车键确认
# 等待几秒钟编译完成
# 最终生成的yyy.ipk文件的位置为我们所下载的openwrt-sdk目录下的bin/packages/xxx/base/yyy.ipk
4.最终生成的yyy.ipk文件的位置为我们所下载的openwrt-sdk目录下的bin/packages/xxx/base/yyy.ipk
,到这里你也有一个适合自己路由器的drcom插件了,回到步骤四安装Dr.com客户端
步骤五:配置上网
- 点击 Network(网络)-> Interfaces(接口),点击“WAN”对应的 Edit(编辑) 按钮。
- Protocol(通信协议):改选为
PPPoE
,然后点击出现的 Switch Protocol(切换协议)按钮。 - PAP/CHAP username(PAP/CHAP 用户名):学号
- PAP/CHAP password(PAP/CHAP 密码):校园网密码
- 点击 Save & Apply(保存并应用)。
建议在输入账号密码的时候多检查几遍,保证没有输错
- 点击 Network -> Wireless(无线)。如果提示 Disabled(已禁用)就点击 Enable(启用)。可能只有一个 2.4G 的,也可能有一个 2.4G 的、一个 5G 的。点 2.4G或5G 的 Edit(编辑) 按钮。
- ESSID:填 WiFi 的名字。
- 点击 Wireless Security(无线安全)
- Encryption(加密):改选为
WPA2-PSK
- Key(密码):填你想要的 WiFi 密码
- 点击 Save & Apply(保存并应用)
- 配置dr.com客户端使用Dr.com P版认证的才需要配置,这里以
广工(广东工业大学)
为例,进行如下配置:
- 点击 Network(网络)-> Interfaces(接口),查看WAN6的MAC地址并复制,修改Dr.com客户端的配置。
注意,在接口名称中,不一定选择的是eth0.2,而是选择与WAN6对应的接口名称,有可能是eth1,下图提示有误
注意,在接口名称中,不一定选择的是eth0.2,而是选择与WAN6对应的接口名称,有可能是eth1,下图提示有误
注意,在接口名称中,不一定选择的是eth0.2,而是选择与WAN6对应的接口名称,有可能是eth1,下图提示有误
配置完成后,重启路由器,并请耐心等待若干分钟(3分钟内),查看WAN的PPPoE
是否拨号成功。如果Uptime、RX、TX均有数据,则说明路由器已经可以上网了。
如果发现路由器一直不能上网,则说明:
- wan中,学号密码输入错误(可能性30%);
- drcom插件中,学号密码输入错误(可能性30%);
- 路由器的wan没有与校园网端口连接(可能性20%);
- 网线断了,或者路由器坏了(可能性15%);
- 压根没开通校园网(可能性4.9%);
- 端口被学校网络中心拉黑了(极少出现0.1%)。
步骤六:配置防检测
User-Agent字段中包含了操作系统版本信息,而HTTP协议没有对这些信息加密,因此可以直接从这里判断数据包是发自于PC设备还是移动设备。根据这个原理,可以猜测到,可能是由于移动设备发送的数据包被检测到,才导致了被强制断网的情况发生。
所以,解决的办法就是统一所有设备的User-Agent,模拟成只有一台设备在上网的情况
这里推荐使用xmurp-ua
插件,作者已经开源,项目地址:https://github.com/CHN-beta/xmurp-ua
安装现成xmurp-ua插件
请打开路由器后台,查看路由器和openwrt的具体信息,以便确定我们要安装哪个版本的更改UA插件。
以下是几种常见的CPU架构对应的更改UA插件的下载链接:
CPU的架构 | openwrt的版本 | 内核版本号码 | 下载链接地址 |
---|---|---|---|
ar71xx_tiny | OpenWrt-18.06.0 | 4.14.54-31 | ar71xx_tiny_ua_4.14.54-31_mips_24kc.ipk |
ramips_mt76x8 | OpenWrt-18.06.0 | 4.14.54-31 | mt76x8_ua_4.14.54-31_mipsel_24kc.ipk |
ramips_mt7620 | OpenWrt-18.06.0 | 4.14.54-31 | mt7620_ua_4.14.54-31_mipsel_24kc.ipk |
ramips_mt7621 | OpenWrt-18.06.0 | 4.14.54-31 | mt7621_ua_4.14.54-31_mipsel_24kc.ipk |
- | - | - | - |
ar71xx_tiny | OpenWrt-18.06.1 | 4.14.63-31 | ar71xx_tiny_ua_4.14.63-31_mips_24kc.ipk |
ramips_mt76x8 | OpenWrt-18.06.1 | 4.14.63-31 | mt76x8_ua_4.14.63-31_mipsel_24kc.ipk |
ramips_mt7620 | OpenWrt-18.06.1 | 4.14.63-31 | mt7620_ua_4.14.63-31_mipsel_24kc.ipk |
ramips_mt7621 | OpenWrt-18.06.1 | 4.14.63-31 | mt7621_ua_4.14.63-31_mipsel_24kc.ipk |
- | - | - | - |
ar71xx_tiny | OpenWrt-18.06.2 | 4.14.95-31 | ar71xx_tiny_ua_4.14.95-31_mips_24kc.ipk |
ramips_mt76x8 | OpenWrt-18.06.2 | 4.14.95-31 | mt76x8_ua_4.14.95-31_mipsel_24kc.ipk |
ramips_mt7620 | OpenWrt-18.06.2 | 4.14.95-31 | mt7620_ua_4.14.95-31_mipsel_24kc.ipk |
ramips_mt7621 | OpenWrt-18.06.2 | 4.14.95-31 | mt7621_ua_4.14.95-31_mipsel_24kc.ipk |
- | - | - | - |
ar71xx_tiny | OpenWrt-18.06.3 | 4.14.128-31 | ar71xx_tiny_ua_4.14.128-31_mips_24kc.ipk |
ramips_mt76x8 | OpenWrt-18.06.3 | 4.14.128-31 | mt76x8_ua_4.14.128-31_mipsel_24kc.ipk |
ramips_mt7620 | OpenWrt-18.06.3 | 4.14.128-31 | mt7620_ua_4.14.128-31_mipsel_24kc.ipk |
ramips_mt7621 | OpenWrt-18.06.3 | 4.14.128-31 | mt7621_ua_4.14.128-31_mipsel_24kc.ipk |
- | - | - | - |
ar71xx_tiny | OpenWrt-18.06.4 | 4.14.131-31 | ar71xx_tiny_ua_4.14.131-31_mips_24kc.ipk |
ramips_mt76x8 | OpenWrt-18.06.4 | 4.14.131-31 | mt76x8_ua_4.14.131-31_mipsel_24kc.ipk |
ramips_mt7620 | OpenWrt-18.06.4 | 4.14.131-31 | mt7620_ua_4.14.131-31_mipsel_24kc.ipk |
ramips_mt7621 | OpenWrt-18.06.4 | 4.14.131-31 | mt7621_ua_4.14.131-31_mipsel_24kc.ipk |
- | - | - | - |
ramips_mt7621 | OpenWrt-R9.10.1 | 4.14.146-32 | mt7621_ua_4.14.146-32_mipsel_24kc.ipk |
- | - | - | - |
ramips_mt7621 | OpenWrt-R20.9.15 | 5.4.69-34 | mt7621_ua_5.4.69-34_mipsel_24kc.ipk |
接下来,需要安装好xmurp-ua插件
并正确配置。将下载的xmurp-ua插件
用WinSCP
传到路由器/tmp
文件夹下(WinSCP的使用方式上面已经阐述过)。
打开并登录putty,进行安装xmurp-ua
插件的安装,请键入以下命令进行安装:
cd /tmp
opkg install 改成对应的xmurp-ua文件名.ipk
同时,安装压缩内存插件 (务必确保路由器此时已经联网成功):
opkg update
opkg install zram-swap
接着,检测这两个插件是否均已安装成功:
opkg list-installed | grep zram-swap
opkg list-installed | grep xmurp-ua
若有显示zram-swap
和xmurp-ua
的插件版本信息,则说明安装成功,否则请重新安装。
最后,执行以下命令重启路由器。注意,必须重启路由器。在进行后续步骤之前,请先重启路由器。
reboot
自己编译xmurp-ua插件
对于使用第三方固件或非openwrt固件的,可以自行编译,前提是你有该固件的sdk
文件。
- 安装编译依赖项。
sudo apt-get update && sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk subversion mercurial ccache tar ssh
- 下载好 SDK 后,放到当前用户目录下,解压 SDK 并进入该 SDK 目录。
cd ~ && tar xvf *.tar.xz && cd openwrt-sdk*
- 下载 xmurp-ua 的源代码,并编译。
git clone https://github.com/CHN-beta/xmurp-ua.git package/xmurp-ua
make package/xmurp-ua/compile V=sc
-
如果弹出来一个菜单,按左右键选择 Exit,回车;然后选择 Save,回车;即可继续。
-
生成的
.ipk
文件位于sdk
目录下的bin
目录中。 -
回到上一步,按照上一步的方式安装插件。
验证防检测效果
使用电脑浏览器打开http://www.user-agent.cn/ ,查看UA结果是否为XMURP/1.0
,而不是windows
或者linux
或者macOS
。
至此,所有步骤均已配置完毕,可以发现正常联网并且多台设备同时连接不会掉线。
再次声明,本教程仅限于技术交流,如您已成功安装,请在 24 小时内重置路由器至原出产状态。
疑惑解答
问题1:安装了xmurp-ua
插件后,部分网页打不开,WeGame 和腾讯游戏下载器无法下载,“校友邦”无法登陆?
回答1:更改ua总是有副作用的,由于部分http网页和应用程序无法识别ua,导致出错。对于这种情况,只能设置例外,放行该设备,也就是说不会修改该设备发送的数据的ua。在路由器防火墙中添加以下规则:
# 01:23:45:67:89:AB为该设备的mac地址
iptables -t mangle -A PREROUTING -p tcp --dport 80 -m mac --mac-source 01:23:45:67:89:AB -j MARK --set-xmark 0x100/0x100
问题2:无法安装xmurp-ua
插件?
回答2:教程提供的现成xmurp-ua
插件只能用于openwrt
官方固件,如果是第三方魔改的固件或lede固件,请自行编译xmurp-ua
插件。
问题3:确认已经安装了xmurp-ua
插件,但是在微信检查到ua没有更改,在其他地方却检查到ua更改了?
回答3:不用担心。微信使用X5内核浏览器,会对所有http请求进行代理,故数据包被发送到路由器之前已经被代理了,不走80端口,所以不进行更改。默认只对80端口的http数据进行修改。
问题4:确认已经安装了xmurp-ua
插件,但是ua却没有更改,插件无效?
回答4:关闭nat加速或者software flow offloading。以openwrt系统为例:Network → firewall → General Settings → 取消勾选Software flow offloading
问题5:教程中提供的drcom插件
是否适用于其他学校?
回答5:仅限于gdut使用,其他学校需要找到对应的drcom插件
。
补充
完整版请点击这里打开GitHub项目地址
项目持续更新,欢迎您star本项目