免责声明:

  1. 在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖、故障、数据丢失等情况,概不负责;
  2. 该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任由您自行承担;
  3. 部分学校明令禁止使用路由器上网,相关文件请点击广东工业大学校园网责任书厦门大学校园网责任书查看。本教程仅用于交流使用,安装路由器的行为完全是您个人意志所决定的,如您已成功安装,请在 24 小时内重置路由器至原出产状态;
  4. 请按照学校推荐的方式连接到互联网,如因个人问题受到相关校规追责,由您自行承担。

前言

本教程教您如何在Drcom下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)

本教程适合使用Drcom进行拨号上网的用户,同时,要求您的路由器支持刷入第三方系统,如openwrt。由于是针对新手的教程,所以叙述部分可能会比较冗杂,您可自行跳到不同的章节。

本教程以极路由1S HC5661A为例,不同型号路由器所对应的教程略有不同,请您注意。

本教程非原创,在以下开发者的基础上进行改进:

GJXSNickHopps陈浩南

准备工作

  • 一款支持刷入第三方系统(openwrt)的路由器
  • 该路由器已联网并获得开发者(root)权限
  • 一根网线
  • 下载软件WinSCP
  • 下载软件putty,32位操作系统请下载putty32,64位系统请下载putty64

步骤一:获取路由器root权限

极路由1S HC5661A为例,在您购买满14天后,请先登录极路由器后台,然后依次开通、安装开发者插件

  • [x] 开通开发者模式:“云插件”>“路由器信息”>“高级设置”>“开通”
  • [x] 安装开发者插件:“云插件”>“全部插件”>“开发者模式”>”确定”

其他路由器可查看其他教程获取root权限。

步骤二:刷入不死Breed

下载Breed

Breed是一个路由器的Bootloader(Bootloader 意为引导加载器,即为用于加载操作系统的程序。它是一大类此类功能程序的统称。现在的 BIOS、UEFI、GRUB、RedBoot、U-Boot、CFE等都是 Bootloader),装它的目的是为了下一步刷入固件(ROM)。以极路由1S HC5661A为例,不同型号下载不同的Breed,请务必对号入座,下载breed-mt7628-hiwifi-hc5661a.bin

上传到指定目录

使用WinSCP登入你的路由器后台,其中:

主机名:你的后台管理地址(比如192.168.1或者192.168.1.199)

账号:root

密码 :你的后台管理密码

端口:1022或者22(自行测试)

模式:SCP

登陆成功后进入/tmp目录,将刚才下载的breed-mt7628-hiwifi-hc5661a.bin上传到这个目录

刷入Breed

使用putty64登入你的路由器后台,主机名、账号、密码、端口均与上述相同,登入成功后键入以下命令

mtd -r write /tmp/breed-mt7628-hiwifi-hc5661a.bin u-boot

显示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固件

本小节的步骤请严格按照先后顺序操作。

  1. 用网线让路由器的LAN口与电脑的网口相连接;
  2. PC设置为自动获取IP(一般默认自动获取IP);
  3. 路由器断电(就是拔插头);
  4. 首先按住reset不放!,确保没有松开reset键后,然后,插入路由器电源;
  5. 保持按住reset 3-4秒左右,路由器灯开始一闪一闪的时候,松开reset;
  6. PC网卡获取到192.168.1.x的地址 (如未获取到手工设置),一般是192.168.1.1 ;
  7. 浏览器访问 192.168.1.1,接着你就会看到一个uboot控制台的界面。

为了保险起见,首先进行固件备份,以备不时之需。严重强烈建议极路由用户刷Breed后,第一次进入后台就备份一次,这样以后想要重新刷回官方系统时原有功能不会受到影响,仍然能够访问云平台。

现在正是开始刷入OpenWrt固件,依次点击固件更新→勾选固件→点击选择文件,选择我们刚刚下载的openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin,然后耐心等待固件刷入完成。

安装完成后会自动重启,这时可以不断刷新浏览器,直到管理界面显示出来,如果没有显示,建议稍后使用192.168.1.1访问管理页面。

