原创文章,转载请注明出处
https://qiedd.com/

路由器选择

目前可刷入Openwrt的路由器有很大一部分都是MTK的,市面上常见一般是 MT7620 与 MT761

我手上关于MTK的路由有三台小米mini(MT7620) 、三台Newifi3 D2(MT7621)、R6800(MT7621)

虽然说 Newifi3 d2(新三) 无线方面比较弱鸡,但是它有 32M 的 ROM 和 512M 的 RAM,配置来说比较香,宿舍用的话足够了,现在大概90左右能拿下?(闲鱼)

固件编译

请参考我的上一篇文章,编译示例中已写到

这是我自己用于测试mentohust而编译的

小米mini(R1C) 点我下载
Newifi3 d2(新三)点我下载

若你想使用闭源驱动的Pandorabox,可在此处下载

Newifi3 d2(新三)
R19.02:点我下载 备份
R20.3.8:点我下载 备份

小米mini(R1C)
R18.10:点我下载 备份

网件 R6800:点我下载 备份

固件刷入

仅供参考,其他路由器刷机教程可在恩山中找

Breed官方下载:点我跳转

小米mini(R1C):点我跳转
Newifi3 D2(新三):点我跳转
网件 R6800:点我跳转
!!R6800无需使用breed,官方自带的bootloader已经非常好用了

mentohust编译

这里使用的源码来自:
https://github.com/shanzhaozhen/mentohust_for_zqu

编译环境 Ubuntu 18.04

不建议在root下编译,请在user环境下操作!

若你在VPS上编译,请先创建用户

#创建用户
useradd -m -g users -s /bin/bash username

#更改用户密码
passwd username

#登陆进用户
su username

#进入用户的root文件夹
cd

开始编译

#安装编译环境
sudo apt install make cmake autoconf automake gcc flex bison autopoint

#下载源码
git clone https://github.com/shanzhaozhen/mentohust_for_zqu

#进入文件夹
cd mentohust_for_zqu

#防止报错
cp README.md README

#检查环境
./autogen.sh

#生成Makefile
./configure

#编译
make

mentohust在 src\ 中,但是上面的仅能在x86_64的Linux系统中使用
若想在路由器上使用则需要交叉编译

交叉编译

首先我们需要SDK,你可以去Openwrt官网下载
这里我提供几个

Openwrt
MT7620:点我下载
MT7621:点我下载
X86_64:点我下载

Pandorabox
MT7620:官方下载 备份
MT7621:官方下载 备份

以MT7621为例,为Pandorabox编译mentohust

请填写自己的路径,不要照抄!

#下载SDK
wget http://downloads.pangubox.com:6380/pandorabox/19.02/targets/ralink/mt7621/PandoraBox-SDK-ralink-mt7621_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-02-01-git-0231ad4b5.tar.xz

#解压
tar Jxvf PandoraBox-SDK-ralink-mt7621_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-02-01-git-0231ad4b5.tar.xz

#设置变量
export STAGING_DIR=/home/username/PandoraBox-SDK-ralink-mt7621_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-02-01-git-0231ad4b5/staging_dir/toolchain-mipsel_1004kc+dsp_gcc-5.5.0_uClibc-1.0.x/bin

export PATH=$PATH:/home/username/PandoraBox-SDK-ralink-mt7621_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2019-02-01-git-0231ad4b5/staging_dir/toolchain-mipsel_1004kc+dsp_gcc-5.5.0_uClibc-1.0.x/bin

首先需要编译 Libpcap
请先去官网下载 Libpcap

这里以 Libpcap 1.9.1为例

#安装编译环境
sudo apt install make cmake autoconf automake gcc flex bison autopoint

#下载libpcap
wget https://www.tcpdump.org/release/libpcap-1.9.1.tar.gz

#解压
tar zxvf libpcap-1.9.1.tar.gz

#进入文件夹
cd libpcap-1.9.1

#生成Makefile
./configure --host=mipsel-openwrt-linux  --with-pcap=linux

#编译
make

此时会在本目录下生成一个libpcap.a,接下来编译 Mentohust 会用到

#下载源码
git clone https://github.com/shanzhaozhen/mentohust_for_zqu

#进入文件夹
cd mentohust_for_zqu

#防止报错
cp README.md README

#执行
./autogen.sh

#生成Makefile
./configure --host=mipsel-openwrt-linux --with-pcap=/home/username/libpcap-1.9.1/libpcap.a

#编译
make

