Code Monkey home page Code Monkey logo

cdrcom's Introduction

使用说明


本教程为重庆大学Dr.com路由器分网教程,文中所用第三方客户端源于drcom-generic。仅在重大A区测试通过,其他校区的同学可能需要使用d版简略使用和配置说明中所示方法自行抓包生成客户端。废话不多说以下开始正文。使用*nix的同学请无视此文,dalao们不必在此浪费时间。

本文所需软硬件如下:

路由器: MT7620A

固件: OpenWrt 14.09

客户端:Drcom.py

脑子:请带上脑子阅读本文

准备工作

路由器选择

原则上来讲只要是支持OpenWrt的路由器都可以使用Python版客户端分网。本人仅测试过MT7620A和HG255D,淘宝上这两款路由器价格很便宜,超过60块钱的店就属于黑店,请各位同学擦亮双眼。

比较推荐使用MT7620A,便宜量足,更重要的是固件众多可玩性比较高,本人购买的_优酷土豆路由宝_仅45元。而且淘宝卖家一般会刷入Breed并帮忙代刷系统。

路由器刷机

已经委托卖家带刷机的同学可以跳过。

请参考: 优酷路由宝刷潘多拉固件最详细教程

路由器设置

非办公区的同学请,无视这段。

对于办公区,由于固定IP我们需要进行一些基本的设置才能进行接下来的工作。

连接上路由器网络之后,打开任意浏览器请访问192.168.1.1,输入密码,OpenWrt默认为admin。进入路由器设置页面,点击右侧网络->接口->wan。在右边界面设置界面,协议选择静态地址,点击切换协议,然后输入分配的网络信息,点击保存&应用

客户端文件修改

在真正进行路由器设置之前需要修改客户端文件Drcom.py加账号、密码。此处使用Windows自带记事本打开即可,需要修改的地方位于Drcom.py文件20行处,请在引号内填入相关信息。

# 此处添加你的账号、密码
username='YOURNAME'
password='YOURPASSWORD'

U盘准备

请准备一个已经格式化为FAT32或者exFAT的U盘,将上一步修改好的客户端文件拷贝到U盘根目录中备用。

路由器上的设置

连接路由器

由于Windows并没有终端,我们需要使用putty来ssh连接路由器。对于使用Windows 10的同学鄙人墙裂推荐安装Windows 10自带的Linux子系统,参考:Windows 10 Linux子系统 (wsl)学习手记

输入,路由器的地址192.168.1.1,先择SSH,点击OPEN即可连接路由器。

接下来会弹出一个警告窗口,选择即可。

在putty终端中输入用户名root回车,并输入密码admin回车(这里输入密码光标并不会移动),即可成功连接路由器。

Python安装

在putyy终端中输入Python回车,如果得到下图所示的提示。恭喜你,你的固件中已经带有python,本节可略过,按Ctrl + D退出Python交互模式进行接下来的操作即可。

很遗憾这里我们需要自行安装Python,由于现在路由器并不能连上网这件事似乎还有一些麻烦。这里我们需要手动下载ipk文件

U盘根目录中新建文件夹packages,将本步下载的所有文件放入此目录,然后将U盘插入路由器。稍等片刻后,在putty终端中输入df回车,可以看到我们的U盘被挂载到了/mnt/sda4目录。(容量最大的就是U盘君。)

在终端中输入cd /mnt/sda4/packages,进入刚才下载的ipk文件目录,然后在终端中输入opkg install ./*.ipk,冲上一杯咖啡等待python安装完成。

客户端配置

没有将U盘插入路由器的同学请将U盘插入路由器,参考上一步中的方法,在终端中输入/mnt/sda4回车,进入U盘根目录。

首先,我们需要将客户端文件Drcom.py拷贝到路由器中。在终端中输入cp ./Drcom.py /root/回车,我们就将客户端拷贝到了路由器中。

然后,我们需要将客户端添加到启动项中。在中断中输入vim /etc/rc.local回车,我们启动VIM修改此文件。我们按下i键进入编辑模式,通过方向键移动光标,在exit 0之前添加/usr/bin/python /root/Drcom.py;接着我们需要按下Esc键,进入一般模式,输入:wq退出并保存。至此我们的路由器在重启后已经可以连接上校园网了。如果没有更多要求的同学可以至此为止了。

断线自动重连

也许你和我一样觉得校园网断线之后手动重启路由器是一件很麻烦的事,那么我们可以配置一个脚本来设置断线自动重连。

SSH连接上路由器之后,我们在/root/目录下新建一个文件reconn.sh

# vim reconn.sh

在文件中输入以下内容:(请dalao们不要喷我正则表达式写的稀烂)

#!/bin/sh
l=0
t=$(ping -c 2 114.114.114.119 -W 3 | grep -c seq)
if [ $t -eq $l ]
then
    echo "Network is broken. Routter is trying to reconnect."
    pid_num=$(ps | grep 'Drcom.py' | sed 's/.root.*//g' | sed 's/ //g')
    if [ ! $pid_num ]
    then
        echo "Start Drcom now..."
        /root/Drcom.py
    else
        kill $pid_num
        echo "Restart Drcom now..."
        /root/Drcom.py
    fi
else
    echo "Network is OK."
fi

:wq保存后,我们需要给脚本文件reconn.py添加运行权限。

# chmod +x reconn.py

最后我们在crontab中添加服务。

# crontab -e

在文件中添加:

*/2 * * * * /root/reconn.sh

:wq保存后,路由器就会每2分钟检查一次网络,如果断线将会自动重连。

附录

MT7620A OpenWrt 14.09源

src/gz r2_base http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/base
src/gz r2_management http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/management
src/gz r2_oldpackages http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/oldpackages
src/gz r2_packages http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/packages
src/gz r2_routing http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/routing
src/gz r2_telephony http://downloads.openwrt.org.cn/PandoraBox/ralink/packages/telephony

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.