账号:root

密码:默认为admin

步骤四:安装Dr.com插件

这里以广工(广东工业大学)校园网为例,其他学校请自行获得相应的Dr.com插件,如果您愿意折腾的话,可以点击这里自行编译合适自己的学校的Dr.com插件(需要较强的编程基础,建议还是找现成的)

以下是广工(广东工业大学)校园网各个路由器相应版本Dr.com插件下载

路由器版本 下载链接
GDUT-极路由HC5661、HC5761和HC5861 下载链接
GDUT-极路由HC5661A和HC5861B 下载链接
GDUT-极路由HC5962 下载链接
GDUT-极路由HC6361 下载链接
GDUT-斐讯K2T 下载链接
GDUT-斐讯K2P 下载链接
GDUT-斐讯K1-PSG1208、K2-PSG1218和K2G 下载链接
GDUT-ramips-rt305x 下载链接

说明:由于路由器版本太多,若您在上面没有找到对应的路由器型号,建议选择自己编译(难度很低)

将下载的Dr.com插件WinSCP传到路由器/tmp文件夹下(WinSCP的使用方式上面已经阐述过)。

打开并登录putty,进行安装Dr.com,请键入以下命令:

cd /tmp
opkg install gdut-drcom_6.0-4_mipsel_24kc.ipk

至此,Dr.com插件安装完毕。

对于没有上述对应型号路由器的广工(广东工业大学)同学,可进行以下步骤进行编译生成自己的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,不建议centos),键入以下命令:

#本教程在 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 #在home目录下完成我们的工作,最好不要在root下
cd /home #在线下载我们的openwrt-sdk,这一步网络比较慢,下载可能比较久
#如果你想加快速度,则请从其他电脑*fan*qiang*下载完成后传输到这个位置(/home)
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,假设这个压缩包已经放在/home目录下了
tar xvJf openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz #进入该文件夹
cd openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64 #生成key-build文件,这里不解释,有兴趣的可以自己去搜搜
./staging_dir/host/bin/usign -G -s ./key-build -p ./key-build.pub -c "Local build key" #再进入package文件夹,并下载drcom ODP文件夹
cd package && git clone https://github.com/GJXS1980/ODP.git #返回上层目录,也就是为了回到openwrt-sdk这个目录
cd .. #开始编译
make package/ODP/compile #编译到最后的时候,会弹出一个框
#首先,通过移动键盘左右键,移到SAVE,然后按下回车键,接着再按下回车键选择OK,再次按下回车键选择Exit
#最后,通过移动键盘左右键,移到Exit,按下回车键确认。
#等待几秒钟编译完成
#最终生成的yyy.ipk文件的位置为我们所下载的openwrt-sdk目录下的bin/packages/xxx/base/yyy.ipk

4.最终生成的yyy.ipk文件的位置为我们所下载的openwrt-sdk目录下的bin/packages/xxx/base/yyy.ipk,到这里你也有一个适合自己路由器的drcom插件了,回到步骤四安装Dr.com客户端

步骤五:配置上网

1.点击 Network(网络)-> Interfaces(接口),点击“WAN”对应的 Edit(编辑) 按钮。

  • Protocol(通信协议):改选为PPPoE,然后点击出现的 Switch Protocol(切换协议)按钮。
  • PAP/CHAP username(PAP/CHAP 用户名):学号
  • PAP/CHAP password(PAP/CHAP 密码):校园网密码

点击 Save & Apply(保存并应用)。这时,路由器本身和有线网已经可以上网了。

2.点击 Network -> Wireless(无线)。如果提示 Disabled(已禁用)就点击 Enable(启用)。可能只有一个 2.4G 的,也可能有一个 2.4G 的、一个 5G 的。点 2.4G 的 Edit(编辑) 按钮。

  • ESSID:填 WiFi 的名字。