在 src 文件夹中会生成一个二进制的 Mentohust 文件
接下来就是将其上传到路由器了

将Mentohust上传至路由器

建议使用Winscp这个应用上传

路由器开机

进入路由器默认地址 http://192.168.1.1

Openwrt
默认帐号:root
默认密码:password

Pandorabox
默认帐号:root
默认密码:admin

使用SCP协议登录进路由器

Mentohust 上传至 /usr/sbin

通过SSH登录进路由器
可在Windows的CMD中登录

ssh root@192.168.1.1

给Mentohust增加执行权限

chmod +x /usr/sbin/mentohust

#进行测试
mentohust -h

使用Mentohust

对于锐捷认证,首先需要修改路由器MAC地址
两种方法
一种是在breed中修改,另一种是在Openwrt中修改

breed中修改物理地址

以 Newifi3 d2 为例

断电,网线接到wan口,按住路由器reset键
通电,等待路由器等闪烁
就可以松开reset键了

这时候电脑浏览器进入 http://192.168.1.1

然后按下图位置修改成你的MAC地址

在 Openwrt/Pandorabox 中修改物理地址

进入Luci

网络->接口->编辑WAN口

然后在高级设置中->重设MAC地址

保存并应用,最后重启试一下

Pandorabox 修改软件源

由于mentohust需要用到Libpcap,而Pandorabox的固件没有提供,需要手动下载
在使用之前需要修改软件源

Openwrt固件无需理会
如何修改?

使用Mentohust进行认证

在 Luci的 网络->接口 处,将wan口协议修改为DHCP

注意事项
选项与参数中间不要加空格!!
某些学校需要用到的文件配置为GBK,因此需要使用iconv进行转换
可使用 mentohust -h 自行查看参数
以下为示例,请勿照抄

首先使用-w保存文件

#认证参数
mentohust -u帐号 -p密码 -n网卡 -a1 -d1 -v版本号 --service学生用户 -w

#或者直接手动设置
mentohust

认证参数详解:
网卡为你的认证网卡,是wan口,可使用命令 ifconfig 查看
-a1 为组播地址,选择锐捷
-d1 为获取 IP 的方式,如何获取的就如何选择
-v 你的客户端版本号,填数字,如 -v4.44
–service 你的用户类型,请自行查看在win上认证成功后的用户类型(如:学生用户)
-w 将参数保存至 /etc/mentohust.conf

如果以上参数正确,但无法认证成功,可能是因为认证的服务端使用了GBK编码,而mentohust默认使用 UTF-8 ,因此需要转换文件编码

Openwrt上的iconv我不会用,我是直接在Arch上转换再上传到路由器 /etc 的

#转换文件编码
iconv -f UTF-8 -t GBK mentohust.conf -o mentohust.conf.GBK

#删除原来的配置文件
rm /etc/mentohust.conf

#重命名
mv mentohust.conf.GBK mentohust.conf

#查看文件编码
file mentohust*

然后进行认证

#直接使用mentohust指令进行认证,不要加 -w
mentohust

#若认证成功,可放在后台运行
mentohust -b3

Mentohust开机启动

编辑 /etc/rc.local 将mentohust指令丢进去

示例

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

mentohust -b3

exit 0

macvlan创建

负载均衡

Mentohust多帐号认证

按照上面两步创建好 macvlan 负载均衡

首先我们创建一个文件,把所有的命令丢进去

touch boot.sh

然后把创建macvlan,以及锐捷认证的命令都丢进去

我们只要删除 /var/run/mentohust.pid
即可进行下一个帐号的认证
但是需要注意时间间隔!!

#!/bin/bash

mentohust -u123456 -p123456 -neth0 -a1 -d1 -v4.44 -b3
sleep 10
rm -rf /var/run/mentohust.pid
sleep 5

然后我们把所有需要启动的都丢进去,以下是例子

#!/bin/bash
#编译时你得选择安装bash

#如果有luci-app-syncdial,请使用那个创建vwan,不需要以下两步
ip link add link wan name macvlan1 type macvlan
ifconfig macvlan1 up

ip link add link wan name macvlan2 type macvlan
ifconfig macvlan2 up

#等待macvlan启动,并等待其获取IP,请根据实际情况修改
sleep 30

mentohust -u123456 -p123456 -neth0 -a1 -d1 -v4.44 -b3
sleep 10
rm -rf /var/run/mentohust.pid
sleep 5

