总体步骤

  1. 买路由器

  2. 刷机

  3. 修改路由器设置

  4. 进阶玩法:让路由器自动连网

刷机步骤

  1. 将小米路由器刷为开发版(默认是稳定版),必须要刷成开发版不然不能开启SSH

  2. 开启SSH

  3. 刷入不死breed(完成之后可以任意刷写系统)

  4. 刷入hiboy版的老毛子padavan固件

刷开发版

这是第一步,从这里开始

​ 首先,请先准备一个U盘,并确保这个U盘的格式为FATFAT32,不是空的U盘也没关系 接下来,就是具体的操作流程了。

  1. 在miwifi.com官网下载路由器对应的开发版ROM包,并将其放在U盘的根目录下,命名为miwifi.bin

我用的是这一款(小米路由器3G,即小路路由R3G)

  1. 断开小米路由器的电源,将U盘插入路由器的USB接口
  2. 按下reset按钮后重新接入电源,待指示灯变为黄色闪烁状态后松开reset
  3. 等待5~8分钟,刷机完成之后系统会自动重启并进入正常的启动状态(指示灯由黄灯常亮变为蓝灯常亮),此时,说明刷机成功完成! 如果出现异常/失败/U盘无法读取状态,会进入红灯状态,建议重试或更换U盘再试。

开启SSH

  1. 刷成开发版以后,路由器所有配置会重置,wifi名字会变成类似下图这样,并且没有密码,点击连接,会进入图示页面,用手机扫描二维码,下载小米wifi APP,接下来用手机连接该路由器(即连接小米路由器的wifi),用你的小米账号绑定这个路由器。

  1. 接下来在miwifi.com官网点开放在该页面找到开启SSH工具登录你路由绑定的帐号密码,我们复制接下来要设置的路由器的root密码(很重要,刷入Breed时要用),然后点击下载工具包

工具包使用方法:小米路由器需升级到开发版0.5.28及以上,小米路由器mini需升级到开发版0.3.84及以上,小米路由器3即将支持。注意:稳定版不支持。

  1. 将下载的工具包bin文件复制到U盘(FAT/FAT32格式)的根目录下,保证文件名为miwifi_ssh.bin

  2. 断开小米路由器的电源,将U盘插入USB接口

  3. 按住reset按钮之后重新接入电源,指示灯变为黄色闪烁状态即可松开reset

  4. 等待安装完成之后,小米路由器会自动重启,此时SSH已经打开。

刷入不死Breed

  1. 不死Breed下载地址处下载H大的breed-mt7621-xiaomi-r3g.bin不死Breed,下载完以后改名breed.bin,方便后面操作 然后到老毛子padavan下载地址下载hiboy大神的老毛子Padavan固件MI-R3G_3.4.3.9-099.trx
  2. 电脑连接路由器wifi
  3. 百度搜索WinSCP进行下载
  4. 打开WinSCP并连接路由器,设置如图,文件协议改成SCP,密码是之前保存的SSH密码,有提示信息就点击是或者更新,无所谓

  1. 接下来要将breed.bin上传到路由器的/tmp目录下,步骤是先进入tmp目录,然后直接将breed.bin拖动进去,这样就上传成功了。

  2. 上传后,百度搜索putty

  3. 使用putty登陆路由器,主机名称192.168.31.1,端口号22,连接类型ssh,登陆时有提示就点击ACCEPT

  1. 输入root,回车

  1. 输入密码,回车,输密码的时候看不见任何提示(就像没输入一样,输完回车就行,没事)

  1. 出现这个ARE U OK说明成功,然后输入命令:mtd -r write /tmp/breed.bin Bootloader

  1. 提示rebooting,接下来坐等,不要乱动,可以干点别的事情,大概5-10分钟,等到wifi重新被你的电脑发现。

  2. 此时保证路由器上没有连接任何线(电源也要拔掉),然后将路由器和你的笔记本电脑或者台式电脑用网线连接,网线要插在LAN口。

  3. 接下来先用硬物顶住路由器reset键,再给路由器通电,等到路由器蓝灯闪烁的时候(大概3秒即可),松开reset键,电脑上在浏览器中输入192.168.1.1,就进入Breed控制台了。

  4. 可以在该Breed的控制台下先备份EEPROM和编程器固件,以防止丢失了SN以后又想刷回官方版本的麻烦(不备份也行,我从来不备份哈哈哈)

刷入老毛子

​ 进入控制台以后就可以刷老毛子了,选择固件更新,选择之前下载的老毛子,点击上传

注意:如果是小米路由r3g,刷固件前要在breed恢复控制台中-小米R3G设备里 删除normal_firmware_md5值,然后点最下面的保存(删除前记得备份数值)