3.点击 Wireless Security(无线安全)

  • Encryption(加密):改选为WPA2-PSK

  • Key(密码):填 WiFi 密码

  • 点击 Save & Apply(保存并应用)

这时,WiFi 就可以正常联网啦。

4.配置dr.com客户端,这里以广工(广东工业大学)为例,进行如下配置:

  • 点击 Network(网络)-> Interfaces(接口),查看LAN的MAC地址并复制

修改Dr.com客户端的配置

配置完成后,重启路由器,耐心等待若干分钟(15分钟内),查看是否拨号成功。

步骤六:配置防代理检测

同步时间

NTP 就是用来同步两台电脑上的时钟的协议。接下来先启用 OpenWrt 自带的 NTP 服务器,然后将局域网内所有时钟校正的请求都发给路由器上的 NTP 服务器(也就是说,无视局域网内的电脑原本想要和哪台服务器同步时间,而强制将路由器上的时钟作为标准),这样局域网内所有的电脑上的时间都会变得一致。

点击 System(系统)->System(系统),只需要在管理页面中修改几个设置就可以了。

  • 配置 NTP 服务。点击 System -> System。

    • 勾选 Enable NTP client(启用 NTP 客户端)和 Provide NTP server(作为 NTP 服务器提供服务)。

    • NTP server candidates(候选 NTP 服务器)四个框框分别填写

      cn.pool.ntp.orgpool.ntp.orgtime.apple.com

点击 Save & Apply 按钮。

  • 配置防火墙转发。点击 Network -> Firewall(防火墙),然后点击 Custom Rules 标签,在大框框里另起一行,添加下面的代码:

    iptables -t nat -N ntp_force_local
    iptables -t nat -I PREROUTING -p udp --dport 123 -j ntp_force_local
    iptables -t nat -A ntp_force_local -d 0.0.0.0/8 -j RETURN
    iptables -t nat -A ntp_force_local -d 127.0.0.0/8 -j RETURN
    iptables -t nat -A ntp_force_local -d 192.168.0.0/16 -j RETURN
    iptables -t nat -A ntp_force_local -s 192.168.0.0/16 -j DNAT --to-destination 192.168.1.1

    第六行最后的192.168.1.1需要修改为你的路由器的管理页面地址。例如,你的管理页面地址是192.168.10.1,那么这一行代码需要修改为:

    iptables -t nat -A ntp_force_local -s 192.168.0.0/16 -j DNAT --to-destination 192.168.10.1

    然后点击 Restart Firewall(重启防火墙)。

修改 HTTP 头的 UA标志

UA 中包含了操作系统版本等信息,而 HTTP 协议没有对这些信息加密,因此别人可以从这里看到这个数据包发自 Windows 电脑还是安卓手机等(所以根据这个原理,能够实现检测到超过1台设备立即强制断网的效果)。接下来把所有 HTTP 头中的 UA 都改得一样(伪装成只有一台设备,所以就不会被强制断网了)。

接下来,需要安装好 Privoxy 并正确配置,然后将所有 HTTP 流量转发给 Privoxy 代理,并在 Privoxy 中替换 UA。

  • 安装 Privoxy。进入路由器管理页面,点击 System(系统) -> Software(软件包)。

    • 点击 Update lists(刷新列表)按钮,等待几分钟。如果提示好几条“Signature check passed”那么这一步执行成功;如果卡死了,几分钟后再进入这个页面,看到了很长很长的软件列表,那也是成功了。
    • 在 Filter(过滤器)中填写luci-app-privoxy,点击 Find package(查找软件包)按钮。点击下方“luci-app-privoxy”对应的 Install(安装)按钮。如果提示好几条“Configuring xxxx”,那么就是执行成功了;如果卡死后再进入管理页面,看到有一个 Services(服务)菜单,菜单里有 Privoxy WEB proxy(Privoxy 网络代理),那也是成功了。

  • 配置 Privoxy 设置。点击 Services -> Privoxy WEB proxy。

    • Files and Directories(文件和目录):Action Files 删除到只剩一个框,填入match-all.action。Filter files 和 Trust files 均留空。
    • Access Control(访问控制):Listen addresses 填写0.0.0.0:8118,Permit access 填写192.168.0.0/16。Enable action file editor 勾选。
    • Miscellaneous(杂项):Accept intercepted requests 勾选。
    • Logging(日志):全部取消勾选。

