免責聲明:
- 在根據本教程進行實際操作時,如因您操作失誤導致出現的一切意外,包括但不限於路由器變磚、故障、數據丟失等情況,概不負責;
- 該技術僅供學習交流,請勿將此技術應用於任何商業行為,所產生的法律責任由您自行承擔;
- 部分學校明令禁止使用路由器上網,相關文件請點擊廣東工業大學校園網責任書、廈門大學校園網責任書查看。本教程僅用於交流使用,安裝路由器的行為完全是您個人意志所決定的,如您已成功安裝,請在 24 小時內重置路由器至原出產狀態;
- 請按照學校推薦的方式連接到互聯網,如因個人問題受到相關校規追責,由您自行承擔。
前言
本教程教您如何在Drcom下使用路由器上校園網(以廣東工業大學、極路由1S HC5661A為例)
本教程適合使用Drcom進行撥號上網的用戶,同時,要求您的路由器支持刷入第三方系統,如openwrt。由於是針對新手的教程,所以敘述部分可能會比較冗雜,您可自行跳到不同的章節。
本教程以極路由1S HC5661A為例,不同型號路由器所對應的教程略有不同,請您注意。
本教程非原創,在以下開發者的基礎上進行改進:
准備工作
- 一款支持刷入第三方系統(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固件
本小節的步驟請嚴格按照先后順序操作。
- 用網線讓路由器的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
密碼:默認為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.org
、pool.ntp.org
、time.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(日志):全部取消勾選。
- Files and Directories(文件和目錄):Action Files 刪除到只剩一個框,填入
點擊 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本項目