634 |
635 | This program is free software: you can redistribute it and/or modify
636 | it under the terms of the GNU Affero General Public License as published
637 | by the Free Software Foundation, either version 3 of the License, or
638 | (at your option) any later version.
639 |
640 | This program is distributed in the hope that it will be useful,
641 | but WITHOUT ANY WARRANTY; without even the implied warranty of
642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
643 | GNU Affero General Public License for more details.
644 |
645 | You should have received a copy of the GNU Affero General Public License
646 | along with this program. If not, see .
647 |
648 | Also add information on how to contact you by electronic and paper mail.
649 |
650 | If your software can interact with users remotely through a computer
651 | network, you should also make sure that it provides a way for users to
652 | get its source. For example, if your program is a web application, its
653 | interface could display a "Source" link that leads users to an archive
654 | of the code. There are many ways you could offer source, and different
655 | solutions will be better for different programs; see section 13 for the
656 | specific requirements.
657 |
658 | You should also get your employer (if you work as a programmer) or school,
659 | if any, to sign a "copyright disclaimer" for the program, if necessary.
660 | For more information on this, and how to apply and follow the GNU AGPL, see
661 | .
662 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ____ _ __ __
4 | / __ \____ ___ ____| | / /____/ /_
5 | / / / / __ \/ _ \/ __ \ | /| / / ___/ __/
6 | / /_/ / /_/ / __/ / / / |/ |/ / / / /_
7 | \____/ .___/\___/_/ /_/|__/|__/_/ \__/
8 | /_/
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | * [免责声明](#免责声明)
26 | * [前言](#前言)
27 | * [准备工作](#准备工作)
28 | * [步骤一:获取路由器root权限](#步骤一获取路由器root权限)
29 | * [步骤二:刷入不死Breed](#步骤二刷入不死breed)
30 | * [下载Breed](#下载breed)
31 | * [上传到指定目录](#上传到指定目录)
32 | * [刷入Breed](#刷入breed)
33 | * [步骤三:刷入OpenWrt 系统固件](#步骤三刷入openwrt-系统固件)
34 | * [下载对应的OpenWrt系统固件](#下载对应的openwrt系统固件)
35 | * [开始刷入OpenWrt固件](#开始刷入openwrt固件)
36 | * [步骤四:安装Dr.com插件](#步骤四安装drcom插件)
37 | * [安装现成Drcom插件](#安装现成Drcom插件)
38 | * [自己编译Drcom插件](#自己编译Drcom插件)
39 | * [步骤五:配置上网](#步骤五配置上网)
40 | * [步骤六:配置防检测](#步骤六配置防检测)
41 | * [安装现成xmurp-ua插件](#安装现成xmurp-ua插件)
42 | * [自己编译xmurp-ua插件](#自己编译xmurp-ua插件)
43 | * [疑惑解答](#疑惑解答)
44 | * [补充](#补充)
45 | * [License](#license)
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 | # 免责声明
54 | > 1. 在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖、故障、数据丢失等情况,概不负责;
55 | > 2. 该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任由您自行承担;
56 | > 3. 部分学校明令禁止使用路由器上网,相关文件请点击[广东工业大学校园网责任书][gdut-letter-of-responsibility]、[厦门大学校园网责任书][xmu-letter-of-responsibility]查看。本教程仅用于交流使用,安装路由器的行为完全是您个人意志所决定的,如您已成功安装,请在 24 小时内重置路由器至原出产状态;
57 | > 4. 请按照学校推荐的方式连接到互联网,如因个人问题受到相关校规追责,由您自行承担。
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | # QQ交流群
66 |
67 | 欢迎加入QQ交流群,群号[748317786][qq-group],仅限技术交流,禁止商业行为
68 |
69 | 
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | # 前言
78 |
79 | 本教程教您如何在[Drcom][drcom-introduction]下使用路由器上校园网(以广东工业大学、极路由1S HC5661A为例)
80 |
81 | 本教程适合使用[Drcom][drcom-introduction]进行拨号上网的用户,同时,要求您的路由器支持刷入第三方系统,如openwrt。由于是针对新手的教程,所以叙述部分可能会比较冗杂,您可自行跳到不同的章节。
82 |
83 | 本教程以极路由1S HC5661A为例,不同型号路由器所对应的教程略有不同,请您注意。
84 |
85 |
86 |
87 | **本教程非原创,在以下开发者的基础上进行改进:**
88 |
89 | 1. [陈浩南: 在厦大宿舍安装路由器][chenhaonan]
90 | 2. [NickHopps: 开启愉快的路由之旅:广工校园网Wifi][NickHopps]
91 | 3. [GJXS: 绕过检测移动设备的一种思路][GJXS]
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 | # 准备工作
100 |
101 | - 一款支持刷入第三方系统([openwrt](https://openwrt.org/))的路由器
102 | - **该路由器已联网并获得开发者(root)权限**
103 | - **一根网线**
104 | - 下载软件[WinSCP](./software/WinSCP-5.13.7-Setup.exe)
105 | - 下载软件putty,32位操作系统请下载[putty32](./software/putty32.exe),64位系统请下载[putty64](./software/putty64.exe)
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | # 步骤一:获取路由器root权限
114 |
115 | 以`极路由1S HC5661A`为例,在您购买满14天后,请先登录极路由器后台,然后依次开通、安装开发者插件
116 |
117 | - [x] 开通开发者模式:“云插件”>“路由器信息”>“高级设置”>“开通”
118 | - [x] 安装开发者插件:“云插件”>“全部插件”>“开发者模式”>”确定”
119 |
120 | 其他路由器可查看其他教程获取root权限。
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 | # 步骤二:刷入不死Breed
129 |
130 |
131 |
132 | ## 下载Breed
133 |
134 | [Breed](https://breed.hackpascal.net/)是一个路由器的Bootloader(Bootloader 意为引导加载器,即为用于加载操作系统的程序。它是一大类此类功能程序的统称。现在的 BIOS、UEFI、GRUB、RedBoot、U-Boot、CFE等都是 Bootloader),装它的目的是为了下一步刷入固件(ROM)。以`极路由1S HC5661A`为例,**不同型号下载不同的Breed,请务必对号入座**,下载[breed-mt7628-hiwifi-hc5661a.bin](./breed/breed-mt7628-hiwifi-hc5661a.bin)
135 |
136 | 以下是几种常见的路由器型号对应的Breed下载链接:
137 |
138 | | 路由器版本号 | 下载链接地址 |
139 | | --------------------------------| ---------------------------------------------------------- |
140 | | 极路由1(HC6361) | [HC6361-uboot][HC6361-uboot] |
141 | | 极路由1S(HC5661**A**) | [breed-mt7628-hiwifi-hc5661a][breed-mt7628-hiwifi-hc5661a] |
142 | | 极路由1S(HC5661)/极路由2(HC5761) | [breed-mt7620-hiwifi-hc5761][breed-mt7620-hiwifi-hc5761] |
143 | | 极路由3(HC5861) | [breed-mt7620-hiwifi-hc5861][breed-mt7620-hiwifi-hc5861] |
144 | | 极路由4(HC5962) | [breed-mt7621-hiwifi-hc5962][breed-mt7621-hiwifi-hc5962] |
145 | | - | - |
146 | | 小米路由器mini版 | [breed-mt7620-xiaomi-mini][breed-mt7620-xiaomi-mini] |
147 | | 红米AC2100版 | 链接: [红米AC2100刷Breed工具包][breed-mt7621-redmi-AC2100], 密码: 14wa
红米AC2100路由器类型的, 刷完可直接跳到[步骤三](#下载对应的OpenWrt系统固件) |
148 | | 小米路由器4C版 | 请直接查看[issues27][issues27]提供的小米路由器4C刷机过程 |
149 | | - | - |
150 | | 新路由mini(newifi y1) | [breed-mt7620-lenovo-y1][breed-mt7620-lenovo-y1] |
151 | | 新路由1(newifi y1s) | [breed-mt7620-lenovo-y2][breed-mt7620-lenovo-y2] |
152 | | 新路由2(newifi d1) | [breed-mt7621-newifi-d1][breed-mt7621-newifi-d1] |
153 | | 新路由3(newifi d2) | [breed-mt7621-newifi-d2][breed-mt7621-newifi-d2] |
154 | | - | - |
155 | | 斐讯K1、K2一键刷Breed工具包 | 链接: [斐讯路由器刷breed Web助手通用版][phicomm-breed], 提取码: 5kjc
斐讯路由器类型的, 刷完可直接跳到[步骤三](#下载对应的OpenWrt系统固件) |
156 |
157 |
158 |
159 | > `说明:`由于路由器版本太多,若您在上面没有找到对应的路由器型号,请自行查找
160 |
161 |
162 |
163 |
164 |
165 | ## 上传到指定目录
166 |
167 | 使用WinSCP登入你的路由器后台,其中:
168 |
169 | 主机名: **你的后台管理地址(比如192.168.1.1或者192.168.1.199或者其他)**
170 |
171 | 账号: **root**
172 |
173 | 密码: **你的后台管理密码,如果忘记请恢复出产设置**
174 |
175 | 端口: **1022或者22(自行测试)**
176 |
177 | 模式: **SCP**
178 |
179 | 
180 |
181 |
182 |
183 | 登陆成功后进入`/tmp目录`,将刚才下载的[breed-mt7628-hiwifi-hc5661a.bin](./breed/breed-mt7628-hiwifi-hc5661a.bin)上传到这个目录
184 |
185 |
186 |
187 |
188 | ## 刷入Breed
189 |
190 | 使用[putty64](./software/putty64.exe)登入你的路由器后台,主机名称、账号、密码、端口均与上述相同。连接类型选择**SSH**,然后点击**打开**按钮。
191 |
192 | 然后等一会,窗口会弹出**login as:**,此时输入账号**root**
193 |
194 | 接着,窗口会弹出**password as:**,此时输入**后台管理密码。注意,输入密码的时候,密码不会显示在窗口上,需要靠感觉输入密码。**
195 |
196 | > linux系统的登录方式是基本知识,但是考虑到的确有一部分人对计算机完全不懂,所以才会介绍那么详细。
197 |
198 |
199 | 登入成功后键入以下命令:
200 |
201 | `mtd -r write /tmp/breed-mt7628-hiwifi-hc5661a.bin u-boot`
202 |
203 | 如果是小米路由器mini,则键入以下命令:
204 |
205 | `mtd -r write /tmp/breed-mt7620-xiaomi-mini.bin Bootloader`
206 |
207 |
208 | 
209 |
210 | 显示rebooting后等待路由重启完成,不死uboot就完成了刷入了。(注意,为了确定百分百刷入成功,建议此时什么都不要动,等待5分钟后再进行其他操作)
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 | # 步骤三:刷入OpenWrt 系统固件
219 |
220 |
221 |
222 | ## 下载对应的OpenWrt系统固件
223 |
224 | 键入以下命令查看`路由器CPU的型号`,以确定我们要刷什么版本的固件
225 |
226 | `cat /proc/cpuinfo`
227 |
228 |
229 |
230 | 点击这里[OpenWrt Downloads](http://downloads.openwrt.org/releases/18.06.2/targets/)下载对应型号的OpenWrt固件,以`极路由1S HC5661A`为例,点击下载[openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin](./openwrt/openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin)
231 |
232 | 如下图:
233 |
234 | 
235 |
236 | 以下是几种常见的路由器型号对应的OpenWrt固件下载链接:
237 |
238 | | 路由器版本号 | CPU的架构 | 下载链接地址 |
239 | | -------------------- | ------------- | ------------------------------------------------------------------ |
240 | | 极路由1(HC6361) | ar71xx-generic| [openwrt-18.06.2-ar71xx-generic-hiwifi-hc6361.bin][openwrt-hc6361] |
241 | | 极路由1S(HC5661**A**) | ramips/mt76x8 | [openwrt-18.06.2-ramips-mt76x8-hc5661a.bin][openwrt-hc5661a] |
242 | | 极路由1S(HC5661) | ramips/mt7620 | [openwrt-18.06.2-ramips-mt7620-hc5661.bin][openwrt-hc5661] |
243 | | 极路由2(HC5761) | ramips/mt7620 | [openwrt-18.06.2-ramips-mt7620-hc5761.bin][openwrt-hc5761] |
244 | | 极路由3(HC5861) | ramips/mt7620 | [openwrt-18.06.2-ramips-mt7620-hc5861.bin][openwrt-hc5861] |
245 | | 极路由4(HC5962) | ramips/mt7621 | [openwrt-18.06.2-ramips-mt7621-hc5962.bin][openwrt-hc5962] |
246 | | - | - | - |
247 | | 斐讯K1版 | ramips-mt7620 | [openwrt-18.06.2-ramips-mt7620-psg1208.bin][openwrt-psg1208] |
248 | | 斐讯K2版 (五个网口) | ramips-mt7620 | [openwrt-18.06.2-ramips-mt7620-psg1218a.bin][openwrt-psg1218a] |
249 | | 斐讯K2C版(四个网口) | ramips-mt7620 | [openwrt-18.06.2-ramips-mt7620-psg1218b.bin][openwrt-psg1218b] |
250 | | 斐讯K2P版(无线驱动) | ramips-mt7621 | [openwrt-R9.10.1-4.14.146-32-mt7621-k2p-wifi.zip][openwrt-k2p] |
251 | | - | - | - |
252 | | 小米路由器mini版 | ramips-mt7620 | [openwrt-18.06.2-ramips-mt7620-miwifi-mini.bin][openwrt-mifi-mini] |
253 | | 红米AC2100版 | ramips-mt7621 | [openwrt-ramips-mt7621-redmi-ac2100.bin][openwrt-redmi-ac2100] |
254 | | 小米路由器4C版 | ramips/mt76x8 | 请直接查看[issues27][issues27]提供的小米路由器4C刷机过程 |
255 | | - | - | - |
256 | | 新路由mini(newifi y1) | ramips-mt7620 | [y1-squashfs-sysupgrade.bin][y1-squashfs-sysupgrade.bin] |
257 | | 新路由1(newifi y1s) | ramips-mt7620 | [y1s-squashfs-sysupgrade.bin][y1s-squashfs-sysupgrade.bin] |
258 | | 新路由2(newifi d1) | ramips-mt7621 | [d1-squashfs-sysupgrade.bin][d1-squashfs-sysupgrade.bin] |
259 | | 新路由3(newifi d2) | ramips-mt7621 | [d2-squashfs-sysupgrade.bin][d2-squashfs-sysupgrade.bin] |
260 |
261 | > `说明:`由于路由器版本太多,若您在上面没有找到对应的路由器型号,请自行查找
262 |
263 |
264 |
265 |
266 |
267 |
268 | ## 开始刷入OpenWrt固件
269 |
270 | 本小节的步骤请严格按照先后顺序操作。
271 |
272 | 1. 用网线让路由器的LAN口与电脑的网口相连接;
273 | 2. PC设置为自动获取IP(一般默认自动获取IP);
274 | 3. 路由器断电(就是拔插头);
275 | 4. 首先按住reset不放!,确保没有松开reset键后,然后,插入路由器电源;
276 | 5. 保持按住reset 3-4秒左右,路由器灯开始一闪一闪的时候,松开reset;
277 | 6. PC网卡获取到192.168.1.x的地址 (如未获取到手工设置),一般是192.168.1.1 ;
278 | 7. 浏览器访问 192.168.1.1,接着你就会看到一个uboot控制台的界面。
279 |
280 |
281 |
282 | 为了保险起见,首先进行固件备份,以备不时之需。严重强烈建议极路由用户刷Breed后,第一次进入后台就备份一次,这样以后想要重新刷回官方系统时原有功能不会受到影响,仍然能够访问云平台。
283 |
284 | 
285 |
286 |
287 |
288 | 现在正式开始刷入OpenWrt固件,依次点击固件更新→勾选固件→点击选择文件,选择我们刚刚下载的[openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin](./openwrt/openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin),然后耐心等待固件刷入完成。
289 |
290 | 
291 |
292 | 
293 |
294 |
295 |
296 | 安装完成后会自动重启,这时可以不断刷新浏览器,直到管理界面显示出来,如果没有显示,建议稍后使用192.168.1.1访问管理页面。
297 |
298 | 账号:**root**
299 |
300 | 密码:**默认没有密码或者默认密码为password**
301 |
302 | 
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 | # 步骤四:安装Dr.com插件
311 |
312 | **Dr.com插件仅适用于使用Dr.com客户端认证(PPPoE,P版)的用户,主要是进行模拟拨号,定时发送心跳包的作用。使用Dr.com网页版认证(DHCP,D版)或者不使用Dr.com认证进行上网的用户不需要安装Dr.com插件。**
313 |
314 |
315 | ## 安装现成Drcom插件
316 |
317 | 这里以`广工(广东工业大学)校园网为例`,其他学校请自行获得相应的Dr.com插件,如果您愿意折腾的话,可以[点击这里](https://github.com/drcoms/drcom-generic)自行编译合适自己的学校的Dr.com插件(需要较强的编程基础,建议还是找对应自己学校的现成的插件)
318 |
319 | 以下是`广工(广东工业大学)校园网`各个路由器相应版本Dr.com插件下载
320 |
321 | | 路由器版本号 | CPU的架构 | 下载链接地址 |
322 | | -------------------------------------------------- | --------------|--------------------------------- |
323 | | GDUT-极路由HC5661, HC5761, HC5861 | ramips/mt7620 | [下载链接地址][gdut-drcom-hc5661] |
324 | | GDUT-极路由HC5661A, HC5861B | ramips/mt76x8 | [下载链接地址][gdut-drcom-hc5661a] |
325 | | GDUT-极路由HC5962 | ramips/mt7621 | [下载链接地址][gdut-drcom-hc5962] |
326 | | GDUT-极路由HC6361 | ar71xx-generic| [下载链接地址][gdut-drcom-hc6361] |
327 | | - | - | - |
328 | | GDUT-斐讯K2P版 | ramips-mt7621 | [下载链接地址][gdut-drcom-k2p] |
329 | | GDUT-斐讯K1, K2,K2G, K2C | ramips-mt7620 | [下载链接地址][gdut-drcom-psg1208] |
330 | | - | - | - |
331 | | GDUT-小米路由器mini版 | ramips/mt7620 | [下载链接地址][gdut-drcom-hc5661] |
332 | | GDUT-红米路由器AC2100版 | ramips/mt7621 | [下载链接地址][gdut-drcom-k2p] |
333 | | GDUT-小米路由器4C版 | ramips/mt76x8 | [下载链接地址][gdut-drcom-hc5661a] |
334 | | - | - | - |
335 | | GDUT-新路由mini(newifi y1), 新路由1(newifi y1s) | ramips/mt7620 | [下载链接地址][gdut-drcom-hc5661] |
336 | | GDUT-新路由2(newifi d1), 新路由3(newifi d2) | ramips/mt7621 | [下载链接地址][gdut-drcom-k2p] |
337 | | - | - | - |
338 | | GDUT-ramips-rt305x | ramips-rt305x | [下载链接地址][gdut-drcom-rt305x] |
339 | | GDUT-ar71xx_tiny | ar71xx_tiny | [下载链接地址][gdut-ar71xx-tiny] |
340 |
341 | > `说明:`由于路由器版本太多,若您在上面没有找到对应的路由器型号,建议选择自己编译(难度很低)
342 |
343 |
344 |
345 |
346 | 将下载的`Dr.com插件`用`WinSCP`传到路由器`/tmp`文件夹下(WinSCP的使用方式上面已经阐述过)。
347 |
348 | 打开并登录putty,进行安装Dr.com,请键入以下命令:
349 |
350 | ```Bash
351 | cd /tmp
352 |
353 | opkg install gdut-drcom_6.0-4_mipsel_24kc.ipk
354 | ```
355 |
356 | **至此,Dr.com插件安装完毕。**
357 |
358 |
359 |
360 | ## 自己编译Drcom插件
361 |
362 | 对于没有上述对应型号路由器的`广工(广东工业大学)同学`,可进行以下步骤进行编译生成自己的Dr.com插件.
363 |
364 | 1.首先`路由器CPU的型号`,键入以下命令查看`cat /proc/cpuinfo`
365 |
366 | 2.然后进入[OpenWrt 18.06](https://archive.openwrt.org/releases/18.06.0/targets/),根据自己路由器的`路由器型号`进入相应的网站,`以极路由HC5661A为例`,进入[ramips/mt76x8](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](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)并下载
367 |
368 | 3.在linux系统下(建议debian或者ubuntu),键入以下命令:
369 |
370 | ```Bash
371 | # 本次交叉编译过程在 Debian 8.9 系统下完成
372 |
373 | # 先更新包列表
374 | sudo apt-get update
375 |
376 | # 安装ncurses,不同Linux版本执行不同命令
377 | # Debian/Ubuntu 执行下面这1条命令,2选1
378 | sudo apt-get install libncurses5-dev libncursesw5-dev
379 | # CentOS 执行下面这条命令,2选1
380 | yum install ncurses-devel ncurses
381 |
382 | # 再次更新包列表
383 | sudo apt-get update
384 |
385 | # 安装awk,执行过程中有任何提示,请输入Y确认
386 | sudo apt-get install gawk
387 |
388 | # 安装git,执行过程中有任何提示,请输入Y确认
389 | sudo apt-get install git
390 |
391 | # 返回到当前用户目录,建议在当前用户目录下完成我们的工作,最好不要在root下
392 | cd ~
393 |
394 | # 在线下载相应的openwrt-sdk,这一步网络比较慢,下载可能比较久
395 | # 如果你想加快速度,则请从其他电脑*fan*qiang*下载完成后传输到这个位置(也就是当前用户目录)
396 | 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
397 |
398 | # 解压我们刚刚下载的openwrt-sdk,请务必确保该压缩包已经位于当前目录
399 | tar xvJf openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz
400 |
401 | # 进入该sdk文件夹
402 | cd openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64
403 |
404 | # 然后再进入package文件夹,并下载drcom ODP文件夹
405 | cd package && git clone https://github.com/GJXS1980/ODP.git
406 |
407 | # 返回上层目录,也就是为了回到openwrt-sdk这个目录
408 | cd ..
409 |
410 | # 开始编译
411 | make package/ODP/compile
412 |
413 | # 编译到最后的时候,会弹出一个框
414 | # 此时,通过移动键盘左右键,移到Exit,按下回车键确认
415 | # 接着,通过移动键盘左右键,移到Yes ,按下回车键确认
416 | # 等待几秒钟编译完成
417 | # 最终生成的yyy.ipk文件的位置为我们所下载的openwrt-sdk目录下的bin/packages/xxx/base/yyy.ipk
418 | ```
419 |
420 |
421 | 4.最终生成的yyy.ipk文件的位置为我们所下载的openwrt-sdk目录下的`bin/packages/xxx/base/yyy.ipk`,到这里你也有一个适合自己路由器的drcom插件了,回到[步骤四](#安装现成插件)安装Dr.com客户端
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 | # 步骤五:配置上网
430 |
431 | 1. 点击 Network(网络)-> Interfaces(接口),点击“WAN”对应的 Edit(编辑) 按钮。
432 |
433 | - Protocol(通信协议):改选为`PPPoE`,然后点击出现的 Switch Protocol(切换协议)按钮。
434 | - PAP/CHAP username(PAP/CHAP 用户名):学号
435 | - PAP/CHAP password(PAP/CHAP 密码):校园网密码
436 | - 点击 Save & Apply(保存并应用)。
437 |
438 | > 建议在输入账号密码的时候多检查几遍,保证没有输错
439 |
440 |
441 |
442 |
443 | 2. 点击 Network -> Wireless(无线)。如果提示 Disabled(已禁用)就点击 Enable(启用)。可能只有一个 2.4G 的,也可能有一个 2.4G 的、一个 5G 的。点 2.4G或5G 的 Edit(编辑) 按钮。
444 |
445 | - ESSID:填 WiFi 的名字。
446 |
447 |
448 |
449 | 3. 点击 Wireless Security(无线安全)
450 |
451 | - Encryption(加密):改选为`WPA2-PSK`
452 | - Key(密码):填你想要的 WiFi 密码
453 | - 点击 Save & Apply(保存并应用)
454 |
455 |
456 |
457 | 4. 配置dr.com客户端**使用Dr.com P版认证的才需要配置**,这里以`广工(广东工业大学)`为例,进行如下配置:
458 |
459 | - 点击 Network(网络)-> Interfaces(接口),查看WAN6的MAC地址并复制,修改Dr.com客户端的配置。
460 |
461 | 
462 |
463 |
464 | **注意,在接口名称中,不一定选择的是eth0.2,而是选择与WAN6对应的接口名称,有可能是eth1,下图提示有误**
465 |
466 | **注意,在接口名称中,不一定选择的是eth0.2,而是选择与WAN6对应的接口名称,有可能是eth1,下图提示有误**
467 |
468 | **注意,在接口名称中,不一定选择的是eth0.2,而是选择与WAN6对应的接口名称,有可能是eth1,下图提示有误**
469 |
470 | 
471 |
472 |
473 |
474 | 配置完成后,**重启路由器,并请耐心等待若干分钟(3分钟内)**,查看`WAN的PPPoE`是否拨号成功。如果Uptime、RX、TX均有数据,则说明路由器已经可以上网了。
475 |
476 | 
477 |
478 | **如果发现路由器一直不能上网,则说明:**
479 |
480 | > 1. wan中,学号密码输入错误(可能性30%);
481 | > 2. drcom插件中,学号密码输入错误(可能性30%);
482 | > 3. 路由器的wan没有与校园网端口连接(可能性20%);
483 | > 4. 网线断了,或者路由器坏了(可能性15%);
484 | > 5. 压根没开通校园网(可能性4.9%);
485 | > 6. 端口被学校网络中心拉黑了(极少出现0.1%)。
486 |
487 |
488 |
489 |
490 |
491 | # 步骤六:配置防检测
492 |
493 | **User-Agent字段中包含了操作系统版本信息,而HTTP协议没有对这些信息加密,因此可以直接从这里判断数据包是发自于PC设备还是移动设备。根据这个原理,可以猜测到,可能是由于移动设备发送的数据包被检测到,才导致了被强制断网的情况发生。**
494 |
495 |
496 |
497 | **所以,解决的办法就是统一所有设备的User-Agent,模拟成只有一台设备在上网的情况**
498 |
499 |
500 |
501 | **这里推荐使用`xmurp-ua`插件,作者已经开源,项目地址:**[https://github.com/CHN-beta/xmurp-ua][xmurp-ua-github]
502 |
503 |
504 | ## 安装现成xmurp-ua插件
505 |
506 | 请打开路由器后台,查看路由器和openwrt的具体信息,以便确定我们要安装哪个版本的更改UA插件。
507 |
508 | 
509 |
510 |
511 | 以下是几种常见的CPU架构对应的更改UA插件的下载链接:
512 |
513 | | CPU的架构 | openwrt的版本 | 内核版本号码 | 下载链接地址 |
514 | | --------------| --------------- | ----------- | --------------------------------------------------- |
515 | | ar71xx_tiny | OpenWrt-18.06.0 | 4.14.54-31 | [ar71xx_tiny_ua_4.14.54-31_mips_24kc.ipk][xmurp-ua] |
516 | | ramips_mt76x8 | OpenWrt-18.06.0 | 4.14.54-31 | [mt76x8_ua_4.14.54-31_mipsel_24kc.ipk][xmurp-ua] |
517 | | ramips_mt7620 | OpenWrt-18.06.0 | 4.14.54-31 | [mt7620_ua_4.14.54-31_mipsel_24kc.ipk][xmurp-ua] |
518 | | ramips_mt7621 | OpenWrt-18.06.0 | 4.14.54-31 | [mt7621_ua_4.14.54-31_mipsel_24kc.ipk][xmurp-ua] |
519 | | - | - | - | - |
520 | | ar71xx_tiny | OpenWrt-18.06.1 | 4.14.63-31 | [ar71xx_tiny_ua_4.14.63-31_mips_24kc.ipk][xmurp-ua] |
521 | | ramips_mt76x8 | OpenWrt-18.06.1 | 4.14.63-31 | [mt76x8_ua_4.14.63-31_mipsel_24kc.ipk][xmurp-ua] |
522 | | ramips_mt7620 | OpenWrt-18.06.1 | 4.14.63-31 | [mt7620_ua_4.14.63-31_mipsel_24kc.ipk][xmurp-ua] |
523 | | ramips_mt7621 | OpenWrt-18.06.1 | 4.14.63-31 | [mt7621_ua_4.14.63-31_mipsel_24kc.ipk][xmurp-ua] |
524 | | - | - | - | - |
525 | | ar71xx_tiny | OpenWrt-18.06.2 | 4.14.95-31 | [ar71xx_tiny_ua_4.14.95-31_mips_24kc.ipk][xmurp-ua] |
526 | | ramips_mt76x8 | OpenWrt-18.06.2 | 4.14.95-31 | [mt76x8_ua_4.14.95-31_mipsel_24kc.ipk][xmurp-ua] |
527 | | ramips_mt7620 | OpenWrt-18.06.2 | 4.14.95-31 | [mt7620_ua_4.14.95-31_mipsel_24kc.ipk][xmurp-ua] |
528 | | ramips_mt7621 | OpenWrt-18.06.2 | 4.14.95-31 | [mt7621_ua_4.14.95-31_mipsel_24kc.ipk][xmurp-ua] |
529 | | - | - | - | - |
530 | | ar71xx_tiny | OpenWrt-18.06.3 | 4.14.128-31 | [ar71xx_tiny_ua_4.14.128-31_mips_24kc.ipk][xmurp-ua] |
531 | | ramips_mt76x8 | OpenWrt-18.06.3 | 4.14.128-31 | [mt76x8_ua_4.14.128-31_mipsel_24kc.ipk][xmurp-ua] |
532 | | ramips_mt7620 | OpenWrt-18.06.3 | 4.14.128-31 | [mt7620_ua_4.14.128-31_mipsel_24kc.ipk][xmurp-ua] |
533 | | ramips_mt7621 | OpenWrt-18.06.3 | 4.14.128-31 | [mt7621_ua_4.14.128-31_mipsel_24kc.ipk][xmurp-ua] |
534 | | - | - | - | - |
535 | | ar71xx_tiny | OpenWrt-18.06.4 | 4.14.131-31 | [ar71xx_tiny_ua_4.14.131-31_mips_24kc.ipk][xmurp-ua] |
536 | | ramips_mt76x8 | OpenWrt-18.06.4 | 4.14.131-31 | [mt76x8_ua_4.14.131-31_mipsel_24kc.ipk][xmurp-ua] |
537 | | ramips_mt7620 | OpenWrt-18.06.4 | 4.14.131-31 | [mt7620_ua_4.14.131-31_mipsel_24kc.ipk][xmurp-ua] |
538 | | ramips_mt7621 | OpenWrt-18.06.4 | 4.14.131-31 | [mt7621_ua_4.14.131-31_mipsel_24kc.ipk][xmurp-ua] |
539 | | - | - | - | - |
540 | | ramips_mt7621 | OpenWrt-R9.10.1 | 4.14.146-32 | [mt7621_ua_4.14.146-32_mipsel_24kc.ipk][xmurp-ua] |
541 | | - | - | - | - |
542 | | ramips_mt7621 | OpenWrt-R20.9.15 | 5.4.69-34 | [mt7621_ua_5.4.69-34_mipsel_24kc.ipk][xmurp-ua] |
543 |
544 |
545 | 接下来,需要安装好`xmurp-ua插件`并正确配置。将下载的`xmurp-ua插件`用`WinSCP`传到路由器`/tmp`文件夹下(WinSCP的使用方式上面已经阐述过)。
546 |
547 | 打开并登录putty,进行安装`xmurp-ua`插件的安装,请键入以下命令进行安装:
548 |
549 | ```Bash
550 | cd /tmp
551 |
552 | opkg install 改成对应的xmurp-ua文件名.ipk
553 | ```
554 |
555 | 同时,安装压缩内存插件
556 | **(务必确保路由器此时已经联网成功):**
557 |
558 | ```Bash
559 | opkg update
560 |
561 | opkg install zram-swap
562 | ```
563 |
564 | 接着,检测这两个插件是否均已安装成功:
565 |
566 | ```Bash
567 | opkg list-installed | grep zram-swap
568 |
569 | opkg list-installed | grep xmurp-ua
570 | ```
571 |
572 | 若有显示`zram-swap`和`xmurp-ua`的插件版本信息,则说明安装成功,否则请重新安装。
573 |
574 |
575 | **最后,执行以下命令重启路由器。注意,必须重启路由器。在进行后续步骤之前,请先重启路由器。**
576 |
577 | ```Bash
578 | reboot
579 | ```
580 |
581 |
582 | ## 自己编译xmurp-ua插件
583 |
584 | 对于使用第三方固件或非openwrt固件的,可以自行编译,前提是你有该固件的`sdk`文件。
585 |
586 | 1. 安装编译依赖项。
587 |
588 | ```bash
589 | sudo apt-get update && sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk subversion mercurial ccache tar ssh
590 | ```
591 |
592 | 2. 下载好 SDK 后,放到当前用户目录下,解压 SDK 并进入该 SDK 目录。
593 |
594 | ```bash
595 | cd ~ && tar xvf *.tar.xz && cd openwrt-sdk*
596 | ```
597 |
598 | 3. 下载 xmurp-ua 的源代码,并编译。
599 |
600 | ```bash
601 | git clone https://github.com/CHN-beta/xmurp-ua.git package/xmurp-ua
602 |
603 | make package/xmurp-ua/compile V=sc
604 | ```
605 |
606 | 4. 如果弹出来一个菜单,按左右键选择 Exit,回车;然后选择 Save,回车;即可继续。
607 |
608 | 5. 生成的`.ipk`文件位于`sdk`目录下的`bin`目录中。
609 |
610 | 6. 回到上一步,按照上一步的方式安装插件。
611 |
612 |
613 | ## 验证防检测效果
614 |
615 | 使用**电脑浏览器**打开[http://www.user-agent.cn/](http://www.user-agent.cn/) ,查看UA结果是否为`XMURP/1.0`,而不是`windows`或者`linux`或者`macOS`。
616 |
617 | 
618 |
619 |
620 |
621 | 至此,所有步骤均已配置完毕,可以发现正常联网并且多台设备同时连接不会掉线。
622 |
623 | **再次声明,本教程仅限于技术交流,如您已成功安装,请在 24 小时内重置路由器至原出产状态。**
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 | # 疑惑解答
632 | **问题1**:安装了`xmurp-ua`插件后,部分网页打不开,WeGame 和腾讯游戏下载器无法下载,“校友邦”无法登陆?
633 | **回答1**:更改ua总是有副作用的,由于部分http网页和应用程序无法识别ua,导致出错。对于这种情况,只能设置例外,放行该设备,也就是说不会修改该设备发送的数据的ua。在路由器防火墙中添加以下规则:
634 |
635 | ```bash
636 | # 01:23:45:67:89:AB为该设备的mac地址
637 | 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
638 | ```
639 |
640 |
641 | **问题2**:无法安装`xmurp-ua`插件?
642 | **回答2**:教程提供的现成`xmurp-ua`插件只能用于`openwrt`官方固件,如果是第三方魔改的固件或lede固件,请自行编译`xmurp-ua`插件。
643 |
644 |
645 | **问题3**:确认已经安装了`xmurp-ua`插件,但是在微信检查到ua没有更改,在其他地方却检查到ua更改了?
646 | **回答3**:不用担心。微信使用X5内核浏览器,会对所有http请求进行代理,故数据包被发送到路由器之前已经被代理了,不走80端口,所以不进行更改。默认只对80端口的http数据进行修改。
647 |
648 |
649 | **问题4**:确认已经安装了`xmurp-ua`插件,但是ua却没有更改,插件无效?
650 | **回答4**:关闭nat加速或者software flow offloading。以openwrt系统为例:Network → firewall → General Settings → **取消**勾选Software flow offloading
651 |
652 |
653 | **问题5**:教程中提供的`drcom插件`是否适用于其他学校?
654 | **回答5**:仅限于gdut使用,其他学校需要找到对应的`drcom插件`。
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 | # 补充
664 | **完整版**请点击这里打开[GitHub项目地址](https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt)
665 |
666 | 项目持续更新,欢迎您[star本项目](https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt)
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 | # License
675 | [AGPLv3](https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/blob/master/LICENSE)
676 |
677 |
678 |
679 |
680 |
681 | [HC6361-uboot]:http://rssn.cn/roms/uboot/HC6361-uboot.bin
682 | [breed-mt7628-hiwifi-hc5661a]:https://breed.hackpascal.net/breed-mt7628-hiwifi-hc5661a.bin
683 | [breed-mt7620-hiwifi-hc5761]:https://breed.hackpascal.net/breed-mt7620-hiwifi-hc5761.bin
684 | [breed-mt7620-hiwifi-hc5861]:https://breed.hackpascal.net/breed-mt7620-hiwifi-hc5861.bin
685 | [breed-mt7621-hiwifi-hc5962]:https://breed.hackpascal.net/breed-mt7621-hiwifi-hc5962.bin
686 | [breed-mt7620-xiaomi-mini]:https://breed.hackpascal.net/breed-mt7620-xiaomi-mini.bin
687 | [phicomm-breed]:https://pan.baidu.com/s/1mLNdozrTm_guN1IDA8heOQ
688 | [breed-mt7620-lenovo-y1]:https://breed.hackpascal.net/breed-mt7620-lenovo-y1.bin
689 | [breed-mt7620-lenovo-y2]:https://breed.hackpascal.net/breed-mt7620-lenovo-y1s.bin
690 | [breed-mt7621-newifi-d1]:https://breed.hackpascal.net/breed-mt7621-newifi-d1.bin
691 | [breed-mt7621-newifi-d2]:https://breed.hackpascal.net/breed-mt7621-newifi-d2.bin
692 | [breed-mt7621-redmi-AC2100]:https://www.lanzoui.com/ikxB6hfdo3c
693 |
694 | [openwrt-hc6361]:http://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/generic/openwrt-18.06.2-ar71xx-generic-hiwifi-hc6361-squashfs-sysupgrade.bin
695 | [openwrt-hc5661a]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt76x8/openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin
696 | [openwrt-hc5661]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-hc5661-squashfs-sysupgrade.bin
697 | [openwrt-hc5761]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-hc5761-squashfs-sysupgrade.bin
698 | [openwrt-hc5861]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-hc5861-squashfs-sysupgrade.bin
699 | [openwrt-hc5962]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7621/openwrt-18.06.2-ramips-mt7621-hc5962-squashfs-sysupgrade.bin
700 | [openwrt-psg1208]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-psg1208-squashfs-sysupgrade.bin
701 | [openwrt-psg1218a]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-psg1218a-squashfs-sysupgrade.bin
702 | [openwrt-psg1218b]:http://downloads.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-psg1218b-squashfs-sysupgrade.bin
703 | [openwrt-mifi-mini]:https://archive.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-miwifi-mini-squashfs-sysupgrade.bin
704 | [openwrt-k2p]:./openwrt/openwrt-R9.10.1-4.14.146-32-mt7621-k2p-wifi.zip
705 | [y1-squashfs-sysupgrade.bin]:https://archive.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-y1-squashfs-sysupgrade.bin
706 | [y1s-squashfs-sysupgrade.bin]:https://archive.openwrt.org/releases/18.06.2/targets/ramips/mt7620/openwrt-18.06.2-ramips-mt7620-y1s-squashfs-sysupgrade.bin
707 | [d1-squashfs-sysupgrade.bin]:https://archive.openwrt.org/releases/18.06.2/targets/ramips/mt7621/openwrt-18.06.2-ramips-mt7621-newifi-d1-squashfs-sysupgrade.bin
708 | [d2-squashfs-sysupgrade.bin]:https://archive.openwrt.org/releases/18.06.2/targets/ramips/mt7621/openwrt-18.06.2-ramips-mt7621-d-team_newifi-d2-squashfs-sysupgrade.bin
709 | [openwrt-redmi-ac2100]:https://www.lanzoui.com/iBEYPhfe60h
710 |
711 | [gdut-drcom-hc5661]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%9E%81%E8%B7%AF%E7%94%B1-HC5661%E3%80%81HC5761%E5%92%8CHC5861
712 | [gdut-drcom-hc5661a]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%9E%81%E8%B7%AF%E7%94%B1-HC5661A%E5%92%8CHC5861B
713 | [gdut-drcom-hc5962]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%9E%81%E8%B7%AF%E7%94%B1-HC5962
714 | [gdut-drcom-hc6361]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%9E%81%E8%B7%AF%E7%94%B1-HC6361
715 | [gdut-drcom-k2t]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%96%90%E8%AE%AF-K2T
716 | [gdut-drcom-k2p]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%96%90%E8%AE%AF-K2P
717 | [gdut-drcom-psg1208]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-%E6%96%90%E8%AE%AFK1-PSG1208%E3%80%81K2-PSG1218%E5%92%8CK2G
718 | [gdut-drcom-rt305x]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-ramips-rt305x
719 | [gdut-ar71xx-tiny]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/tree/master/drcom/GDUT-ar71xx-tiny
720 |
721 |
722 | [gdut-letter-of-responsibility]:http://nic.gdut.edu.cn/fj/xuesheng1003.doc
723 | [xmu-letter-of-responsibility]:https://net.xmu.edu.cn/_upload/article/files/e0/35/162b0f8849c4816e669df3a4f11c/dd7b487e-a51d-4e41-8d8e-d9fd42338a33.pdf
724 | [drcom-introduction]:https://wiki.archlinux.org/index.php/Drcom_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
725 | [GJXS]:http://www.aigrantli.com/2018/10/27/drcom/
726 | [NickHopps]:https://blog.csdn.net/liucheng2012560/article/details/78755309
727 | [chenhaonan]:https://catalog.chn.moe/%E6%8A%80%E6%9C%AF/OpenWrt/%E5%9C%A8%E5%8E%A6%E5%A4%A7%E5%AE%BF%E8%88%8D%E5%AE%89%E8%A3%85%E8%B7%AF%E7%94%B1%E5%99%A8/
728 | [xmurp-ua]:./xmurp-ua
729 | [xmurp-ua-github]:https://github.com/CHN-beta/xmurp-ua
730 |
731 |
732 | [qq-group]:https://shang.qq.com/wpa/qunwpa?idkey=b34489d9d3d50ab3dba5db4c7cc83377af562406809da4326284febf31443366
733 |
734 | [issues27]:https://github.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/issues/27
735 |
--------------------------------------------------------------------------------
/breed/breed-mt7628-hiwifi-hc5661a.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/breed/breed-mt7628-hiwifi-hc5661a.bin
--------------------------------------------------------------------------------
/drcom/GDUT-ar71xx-tiny/gdut-drcom_6.0-4_ar71xx_tiny.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-ar71xx-tiny/gdut-drcom_6.0-4_ar71xx_tiny.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-ramips-rt305x/gdut-drcom_6.0-4_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-ramips-rt305x/gdut-drcom_6.0-4_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-斐讯-K2P/gdut-drcom_6.0-4_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-斐讯-K2P/gdut-drcom_6.0-4_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-斐讯-K2T/gdut-drcom_6.0-4_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-斐讯-K2T/gdut-drcom_6.0-4_mips_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-斐讯K1-PSG1208、K2-PSG1218和K2G/gdut-drcom_6.0-4_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-斐讯K1-PSG1208、K2-PSG1218和K2G/gdut-drcom_6.0-4_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-极路由-HC5661A和HC5861B/gdut-drcom_6.0-4_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-极路由-HC5661A和HC5861B/gdut-drcom_6.0-4_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-极路由-HC5661、HC5761和HC5861/gdut-drcom_6.0-4_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-极路由-HC5661、HC5761和HC5861/gdut-drcom_6.0-4_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-极路由-HC5962/gdut-drcom_6.0-4_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-极路由-HC5962/gdut-drcom_6.0-4_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/drcom/GDUT-极路由-HC6361/gdut-drcom_6.0-4_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/drcom/GDUT-极路由-HC6361/gdut-drcom_6.0-4_mips_24kc.ipk
--------------------------------------------------------------------------------
/img/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/1.png
--------------------------------------------------------------------------------
/img/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/10.png
--------------------------------------------------------------------------------
/img/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/11.png
--------------------------------------------------------------------------------
/img/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/12.png
--------------------------------------------------------------------------------
/img/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/13.png
--------------------------------------------------------------------------------
/img/14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/14.png
--------------------------------------------------------------------------------
/img/15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/15.png
--------------------------------------------------------------------------------
/img/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/16.png
--------------------------------------------------------------------------------
/img/17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/17.png
--------------------------------------------------------------------------------
/img/18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/18.png
--------------------------------------------------------------------------------
/img/19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/19.png
--------------------------------------------------------------------------------
/img/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/2.png
--------------------------------------------------------------------------------
/img/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/20.png
--------------------------------------------------------------------------------
/img/21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/21.png
--------------------------------------------------------------------------------
/img/22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/22.png
--------------------------------------------------------------------------------
/img/23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/23.png
--------------------------------------------------------------------------------
/img/24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/24.png
--------------------------------------------------------------------------------
/img/25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/25.png
--------------------------------------------------------------------------------
/img/26.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/26.png
--------------------------------------------------------------------------------
/img/27.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/27.jpg
--------------------------------------------------------------------------------
/img/28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/28.png
--------------------------------------------------------------------------------
/img/29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/29.png
--------------------------------------------------------------------------------
/img/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/3.png
--------------------------------------------------------------------------------
/img/30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/30.png
--------------------------------------------------------------------------------
/img/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/4.png
--------------------------------------------------------------------------------
/img/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/5.png
--------------------------------------------------------------------------------
/img/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/6.png
--------------------------------------------------------------------------------
/img/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/7.png
--------------------------------------------------------------------------------
/img/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/8.png
--------------------------------------------------------------------------------
/img/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/9.png
--------------------------------------------------------------------------------
/img/group.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/img/group.jpg
--------------------------------------------------------------------------------
/openwrt/openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/openwrt/openwrt-18.06.2-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin
--------------------------------------------------------------------------------
/openwrt/openwrt-R9.10.1-4.14.146-32-mt7621-k2p-wifi.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/openwrt/openwrt-R9.10.1-4.14.146-32-mt7621-k2p-wifi.zip
--------------------------------------------------------------------------------
/software/WinSCP-5.13.7-Setup.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/software/WinSCP-5.13.7-Setup.exe
--------------------------------------------------------------------------------
/software/putty32.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/software/putty32.exe
--------------------------------------------------------------------------------
/software/putty64.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/software/putty64.exe
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.0/ar71xx-xmurp-ua_4.9.111-31_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.0/ar71xx-xmurp-ua_4.9.111-31_mips_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.0/mt7620-xmurp-ua_4.14.54-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.0/mt7620-xmurp-ua_4.14.54-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.0/mt7621-xmurp-ua_4.14.54-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.0/mt7621-xmurp-ua_4.14.54-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.0/mt76x8-xmurp-ua_4.14.54-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.0/mt76x8-xmurp-ua_4.14.54-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.1/ar71xx-xmurp-ua_4.9.120-31_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.1/ar71xx-xmurp-ua_4.9.120-31_mips_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.1/mt7620-xmurp-ua_4.14.63-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.1/mt7620-xmurp-ua_4.14.63-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.1/mt7621-xmurp-ua_4.14.63-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.1/mt7621-xmurp-ua_4.14.63-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.1/mt76x8-xmurp-ua_4.14.63-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.1/mt76x8-xmurp-ua_4.14.63-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.2/ar71xx-xmurp-ua_4.9.152-31_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.2/ar71xx-xmurp-ua_4.9.152-31_mips_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.2/mt7620-xmurp-ua_4.14.95-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.2/mt7620-xmurp-ua_4.14.95-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.2/mt7621-xmurp-ua_4.14.95-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.2/mt7621-xmurp-ua_4.14.95-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.2/mt76x8-xmurp-ua_4.14.95-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.2/mt76x8-xmurp-ua_4.14.95-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.3/ar71xx-xmurp-ua_4.9.182-31_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.3/ar71xx-xmurp-ua_4.9.182-31_mips_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.3/mt7620-xmurp-ua_4.14.128-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.3/mt7620-xmurp-ua_4.14.128-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.3/mt7621-xmurp-ua_4.14.128-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.3/mt7621-xmurp-ua_4.14.128-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.3/mt76x8-xmurp-ua_4.14.128-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.3/mt76x8-xmurp-ua_4.14.128-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.4/ar71xx-xmurp-ua_4.9.184-31_mips_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.4/ar71xx-xmurp-ua_4.9.184-31_mips_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.4/mt7620-xmurp-ua_4.14.131-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.4/mt7620-xmurp-ua_4.14.131-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.4/mt7621-xmurp-ua_4.14.131-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.4/mt7621-xmurp-ua_4.14.131-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt 18.06.4/mt76x8-xmurp-ua_4.14.131-31_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt 18.06.4/mt76x8-xmurp-ua_4.14.131-31_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt-R20.9.15/mt7621-xmurp-ua_5.4.69-34_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt-R20.9.15/mt7621-xmurp-ua_5.4.69-34_mipsel_24kc.ipk
--------------------------------------------------------------------------------
/xmurp-ua/OpenWrt-R9.10.1/mt7621_ua_4.14.146-32_mipsel_24kc.ipk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shengqiangzhang/Drcom-GDUT-HC5661A-OpenWrt/5addc435db2986932d4bf00515c2b94efecf0416/xmurp-ua/OpenWrt-R9.10.1/mt7621_ua_4.14.146-32_mipsel_24kc.ipk
--------------------------------------------------------------------------------