点击 Save & Apply。

  • 配置防火墙转发。点击 Network -> Firewall(防火墙),然后点击 Custom Rules 标签,在大框框里另起一行(注意,之前已经添加了6行代码,不要把刚刚添加的几行代码给删除了),添加下面的代码:

    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 -m mark --mark 1/1 -j RETURN
    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

点击 Restart Firewall(重启防火墙)按钮。

  • 使用 Privoxy 替换 UA。打开http://config.privoxy.org/edit-actions-list?f=0,如果打不开,请重启路由器多测试几遍。点击 Edit 按钮。在Action 那一列中,hide-user-agent 改选为 Enable(绿色),在右侧 User Agent string to send 框中填写以下内容:

    Privoxy 3.0.26

其它全部选择为 No Change (紫色)。最后点击 Submit 按钮,再次重启路由器

  • 验证防检测效果。

    手机连接到该路由器的WIFI,使用手机(注意关闭为屁嗯后再测试)在浏览器打开http://www.atool.org/useragent.php,查看结果是否为Windows NT 6.3,而不是android或者iphone。

    注意关闭为屁嗯后再测试!注意关闭为屁嗯后再测试!注意关闭为屁嗯后再测试!

设置定时重启

由于使用了Privoxy代理,会使得所有的http流量均被转发到Privoxy,时间一旧,网络会变成异常慢。为了保证良好的网络,可以每天凌晨让路由器自动重启一遍以恢复路由器系统响应速度。

打开以下页面,键入以下代码(具体时间可自行更改):

40 2 * * * sleep 5 && touch /etc/banner && reboot   //每天凌晨2点40分路由器自动重启
40 4 * * * sleep 5 && touch /etc/banner && reboot //每天凌晨4点40分路由器自动重启
40 6 * * * sleep 5 && touch /etc/banner && reboot //每天凌晨6点40分路由器自动重启

提交后,然后打开以下页面,重启cron服务

至此,所有步骤均已配置完毕,可以安心上网了。

补充

完整版请点击这里打开GitHub项目地址

项目持续更新,欢迎您star本项目

License

The MIT License (MIT)