​ 继续坐等大概5-10分钟,估摸着差不多就在地址栏输入192.168.123.1,然后再输入账号密码,账号密码都是admin

如果出现如下页面则恭喜你刷机阶段完成

修改路由器设置

  1. 用网线连上网口,另外一端插在路由器上的WAN

  1. 连接wifi,默认wifi有两个,分别是PDCNPDCN_5G,默认密码是1234567890

  2. 此时可能会弹出内网登录窗,不用管,直接关掉

  3. 然后进入192.168.123.1,账号密码都是admin

  1. 先设置一下wifi参数(无论你是电信移动还是联通都要设置),例如wifi名、wifi密码等(无线SSID是wifi名,WPA-PSK 密钥是wifi密码,WPA-PSK 密钥滑到下面可以找到,无线模式信道带宽无线信道这些不改也没事,有兴趣的同学可以自行搜索如何修改,就不多说了),建议关闭2.4GHz的wifi,防止干扰其他无线设备。具体咋设置就不说了,应该都能看懂,截图的话太多了,完成设置以后滑到下面点击应用本页面设置。

  2. 接下来是重点,如果是联通就选择动态IP,电信和移动就选择L2TP

三大运营商设置步骤

移动设置

  • 外网连接类型设置为L2TP,守护程序xL2TPD

  • 随意行上三个要填的参数依次填在下面列出的三个选项上

    • VPN服务器
    • 用户名称
    • 用户密码
  • 闪讯拨号插件选择否

  • MAC地址设置同上

联通设置

​ 没错,就是这么神,啥都不用设置,选好动态IP以后填个MAC地址就行(点+号生成然后随便改几个),要改的原因是如果和别人MAC地址一样会获取不到IP(具体表现就是不弹内网登录窗)

电信设置

  • 外网连接类型设置为L2TP,守护程序RP-L2TP

  • 随意行上三个要填的参数依次填在下面列出的三个选项上

    • 服务器

    • 用户名称

    • 用户密码

  • 闪讯拨号插件选择是:浙江 或者 是:杭州

  • MAC地址设置同上

这里要提一下,闪讯的密码如果没固定是一直变的,每变一次得在这里改一次,非常麻烦,只能等开网达到一定时限后(三个月还是六个月,忘了)去电信营业厅固定,这也是我认为电信是最差宽带的原因

到此为止,普通设置已经结束了,路由器也已经到了能用阶段

​ 现在就可以直接开网了,具体的步骤如下:

  1. 打开内网登录窗(提前收藏或者等弹窗都可以,不弹窗可以尝试断开wifi连接然后再重新连接。如果打开内网登录窗就提示登录成功,但你其实根本没登录,这时候不要慌,点击右边的用户自助中心,会重新出来一个网页,在那边输入账号密码就行了),输入账号密码并勾选“访问互联网”,点击登录,此时会出现两种情况,第一种情况,提示登录成功,那就完事了;第二种情况,提示账号或者密码错误,出现这种情况,可能是你账号密码真输错了,如果确认没输错,就点击返回,然后可能会卡一下,啥都不要动,静静等待页面加载完毕,然后重新输入账号密码登录就好了。但有时候你会发现点击返回会回到中国计量大学主页,这时候咋办?目前我好像没有找到解决办法,但是出现概率比较低,个人猜测原因是你的号在某一时刻错误地登录了,但是又没有注销登录,可以尝试重启路由器或者坐等之类的办法,总之过一段时间它会恢复,但是恢复原因还有时间规律等我并不知道。只能说手动开网是有局限性而且比较繁琐的,在任何时候都没有脚本自动开网来得方便快捷
  2. 成功登录以后稍等一会,就可以上网了
  • 但你会发现如果关闭内网登录窗网就没了,这该咋办,难道要让你的电脑一直开机吗?有经验的同学都知道,在用传统方式连网时,如果不想一直开着内网登录窗,可以直接重启电脑,重新开机以后你会惊喜地发现网络还在,但这种方法我只试过联通,电信移动还没试过。从这个方法里面我们就可以继续总结升华,其实只需断开wifi连接,然后关闭网页,再重新连接wifi就好了,这样你的网就固若金汤,不会掉了

  • 如果你觉得这样就满足了,那么接下来的自动开网可以不需要看了,因为可能需要一点点Linux基础(老老实实一步一步来,没有基础问题也不大)

这里要注意的是,如果是电信且还没固定密码的同学,按照上述步骤做了以后,每次密码更新还得去路由器里面重新设置一下密码

设置路由器自动连网