mentohust -u123456 -p123456 -nmacvlan1 -a1 -d1 -v4.44 -b3
sleep 10
rm -rf /var/run/mentohust.pid
sleep 5

mentohust -u123456 -p123456 -nmacvlan -a1 -d1 -v4.44 -b3
sleep 10
rm -rf /var/run/mentohust.pid
sleep 5

保存后,给文件加执行权限

chmod +x boot.sh

然后再把 boot.sh 设置为开机启动

vim /etc/rc.local

#请按照自己设定的文件文件路径来
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

/root/boot.sh

exit 0


38 条评论

Gengsir · 2020年9月28日 下午6:20

大佬能发一份编译好的mentohust可以吗?谢谢!!灰常感谢!!

eao · 2020年10月4日 下午11:24

大佬厉害!! 学习了

eao · 2020年10月10日 下午4:38

大佬你好,请问一下,在执行
./configure –host=mipsel-openwrt-linux –with-pcap=/home/username/libpcap-1.9.1/libpcap.a
时候提示没有此文件,
查看目录时候发现里面存在 configure.ac和makefile.am,
请问一下如何生成 configure文件从而生成makefile呢

    Lordpenguindd · 2020年10月10日 下午8:17

    咳咳,这里漏写了一步要先执行 ./autogen.sh

    –with-pcap=/home/username/libpcap-1.9.1/libpcap.a
    这里要写你上一步编译出来的libpcap.a 的路径,不用照抄

      eao · 2020年10月10日 下午9:21

      好滴好滴username是改好的,

      执行 ./autogen.sh时候,提示
      ./autogen.sh: 4: ./autogen.sh: autopoint: not found;
      以及
      configure. ac: 69: warning: macro ‘ AM GNU GETTEXT’ not found in library
      configure. ac:70: warning: macro ‘ AM GNU GETTEXT VERSION’ not found in library

      之后执行 ./configure –host=mipsel-openwrt-linux –with-pcap=/home/test/libpcap-1.9.1/libpcap.a 时候,提示
      ./confiqure: line 4933: syntax error near unexpected token external
      /configure: line 4933: AM GNU GETTEXT (external)

      打开configure 4933 行 内容如下:
      4933 AM_GNU_GETTEXT(external)
      4944 AM_GNU_GETTEXT_VERSION(0.16.1)

      大佬当时你有遇到这个问题吗,
      环境是 Ub 18.04 ,git时候是使用普通用户 test

        Lordpenguindd · 2020年10月10日 下午9:30

        autopoint: not found
        装上去试试

        eao · 2020年10月10日 下午9:32

        通过 sudo apt-get install autopoint 解决了下面这个问题
        ./autogen.sh: 4: ./autogen.sh: autopoint: not found;
        但还是有
        configure. ac: 69: warning: macro ‘ AM GNU GETTEXT’ not found in library
        configure. ac:70: warning: macro ‘ AM GNU GETTEXT VERSION’ not found in library

          Lordpenguindd · 2020年10月10日 下午9:57

          刚刚开了台vm试了一下,果然弄完再写就忘了好多东西没写上去

          有以下依赖要装
          apt install make cmake autoconf automake gcc flex bison

eao · 2020年10月10日 下午10:18