教你如何在Drcom下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)的更多相关文章

  1. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

  2. MIPS(极路由1s[mt7620a])平台OpenWrt路由器系统内的Go应用程序开发

    起因,由于coolpy5核心转换到go语言开发,所以目前超人正在进行相关的技术攻关,在程序编写方面一切都相对顺利.由于coolpy5是一个真正的商业级性能的系统也考滤到coolpy之前的版本已经确定的 ...

  3. 手把手教你如何在Windows下allure与jenkins的集成生成让你一见钟情的测试报告 - 03(非常详细,非常实用)

    简介 好了,国庆假期结束,开始搬砖.为什么要把allure和jenkins集成了?原因是集成以后,我们就可以直接查看allure的结果,不需要重复输入命令.重复使用浏览器打开文件来查看allure的结 ...

  4. 教你如何在linux下查看服务是否已经启动或者关闭

    1. # ps aux | grep 服务名称(ps 的参数是可以颠倒使用没问题) 2. # netstat -tunple | grep 服务端口 3.bind() 80 in using 代表的含 ...

  5. 手把手教你如何在window下将jenkins+allure集成生成的测试报告通过jenkins配置邮箱自动发送-04(非常详细,非常实用)

    简介 上一篇生成测试报告,小伙伴们和童鞋们就又问道,测试报告已经生成了,怎么发送给相关的负责人了?小伙伴们和童鞋们不要着急,听宏哥慢慢给你道来,心急吃不了热豆腐哈.今天这篇文章宏哥就给小伙伴和童鞋们来 ...

  6. 如何在Eclipse下安装SVN插件——subclipse

    如何在Eclipse下安装SVN插件——subclipse | 浏览:2799 | 更新:2014-09-20 22:39 1 2 3 4 5 6 分步阅读 版本控制是开发人员必不可少的工具,而SVN ...

  7. 教你如何在Kali Linux 环境下设置蜜罐?

    导读 Pentbox是一个包含了许多可以使渗透测试工作变得简单流程化的工具的安全套件.它是用Ruby编写并且面向GNU/Linux,同时也支持Windows.MacOS和其它任何安装有Ruby的系统. ...

  8. PHP字符串中的变量解析(+教你如何在PHP字符串中加入变量)

    定义字符串的时候,用单引号或者双引号都是可以的.我个人习惯是用双引号.在输出字符串的时候,若字符串中含有字符串变量,使用单引号和双引号则是有区别的.如下面程序: 1 2 3 4 5 6 7 8 < ...

  9. 教您如何在Word的mathtype加载项中修改章节号

    在MathType数学公式编辑器中,公式编号共有五部分内容:分别是章编号(Chapter Number).节编号(Section Number).公式编号(Equation Number).括号(En ...

随机推荐

  1. [Abp 源码分析]零、文章目录

    0.系列文章目录 一.Abp 框架启动流程分析 二.模块系统 三.依赖注入 四.模块配置 五.系统设置 六.工作单元的实现 七.仓储与 Entity Framework Core 八.缓存管理 九.事 ...

  2. 【机器学习】--FP-groupth算法从初始到应用

    一.前述 二.构建FP_groupth数流程 1.扫描事务数据库D 一次.收集频繁项的集合F 和它们的支持度.对F 按支持度降序排序,结果为频繁项表L. 2.创建FP 树的根节点,以“null”标记它 ...

  3. NotificationSetUtilDemo【判断APP通知栏权限是否开启,以及如何跳转到应用程序设置界面】

    前言 当APP有推送功能时,需要判断当前app在手机中是否开启了允许消息推送,否则即使添加了推送代码仍然收不到通知. 效果图 oppo上的效果: 使用步骤 一.项目组织结构图 注意事项: 1.  导入 ...

  4. InheritableThreadLocal类原理简介使用 父子线程传递数据详解 多线程中篇(十八)

      上一篇文章中对ThreadLocal进行了详尽的介绍,另外还有一个类: InheritableThreadLocal 他是ThreadLocal的子类,那么这个类又有什么作用呢?   测试代码 p ...

  5. CentOS 7.4 下 如何部署 AspNetCore 结合 consul

    上篇我们讲到consul的概念,以及在WIN下如何使用:http://www.cnblogs.com/szlblog/p/9162557.html 步骤如下: 1.安装虚拟机VM 2.下载安装 Cen ...

  6. C# 默认访问权限

    声明类.方法.字段.属性时不加访问权限修饰符时的访问权限是什么呢?1. 声明命名空间.类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集. 2. 声明类成员(域.属性 ...

  7. 基础设施DevOps演进之路

    Related Links:Zuul  https://github.com/Netflix/zuulCAT     https://github.com/dianping/cat Apollo  h ...

  8. C#之使类型参数--泛型

    1.泛型是什么 泛型的就是“通用类型”,它可以代替任何的数据类型,使类型参数化,从而达到只实现一个方法就可以操作多种数据类型的目的. 2.为什么使用泛型 举一个比较两个数大小的例子: 以上例子实现in ...

  9. .NET Framework框架介绍

    1.内容 .net framework c#和.net关系 掌握C#中命名空间2..net 就是微软提供的一个开发平台 版本: vs2008 3.5 vs2010 4.0 vs2012 2013 20 ...

  10. java类的继承(基础)

    ---恢复内容开始--- 这篇随笔和大家讲讲java中类的继承是什么?希望对你们有所帮助. 目录 一.java继承是什么? 二.为什么使用java继承 三.java继承的实现 1.1  java继承的 ...