​ 先说原理,其实在网页上连网只是给服务器发送一个请求,服务器验证通过以后,就给你开放端口,如果你关闭网页或者验证没有通过,服务器就关闭这个端口。那么我们只要让路由器模拟这个过程,就可以解放双手,自动连网了。

  1. 使用谷歌浏览器打开内网登录窗,按F12,选择network,然后勾选红框处的Preservbe log,输入账号密码,勾选访问互联网,点击登录

  1. 把你复制到的东西处理成类似我红框圈起来的样子

关于学号和密码的地方我已经做好了标记,如果你的密码中有特殊字符,你会发现可能已经被被处理成了其他字符。是不是感觉看不懂,没关系,截图展示的就是我给大家准备好的模板,你只需要记下你的学号和密码,然后把我标记的地方改成你的学号和密码就行了。有需要的同学可以直接在下面复制

代码(两段代码都可以,任选,个人推荐第二段)

第一段

#!/bin/bash
#(一)检测是否是登录状态
logger "【CJLU网管】开始定时检测"
KEYWORD=$(curl -s http://baidu.com | grep "NextURL")
if [[ ${KEYWORD} != "" ]]; then
#尚未登录
logger "【CJLU网管】上网登录窗尚未登录"
curl -k "https://portal2.cjlu.edu.cn:801/eportal/?c=ACSetting&a=Login&wlanuserip=null&wlanacip=null&wlanacname=&port=&iTermType=1&mac=000000000000" \
-H "Connection: keep-alive" \
-H "Cache-Control: max-age=0" \
-H "Upgrade-Insecure-Requests: 1" \
-H "Origin: https://portal2.cjlu.edu.cn" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36" \
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" \
-H "Sec-Fetch-Site: same-site" \
-H "Sec-Fetch-Mode: navigate" \
-H "Sec-Fetch-User: ?1" \
-H "Sec-Fetch-Dest: document" \
-H "Referer: https://portal2.cjlu.edu.cn/" \
-H "Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7" \
-H "Cookie: wlanacname=; wlanacip=null" \
--data-raw "DDDDD=__填你的学号&upass=填你的密码&R1=0&R2=&R6=0&para=00&0MKKey=123456" \
--tlsv1 -o Sxinfo.txt
logger "【CJLU网管】上网登录窗未登录,现已登录"
else
#已经登录
logger "【CJLU网管】上网登录窗之前已登录"
fi
logger "【CJLU网管】结束定时检测

第二段

#!/bin/bash
username=__填写你的账号,例如账号是123456,就填__123456;
password=填写你的密码;
# 下面都不要动
echo "使用账号=${username},密码=${password}进行登录测试!";
logger -t "[AUTO LOGIN]" "使用账号=${username} 使用密码=${password} 进行登录测试!";

# set login url
url="https://192.168.100.12:801/eportal/?c=ACSetting&a=Login&wlanuserip=null&wlanacip=null&wlanacname=null&port=&iTermType=1&mac=000000000000&ip=172.28.0.197&redirect=null"
data="DDDDD=${username}&upass=${password}&R1=0&R2=&R6=0&para=00&0MKKey=123456"

# set logout url
logout_url="https://192.168.100.12:801/eportal/?c=ACSetting&a=Logout&wlanuserip=null&wlanacip=null&wlanacname=&port=&iTermType=1"

# test network
status_eth1=`curl -o /dev/null -s -w "%{http_code}\n" baidu.com`;
if [ $status_eth1 == 200 ]
then 
    echo "已连接!";
    logger -t "[AUTO LOGIN]" "已连接!";
else
# logout from current account
    echo "未连接,尝试重连!"
    logger -t "[AUTO LOGIN]" "未连接!尝试重连...!";    

    curl -k $logout_url --insecure
    sleep 3;

# login
    curl -k $url --data $data --insecure

    sleep 3;
    status_eth1=`curl -o /dev/null -s -w "%{http_code}\n" baidu.com`;
    if [ $status_eth1 == 200 ]
    then
        echo "已连接!";
        logger -t "[AUTO LOGIN]" "已连接!";
    fi
fi

上传文件

​ 连接路由器,利用Xshell或者WINSCP等工具把写好的脚本,例如cjlu.sh上传到/ect/storage目录下,用Xshell的话可以用vi编辑器编辑(因为不能用VIM),用WINSCP的话找到/ect/storage目录直接把编好的文件拖进去就好了

恭喜你,成功就在眼前!

最后的一些设置

接下来按图示修改设置

根据图示操作

往下滑,找到这个,点击

​ 变成这样以后,在最下面添加

*/1 7-22 * * * /etc/storage/cjlu.sh (如果你的脚本名字是cjlu.sh的话,这句话的意思是每天早上7点到晚上11点会每隔1分钟启动一次脚本,脚本的具体内容就是检测是否有网,没网则执行重连)

​ 点击应用本页面设置,完工!

Enjoy it!


心有猛虎,细嗅蔷薇