哇,感谢大佬,还专门开个电脑试。。
已安装好 make cmake autoconf automake gcc flex bison 等
可是在执行到 aclocal 时候 还是出现 无法找到宏这个错误,,
configure. ac: 69: warning: macro ‘ AM GNU GETTEXT’ not found in library
configure. ac:70: warning: macro ‘ AM GNU GETTEXT VERSION’ not found in library

    Lordpenguindd · 2020年10月10日 下午10:29

    刚刚搞错了,再试试安装gettext

      eao · 2020年10月10日 下午10:35

      可以了! configure 没有报错了!

      eao · 2020年10月10日 下午10:51

      /(ㄒoㄒ)/ 刚才编译好了,1000多kb (本来是93kb的可以通过认证了),丢去路由器上ARCH17(固件是潘多拉),认证时候line 3: syntax error: unexpected “(”
      可能是 不太对了。。。
      在网上查到的是修改 src下源码里面的代码 myconfig.c 注释掉`initConfig`函数中的`checkRunning(exitFlag, daemonMode);` 这一行 ,才可以多线程运行mentohust进行多拨,现在即使我删除了pid文件,它还是会提示程序已经在运行,
      所以想注释一下这个源码,再编译出来试一下多拨,
      大佬可以帮帮忙编译一个吗。。
      SDK :http://pangubox.com:6380/pandorabox/19.02/targets/qualcomm/ipq40xx/

eao · 2020年10月10日 下午10:32

好的,, 感谢大佬了!,我还是直接重新开一台vultr试试吧!
大佬你放个打赏码出来吗,想为知识付点费,,,

    eao · 2020年10月10日 下午10:38

    ..e好的吧,同校的??? 大佬你是GS的吗。。

      Lordpenguindd · 2020年10月10日 下午10:49

      gswifi?不是,只是分享下经验罢了
      目前mentohust貌似不能完美伪装成win的客户端,在sam上认证的客户端信息是SuForGSN:6.84
      但是正常客户端的认证信息的SuA:6.84
      我尝试使用minieap 0.92进行认证,无论怎么改version-str,在sam上的认证信息都是LinuxSu:1.31
      mineap 0.93还没尝试
      在锐捷文件夹下的SuConfig.txt有完整的客户端信息,你可以去看看

wenda · 2021年3月27日 下午5:54

博主,这问题试遍了评论去的办法和百度的办法还是解决不了
系统是虚拟机里的乌班图20.04 64位的
checking for dlsym in -ldl… (cached) yes
./configure: line 4900: syntax error near unexpected token `external’
./configure: line 4900: `AM_GNU_GETTEXT(external)’

失踪人口 · 2021年10月21日 下午10:47

大佬,
mentohust支不支持arm v7架构 还有minieap能不能破解锐捷v2

    Lordpenguindd · 2021年10月21日 下午10:58

    mentohust 支持 arm v7
    minieap 理论上是可以破解锐捷v2的

      失踪人口 · 2021年11月4日 下午3:14

      大佬,你分享的mentohust文件是mentohust .bin 但是要在路由器上运行的是mentohust啊还是mentohust.bin是可以运行的。我试了按照教程是没法运行的,大佬求教我实在不会了

        Lordpenguindd · 2021年11月4日 下午3:35

        ./mentohust -h
        少了点东西,抱歉
        顺便问一下你路由器是什么

          失踪人口 · 2021年11月4日 下午3:39

          小米mini

失踪人口 · 2021年11月7日 上午10:12

大佬刷了你的mini的op好像砖了现在蓝灯常亮我没有刷breed

gfm · 2022年5月5日 下午7:26

大佬,生成的mentohust文件有1.3M大,这个对吗?

ipjplio · 2022年7月16日 上午8:23

请问一下 –service 应该怎么设置,我想使用锐捷联通认证,一直没成功

    Lordpenguindd · 2022年8月20日 上午5:14

    锐捷的安装目录下会有一些配置文件,你可以在里面找找

liqi · 2022年9月16日 下午6:24

花了2天时间终于实现了多播,but 测速发现网速根本不叠加,不知道是不是学校后台限制,用的双线多播,两个不同账号都认证成功,两条网线单插哪条都能上网,两条一起插网速不叠加,负载均衡1:1两个wan口都绿,不知道我操作哪里还有问题,希望成功的指正

    Lordpenguindd · 2022年9月16日 下午6:42

    毕业了,很多东西都忘了,双线多播咱也没试过

    如果固件版本较新,speedtest多线测试和同时ping -i [网卡名] 测试都通过的话,那你可以能需要把负载均衡的配置全部删掉然后去文件里面手动配置了

chaozheng · 2023年5月3日 下午5:50

大佬,R20.3.8也用19.02的sdk编译吗?

    Lordpenguindd · 2023年5月3日 下午6:04

    跟着版本走比较好

      chaozheng · 2023年5月8日 下午3:41

      好的,感谢。但是pandorabox官方最高就到19.02,R20.3.8的版本是恩山的大佬做的,要怎么找sdk?
      在恩山论坛找到了第一次发布的的帖子https://www.right.com.cn/forum/thread-3197160-1-1.html,您看下有线索吗。

        Lordpenguindd · 2023年5月9日 上午12:00

        http://downloads.pangubox.com:6380/
        这里找一下, 另外 R20.3.8 似乎是直接用了 Lean 的源码? (不太确定)

        另外, PandoraBox 实在是太老了, 建议直接拿 lean 的源码编译, 反正也集成了闭源驱动

OnEvent · 2023年10月7日 上午12:04

执行 rm -r /var/run/mentohust.pid 的时候提示 No Such File

    Lordpenguindd · 2023年10月7日 上午12:15

    没起来或者现在 op 的 pid 不在这个目录下

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据