引子
MentoHUST参数丰富,以最大程度适应不同学校的不同锐捷认证环境。本程序使用配置文件(/etc/mentohust.conf)保存参数,虽然该配置文件是还算标准的ini格式文件,并不复杂,但还是有人因多加空格或;导致配置出现问题,所以不建议手工修改配置文件来设置参数。
获取帮助信息
打开终端,输入以下命令
sudo mentohust -h
将显示如下内容:
欢迎使用MentoHUST 版本: 0.3.4
Copyright (C) 2009-2010 HustMoon Studio
人到华中大,有甜亦有辣。明德厚学地,求是创新家。
Bug report to
http://code.google.com/p/mentohust/issues/list
用法: mentohust [-选项][参数]
选项: -h 显示本帮助信息
-k -k(退出程序) 其他(重启程序)
-w 保存参数到配置文件
-u 用户名
-p 密码
-n 网卡名
-i IP[默认本机IP]
-m 子网掩码[默认本机掩码]
-g 网关[默认0.0.0.0]
-s DNS[默认0.0.0.0]
-o Ping主机[默认0.0.0.0,表示关闭该功能]
-t 认证超时(秒)[默认8]
-e 心跳间隔(秒)[默认30]
-r 失败等待(秒)[默认15]
-l 允许失败次数[0表示无限制,默认8]
-a 组播地址: 0(标准) 1(锐捷) 2(赛尔) [默认0]
-d DHCP方式: 0(不使用) 1(二次认证) 2(认证后) 3(认证前) [默认0]
-b 是否后台运行: 0(否) 1(是,关闭输出) 2(是,保留输出) 3(是,输出到文件) [默认0]
-y 是否显示通知: 0(否) 1~20(是) [默认5]
-v 客户端版本号[默认0.00表示兼容xrgsu]
-f 自定义数据文件[默认不使用]
-c DHCP脚本[默认dhclient]
-q 显示SuConfig.dat的内容(如-q/path/SuConfig.dat)
例如: mentohust -uusername -ppassword -neth0 -i192.168.0.1 -m255.255.255.0 -g0.0.0.0
-s0.0.0.0 -o0.0.0.0 -t8 -e30 -r15 -a0 -d1 -b0 -v4.10 -fdefault.mpf -cdhclient
注意:使用时请确保是以root权限运行!
>> 认证已退出。
各参数详细解释
-h 或 -?:
显示帮助信息,也就是上面的内容。
-k:
MentoHUST支持daemon运行(也就是认证成功后可以关闭终端而认证不会中断),当进入daemon运行方式后,是不能像没有进入这一模式时一样通过Ctrl+C退出的,这时如果需要退出就可以使用以下命令来退出认证。
sudo mentohust -k
或者
pkill mentohust
-w:
在命令行参数中指定的参数默认不会保存到配置文件,如果需要保存,请加上该参数,例如下面这个命令将会把用户名更新为hust,密码更新为123456。
sudo mentohust -uhust -p123456 -w
-u,-p,-n:
分别指定用户名、密码、网卡,这三个参数如果不指定就会自动判断是否需要输入。
-i,-m,-g,-s:
用于静态IP用户指定学校分配的IP、子网掩码、网关、DNS,其中好像只有IP会影响认证是否成功(要想正常上网,还必须要在NetworkManager中设置IP、子网掩码、网关、DNS,在NetworkManager中设置好后在mentohust中可以不设置这些)。 对于动态IP用户,这些参数无效。
-o:
指定智能重连时用来ping的目标IP,例如未认证时IP1.2.3.4无法ping通,认证成功后可以ping通,就可以加上参数-o1.2.3.4,当掉线且未收到服务器下线通知时会在掉线1分钟之内重连(除非网络不好,一般不会掉线,掉线且收到服务器下线通知时会在掉线后立即重连)。
-t:
指定认证时多少秒后仍未收到服务器回应则重启认证,一般保持默认即可。
-e:
指定认证成功后每隔多少秒向服务器发送一次数据以表明自己仍然在线,一般保持默认即可。
-r:
由于有些学校会规定认证失败后一定时间内不允许再次认证,所以在这期间不论发多少数据服务器都不会响应,为了减少这种垃圾数据,MentoHUST会在认证失败后等待一段时间或者服务器向客户端请求数据时再认证,这个时间就由此参数指定,一般保持默认即可。 -r15并不是说在认证失败后15秒才会再次认证,如果在15秒内服务器发来一个数据包要求开始认证,MentoHUST会放弃等待,立即开始再次认证。
-a:
指定组播地址或客户端类型,-a0标准 -a1锐捷私有,这两个分别对应于锐捷中的标准和私有,有些学校只能用标准,有些学校只能用私有,所以如果提示“找不到服务器”而网卡并没有选错,就检查是不是这里设置错了。-a2表示将MentoHUST用于赛尔认证(赛尔的用-a0标准也行)。
-d:
指定DHCP方式,使用动态IP的同学应该在这里正确设置,一般不是1就是2,如果用3认证成功却无法上网,请改成1试试。使用静态IP的同学应该将这里设为0。
-b:
指定后台(daemon)运行方式,-b0不后台运行,这时认证成功后不能关闭终端;-b1、-b2后台运行,前者看不到输出,后者保留输出;-b3后台运行并将输出保存到/tmp/mentohust.log,可以随时打开该文件查看输出。
-y:
指定是否显示通知(notify),-y0不显示,1~20显示,其中数字指定通知持续时间(由于Ubuntu采用了新的通知机制,所以只在Fedora下时间才有效)。当该参数不为0且系统中有libnotify.so.1(几乎所有系统都有该文件),可显示如下效果的通知(上Ubuntu,下Fedora)
-f:
由于MentoHUST内置数据是与xrgsu兼容的(即如果用xrgsu能认证成功,用MentoHUST不设置这个参数就也能认证成功),有些学校关闭了xrgsu的认证(一般提示“不允许使用的客户端类型”),这时可以将8021x.exe和W32N55.dll复制到/etc/mentohust目录,如果认证失败,再将SuConfig.dat复制到/etc/mentohust目录一般即可认证成功。 如果还失败就需要抓包并指定该参数。到最新下载列表下载MentoHUST抓包工具,然后运行其中的MentoHUSTTool,视情况勾选是否“集成8021x.exe”和“集成W32N55.dll”(建议勾选),点击“开始”,运行“锐捷”,捕获锐捷认证时的数据包,等待抓包结束保存文件。 然后在Linux下将数据文件路径指定在这个参数中,如果没有勾选“集成8021x.exe”和“集成W32N55.dll”,则还要将8021x.exe与W32N55.dll复制到数据文件所在目录,接下来就可以开始认证了。认证失败的话,再将SuConfig.dat也复制到该目录即可认证成功。
-c:
指定动态IP用户DHCP时运行的脚本,一般保持默认即可。如果觉得这个输出太多影响和谐,可以改为-cdhclient>/dev/null。 MacOS用户可尝试使用dhcping代替dhclient来获取IP,一般下载并复制dhcping到/usr/bin目录即可。
-q:
很多锐捷用户不清楚他们的DHCP方式是什么,本参数用于显示解密后的锐捷SuConfig.dat文件内容。假如锐捷所在目录为/RuijiePath
mentohust -q'/RuijiePath/SuConfig.dat'
配置及认证例子
例子一
某静态IP(192.168.1.10)用户,用户名hust,密码123456,希望ping192.168.1.254智能重连,同时deamon方式保存输出到文件。
首先在NetworkManager中配置好IP、网关、掩码、DNS等信息,然后运行:
sudo mentohust -uhust -p123456 -o192.168.1.254 -b3 -w
下次认证时只需运行这个命令:
sudo mentohust
若想退出认证,则运行这个命令:
sudo mentohust -k
例子二
某动态IP用户(二次认证),用户名hust,密码123456,使用数据文件/etc/mentohust/3_73.mpf
首先运行:
sudo mentohust -uhust -p123456 -d1 -f/etc/mentohust/3_73.mpf -w
下次认证时只需
sudo mentohust
若想退出认证,则运行这个命令:
sudo mentohust -k
例子三
某用户已经设置好了相关参数,但需要临时使用用户名为hust@hust,密码与原密码相同的账号认证
这时运行如下命令:
sudo mentohust -uhust@hust