Abstract
本教程是基于OpenWrt固件
和Drcom校园网客户端
进行绕过检测移动设备
到达反防代理设备
的一种思路及实现方法,教程内容主要由三部分组成:刷OpenWrt固件,安装Dr.com插件和配置Privoxy防代理
.
教程还介绍了如何用OpenWrt对Dr.com进行编译
及客户端UA的获取方法
,对于动手能力强的小伙伴,可以自己尝试折腾一下;对于其他小伙伴,我都提供了已经编译好的ipk软件包和UA配置文件
,主要用WinSCP
对路由器后台相应文件进行操作就行了.
准备工作
应用环境
- 所有支持OpenWrt固件的路由器
- 路由器联网并安装开发者插件
- 熟悉WinSCP的使用
- 熟悉putty登录路由器后台的操作
- 熟悉Linux基本命令行的操作
刷OpenWrt
以极路由1S HC5661A为例
1.刷解锁版不死U-Root
进固件作者网站查找对应u-boot,下载自己路由器对应版本的固件, 以极路由1S HC5661A
为例,如下图:
通过putty
进入路由器后台,并下载安装uboot:
#连上路由器后台,进入tmp目录下
cd /tmp
#下载对应版本的U-Root
wget http://rssn.cn/roms/uboot/HC5661A-uboot.bin
#安装U-Root
mtd write HC5661A-uboot.bin u-boot
# 如果失败,可以试试下面的命令
mtd write HC5661A-uboot.bin firmware
2.刷OpenWrt固件
如果你是极路由1S
或者是斐讯K2T
,点开下面折叠内容
可以让你提前结束战斗,其他小伙伴继续往下面奋斗吧:
New World
(此部分为折叠内容,极路由1SHC5661A或者是斐讯K2T
用户进入)
1.下载固件
(1)极路由HC5661A
下载链接:https://pan.baidu.com/s/1j70FVPeUYKBE7lvvNSVfEA
提取密码:GJXS
(2)斐讯K2T
下载链接:https://pan.baidu.com/s/1ZiMpEWsqWdRSenJywoOSaQ
提取密码:GJXS
2.通过Breed刷入下载的固件
首先,请确保你已经刷入了不死uboot,进入方法:
(1)拔掉电源,只留一根和电脑连接的网线(lan口)
(2)拿一个东西来捅住复位键,一边上电,等待路由器三个灯闪成一个灯的时候就松开(如果一直都是两个灯,那只能用命令行安装固件,直接看第五步)
(3)电脑浏览器打开192.168.1.1,就可以进入Breed Web
(4)形成好的习惯,刷之前把所有的东西备份一下,然后到固件更新那里选择刚刚下载的固件刷进去,(到这里结束,直接看第3步).
(5)通过WinSCP把固件上传到/tmp目录下
(6)用putty登录路由器后台(下面以极路由1S为例,K2T的把下面命令行相应的固件名改一下就行了):
cd /tmp/
sysupgrade -F -n HC5661A.bin
(7)等待安装完固件(到这里结束)
3.修改校园网账号
(1)登录OpenWrt后台:
地址:192.168.1.1
密码:admin
(2)修改校园网账号和密码,MAC地址复制粘贴lan的MAC地址,然后任意修改后两位值
(3)重启生效
(1)查看一下路由器CPU的型号
,以确定我们要刷什么版本的固件
cat /proc/cpuinfo
(2) 进入Table of Hardware: Firmware downloads查找cpu和型号对应的固件
,并下载.
以极路由1S HC5661A
为例,如下图:
可以直接点击图中红框
的网址直接下载
,然后再通过WinSCP
上传到路由器的/tmp目录下
,下面操作是直接下载到路由器的/tmp目录下(要连网):
#下载固件
cd /tmp
wget http://downloads.openwrt.org/releases/18.06.1/targets/ramips/mt76x8/openwrt-18.06.1-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin
#刷机
sysupgrade -F -n openwrt-18.06.1-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin
等待路由器重启
,到这里OpenWrt固件就安装成功了.
温馨提示:
1.刷机的时候最好用网线直连.
2.等待几分钟,当路由器自动重启说明成功(期间不要断开电源,不然就变砖了)
安装OpenWrt插件
登录路由器后台,网址:
192.168.1.1 起始密码:
admin
1.安装gdut-drcom客户端
各个路由器相应版本Dr.com插件下载
路由器版本 | 下载链接 | 密码 |
---|---|---|
极路由HC5661、HC5761和HC5861 | 下载链接 | GJXS |
极路由HC5661A和HC5861B | 下载链接 | GJXS |
极路由HC5962 | 下载链接 | GJXS |
极路由HC6361 | 下载链接 | GJXS |
斐讯K2T | 下载链接 | GJXS |
斐讯K2P | 下载链接 | GJXS |
斐讯K1-PSG1208、K2-PSG1218和K2G | 下载链接 | GJXS |
说明:
由于路由器版本太多,可以选择自己编译,或者在评论区留言,提供路由器的型号,我看到会帮你们编译。
将下载是Drcom插件
用WinSCP
传到路由器tmp
文件夹下安装:
cd /tmp
#安装gdut-drcom客户端
opkg install gdut-drcom_6.0-4_mipsel_24kc.ipk
到这里,gdut-drcom客户端已经安装完了,直接到第2步配置网络
,如果上面没有提供到gdut-drcom客户端的小伙伴继续看选做部分
选做:OpenWrt SDK编译gdut-drcom客户端
(1)下载OpenWrt SDK
首先进入OpenWrt 18.06
根据自己路由器的路由器型号
进入相应的网站,以极路由HC5661A为例
,进入ramips/mt76x8
找到openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz
并下载
蓝色框表示SDK支持的路由器型号,红色框为SDK文件
2.编译drcom插件教程:
#解压文件夹
tar xjf 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.tar.xz/
#进入package下载软件包
cd package && git clone https://github.com/GJXS1980/ODP.git
#编译
cd .. && make package/ODP/compile
最后编译完的软件包在/bin/packages/xxxx/base/
目录下,到这里你也有一个适合自己路由器的drcom插件了,回到步骤1安装gdut-drcom客户端.
2.配置网络
(1)先查看lan的MAC地址
并复制lan的MAC地址
(2)修改Dr.com客户端的配置:
说明:311xxxxxxx为自己的学号,MAC地址为刚刚复制的,然后随便改MAC地址后两位数字
重启
,完成配置,应该可以拨号成功.
配置privoxy代理
1.安装privoxy及相关软件
先进入软件选项,如下图:
下载图中红框
里面的三个软件
,如下图:
2.配置privoxy
进入privoxy选项,开启privoxy网络代理,如下图:
开启Accept intercepted requests选项,如下图:
3.获取UserAgent
由于我已经整合了大部分的UA,基本可以满足要求,可以直接跳到第4步
获取UA有两个常用的方法:
方法一:通过网站直接查UA
(1) 点击UA查询网站:useragent
(2) 在AppleWebKit前面的就是我们想要的UA,如图所示,Mozilla/5.0 (X11; Linux x86_64)即我们要用到的UA
方法二:使用fiddler对手机上的程序进行抓包
由于网上很多教程,我这里就不展开讨论
推荐教程:
使用fiddler对手机上的程序进行抓包
使用fiddler实现手机抓包
4.修改UserAgent
通过WinSCP
进入路由器后台,打开etc/privoxy/default.action
文件,在文件最后面添加下面折叠部分的内容:
view code
(此部分为折叠内容,点击即可打开)
#hide-user-agent
{+client-header-filter{android}}
/
{+client-header-filter{android1}}
/
{+client-header-filter{android2}}
/
{+client-header-filter{android3}}
/
{+client-header-filter{android4}}
/
{+client-header-filter{android5}}
/
{+client-header-filter{android6}}
/
{+client-header-filter{iPhone}}
/
{+client-header-filter{MACOS}}
/
{+client-header-filter{iPod}}
/
{+client-header-filter{iPad}}
/
{+client-header-filter{phone}}
/
{+client-header-filter{PHONE}}
/
{+client-header-filter{OS}}
/
{+client-header-filter{iPhone1}}
/
{+client-header-filter{iPhone2}}
/
{+client-header-filter{iPhone3}}
/
{+client-header-filter{Linux}}
/
{+client-header-filter{wv}}
/
{+client-header-filter{zh}}
/
{+client-header-filter{wifi}}
/
{+client-header-filter{WIFI}}
/
{+client-header-filter{PandoraBox}}
/
{+client-header-filter{OpenWrt}}
/
{+client-header-filter{mi51}}
/
{+client-header-filter{mi52}}
/
{+client-header-filter{mi61}}
/
{+client-header-filter{mi62}}
/
{+client-header-filter{mip1}}
/
{+client-header-filter{mip2}}
/
{+client-header-filter{mip3}}
/
{+client-header-filter{HUAWEI}}
/
{+client-header-filter{Honor}}
/
{+client-header-filter{TBS}}
/
{+client-header-filter{MI}}
/
{+client-header-filter{ONEPLUS}}
/
{+client-header-filter{vivo}}
/
{+client-header-filter{OPPO}}
/
{+client-header-filter{Redmi}}
/
{+client-header-filter{XiaoMi}}
/
{+client-header-filter{Xiaodu}}
/
{+client-header-filter{Xiaodu1}}
/
{+client-header-filter{AudioSpeaker}}
/
{+client-header-filter{TYPE}}
/
{+client-header-filter{mobile}}
/
{+client-header-filter{Mobile}}
/
{+client-header-filter{MicroMessenger}}
/
{+client-header-filter{MQQBrowser}}
/
{+client-header-filter{compatible}}
/
{+client-header-filter{MSIE}}
/
{+client-header-filter{Dalvik}}
/
{+client-header-filter{Safari}}
/
{+client-header-filter{IEMobile}}
/
{+client-header-filter{WAP}}
/
{+client-header-filter{MiuiBrowser}}
/
{+client-header-filter{BlackBerry}}
/
{+client-header-filter{Easemob}}
/
{+client-header-filter{Proxy}}
/
{+client-header-filter{app}}
/
{+client-header-filter{app1}}
/
{+client-header-filter{app2}}
/
{+client-header-filter{app3}}
/
+hide-user-agent{Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0}
etc/privoxy/default.filter
文件,在文件最后面添加下面折叠部分的内容:
view code
(此部分为折叠内容,点击即可打开)
####################### Android System #################
CLIENT-HEADER-FILTER: android Replace all "Android" with ""
s@\b(Android)\b@@ig
CLIENT-HEADER-FILTER: android1 Replace all "U" with ""
s@\b(U|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: android2 Replace all "Android 2.2.1" with ""
s@\b(Android 2.2.1|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: android3 Replace all "Android 8.1.0" with ""
s@\b(Android 8.1.0|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: android4 Replace all "Android 8.1" with ""
s@\b(Android 8.1|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: android5 Replace all "Android 8.0.0" with ""
s@\b(Android 8.0.0|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: android6 Replace all "Nexus One" with ""
s@\b(Nexus One|iP\w+)\b@@ig
###########################################################
####################### IOS System #################
CLIENT-HEADER-FILTER: iPhone Replace all "iPhone" with ""
s@\b(iPhone)\b@@ig
CLIENT-HEADER-FILTER: MACOS Replace all "MAC OS" with ""
s@\b(MAC OS)\b@@ig
CLIENT-HEADER-FILTER: iPod Replace all "iPod" with ""
s@\b(iPod)\b@@ig
CLIENT-HEADER-FILTER: iPad Replace all "iPad" with ""
s@\b(iPad)\b@@ig
CLIENT-HEADER-FILTER: phone Replace all "phone" with ""
s@\b(phone)\b@@ig
CLIENT-HEADER-FILTER: PHONE Replace all "PHONE" with ""
s@\b(PHONE)\b@@ig
CLIENT-HEADER-FILTER: OS Replace all "OS" with ""
s@\b(OS)\b@@ig
CLIENT-HEADER-FILTER: iPhone1 Replace all "live4iphone" with ""
s@\b(live4iphone|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: iPhone2 Replace all "iOS 12.0" with ""
s@\b(iOS 12.0|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: iPhone3 Replace all "CPU iPhone OS 12_0 like Mac OS X" with ""
s@\b(CPU iPhone OS 12_0 like Mac OS X|iP\w+)\b@@ig
###########################################################
####################### Linux System #################
CLIENT-HEADER-FILTER: Linux Replace all "Linux" with "Windows"
s@\b(Linux)\b@Windows@ig
CLIENT-HEADER-FILTER: wv Replace all "wv" with ""
s@\b(wv|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: zh Replace all "zh-cn" with ""
s@\b(zh-cn|iP\w+)\b@@ig
###########################################################
####################### wifi #################
CLIENT-HEADER-FILTER: wifi Replace all "wifi" with ""
s@\b(wifi)\b@@ig
CLIENT-HEADER-FILTER: WIFI Replace all "WIFI" with ""
s@\b(WIFI)\b@@ig
CLIENT-HEADER-FILTER: PandoraBox Replace all "PandoraBox" with ""
s@\b(PandoraBox)\b@@ig
CLIENT-HEADER-FILTER: OpenWrt Replace all "OpenWrt" with ""
s@\b(OpenWrt)\b@@ig
###########################################################
####################### phone #################
CLIENT-HEADER-FILTER: mi51 Replace all "MI 5 Build/OPR1.170623.032" with ""
s@\b(MI 5 Build\/OPR1\.170623\.032|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: mi52 Replace all "MI 5 MIUI" with ""
s@\b(MI 5 MIUI|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: mi61 Replace all "MI 6 Build/OPR1.170623.027" with ""
s@\b(MI 6 Build\/OPR1\.170623\.027|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: mi62 Replace all "MI 6 MIUI/V10.0.2.0.OCACNFH" with ""
s@\b(MI 6 MIUI\/V10\.0\.2\.0\.OCACNFH|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: mip1 Replace all "MI PAD 4 Build/OPM1.171019.019" with ""
s@\b(MI PAD 4 Build\/OPM1\.171019\.019|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: mip2 Replace all "MI PAD 4 MIUI" with ""
s@\b(MI PAD 4 MIUI|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: mip3 Replace all "Xiaomi-MI PAD" with ""
s@\b(Xiaomi-MI PAD|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: HUAWEI Replace all "HUAWEI" with ""
s@\b(HUAWEI)\b@@ig
CLIENT-HEADER-FILTER: Honor Replace all "Honor" with ""
s@\b(Honor)\b@@ig
CLIENT-HEADER-FILTER: TBS Replace all "TBS" with ""
s@\b(TBS)\b@@ig
CLIENT-HEADER-FILTER: MI Replace all "MI" with ""
s@\b(MI)\b@@ig
CLIENT-HEADER-FILTER: ONEPLUS Replace all "ONEPLUS" with ""
s@\b(ONEPLUS)\b@@ig
CLIENT-HEADER-FILTER: vivo Replace all "vivo" with ""
s@\b(vivo)\b@@ig
CLIENT-HEADER-FILTER: OPPO Replace all "OPPO" with ""
s@\b(OPPO)\b@@ig
CLIENT-HEADER-FILTER: Redmi Replace all "Redmi" with ""
s@\b(Redmi)\b@@ig
CLIENT-HEADER-FILTER: XiaoMi Replace all "XiaoMi" with ""
s@\b(XiaoMi)\b@@ig
CLIENT-HEADER-FILTER: Xiaodu Replace all "Xiaodu" with ""
s@\b(Xiaodu)\b@@ig
CLIENT-HEADER-FILTER: Xiaodu1 Replace all "Xiaodu-AudioSpeaker" with ""
s@\b(Xiaodu-AudioSpeaker)\b@@ig
CLIENT-HEADER-FILTER: AudioSpeaker Replace all "AudioSpeaker" with ""
s@\b(AudioSpeaker)\b@@ig
###########################################################
####################### others #################
CLIENT-HEADER-FILTER: TYPE Replace all "NMF26X|R11s|NMF26F|1607-A01|R16NW|SM-G9500|HUAWEIBAC-AL00|BAC-AL00|HUAWEISTF-AL10|STF-AL10|KNT-UL10|NRD90M|M5 Note|HONORPRA-AL00|PRA-AL00|R16NW|SM-C9000|N2G47H|HUAWEIHWI-AL00|HWI-AL00|MMB29M|N2G47H|X9s|NJH47F|HUAWEIKNT-AL20|KNT-AL20|HONORLLD-AL10|LLD-AL10|HUAWEICOL-AL10|COL-AL10|R16NW|SM-G8850|OD103|OPPO|XIAOMI|MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE" with ""
s@\b(NMF26X|R11s|NMF26F|1607-A01|R16NW|SM-G9500|HUAWEIBAC-AL00|BAC-AL00|HUAWEISTF-AL10|STF-AL10|KNT-UL10|NRD90M|M5 Note|HONORPRA-AL00|PRA-AL00|R16NW|SM-C9000|N2G47H|HUAWEIHWI-AL00|HWI-AL00|MMB29M|N2G47H|X9s|NJH47F|HUAWEIKNT-AL20|KNT-AL20|HONORLLD-AL10|LLD-AL10|HUAWEICOL-AL10|COL-AL10|R16NW|SM-G8850|OD103|OPPO|XIAOMI|MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE)\b@@ig
###########################################################
####################### Web server #################
CLIENT-HEADER-FILTER: mobile Replace all "mobile" with ""
s@\b(mobile)\b@@ig
CLIENT-HEADER-FILTER: Mobile Replace all "Mobile" with ""
s@\b(Mobile)\b@@ig
CLIENT-HEADER-FILTER: MicroMessenger Replace all "MicroMessenger" with ""
s@\b(MicroMessenger)\b@@ig
CLIENT-HEADER-FILTER: MQQBrowser Replace all "MQQBrowser" with ""
s@\b(MQQBrowser)\b@@ig
CLIENT-HEADER-FILTER: compatible Replace all "compatible" with ""
s@\b(compatible)\b@@ig
CLIENT-HEADER-FILTER: MSIE Replace all "MSIE" with ""
s@\b(MSIE)\b@@ig
CLIENT-HEADER-FILTER: Dalvik Replace all "Dalvik" with "Mozilla"
s@\b(Dalvik)\b@Mozilla@ig
CLIENT-HEADER-FILTER: Safari Replace all "Safari" with "Chrome"
s@\b(Safari)\b@Chrome@ig
CLIENT-HEADER-FILTER: IEMobile Replace all "IEMobile" with ""
s@\b(IEMobile)\b@@ig
CLIENT-HEADER-FILTER: WAP Replace all "WAP" with ""
s@\b(WAP)\b@@ig
CLIENT-HEADER-FILTER: MiuiBrowser Replace all "MiuiBrowser" with "Chrome"
s@\b(MiuiBrowser)\b@Chrome@ig
CLIENT-HEADER-FILTER: BlackBerry Replace all "BlackBerry" with ""
s@\b(BlackBerry)\b@@ig
CLIENT-HEADER-FILTER: Easemob Replace all "Easemob-SDK" with ""
s@\b(Easemob-SDK)\b@@ig
CLIENT-HEADER-FILTER: Proxy Replace all "Proxy" with ""
s@\b(Proxy)\b@@ig
###########################################################
############## app ################
CLIENT-HEADER-FILTER: app Replace all "AMAP_Location_SDK_Android" with ""
s@\b(AMAP_Location_SDK_Android|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: app1 Replace all "qqlive4iphone" with ""
s@\b(qqlive4iphone|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: app2 Replace all "Bilibili Freedoooooom/MarkII" with ""
s@\b(Bilibili Freedoooooom\/MarkII|iP\w+)\b@@ig
CLIENT-HEADER-FILTER: app3 Replace all "AndroidSDK_27_clover_8.1.0" with ""
s@\b(AndroidSDK_27_clover_8.1.0|iP\w+)\b@@ig
5.添加每天自动重启
进入路由器网页版后台
,找到系统–>计划任务
,在框里添加下面代码:
00 6 * * * sleep 5 && touch /etc/banner && reboot
每天早上6点钟会自动重启路由器
,如果你想要其他时间重启,可以改成其他时间.
6.使环境生效
iptables -t nat -N PrivoxyUA
iptables -t nat -A PREROUTING -i br-lan -p tcp -j PrivoxyUA
iptables -t nat -A PrivoxyUA -p tcp --dport 80 -j REDIRECT --to-ports 8118
最后重启路由器
,到这里路由器的配置基本完成,可以安心搞科研了。
可能产生的问题
问题1:
* opkg_conf_load: Could not lock /var/lock/opkg.lock: Resource temporarily unavailable.
解决方法:
echo "nameserver 114.114.114.114">/tmp/resolv.conf
rm -f /var/lock/opkg.lock
opkg update
问题2:如果发现按照这个教程来,还是发现会断线
解决方法:可能是没有找全所有在连设备的UA(同一设备,不同浏览器的UA会不一样),这时候建议看看privoxy的日志,一般都有相关User-Agent显示,再把它们按照教程隐藏就好了,具体操作如下:
执行使环境生效那一步,然后在Privoxy网络代理里面的日志查看器,点击读取/刷新日志文件,就可以查看具体的日志文件,如下图:
然后找到相关的User-Agent,添加到etc/privoxy/default.action文件里面就行了.
问题3:编译mt7620版本的插件时,会缺依赖
解决方法:安装下面的依赖
sudo apt-get install gawk
sudo apt-get install libncurses5-dev
然后再重新编译。
参考链接:
[1] 使用OpenWrt路由自动修改http请求的UserAgent来躲过移动设备检测
评论区