RT, 首先感谢https://code.google.com/p/mentohust/大牛们提供的mentohust 我只是编译下......囧
还是那句话,管它协议是GPL 还是 BSD,但是请尊重开源精神,否则 请绕道
------github 镜像https://github.com/liuqun/mentohust 给打不开Google的人,不是我的clone的,也不是我的github账号
----------------------------------------------------------正文开始---------------------------------------------------------------------
先决条件:你有or准备入手一台能够正常运行ddwrt/openwrt/tomato等第三方rom的路由器,如果没,请直接跳到文章结尾处。
如果你有路由器,但是懒的自己编译,那就用我编译好的文件吧
适用于BCM47XX BCM53XX RT305X等处理器
http://download.csdn.net/download/warriorpaw/4734127
如果遇到锁文件问题
ddwrt、tomato 固件请确定/JFFS目录可写
openwrt固件请
mkdir -p /jffs/tmp
mkdir -p /jffs/etc/mentohust
创建需要的目录
我几个路由器都主要使用ddwrt,就没再单独编一份适用于openwrt的,但已测试创建目录后可用
若不喜欢,请自行编译
1、准备
ubuntu12.04(我喜欢ubuntu,其他的也可以吧)
安装编译需要用到的包
sudo apt-get install build-essential bison flex zlib1g-dev libncurses5-dev subversion quilt intltool ruby fastjar unzip gawk
下载对应你路由器cpu的交叉编译链 下载地址:http://downloads.openwrt.org/backfire/10.03.1/
比如HG320路由 BCM5358的CPU MIPSEL构架 2.6内核的 就用brcm47xx/ 里面的Toolchain
如果是BCM5354系的CPU 用的是2.4内核固件,那么需要注意下,因为需要使用brcm-2.4/ 里面的Toolchain
但是这个Toolchain有bug不能用的,官方在SVN里修正源代码了,没编译,想用最新就自己参照文章末尾的链接去编译
不过不想自己编译的话OpenWrt-SDK-brcm-2.4-for-Linux-i686.tar.bz2 直接用这个老的也行
下载libpcap源码 http://www.tcpdump.org/
下载mentohust源码 svn checkout http://mentohust.googlecode.com/svn/trunk/ mentohust
2、配置交叉编译环境
解压下载的Toolchain
然后配置环境变量
export PATH=$PATH:/home/paw/mipsel-gcc-4.3.3/usr/bin/这个 别照抄,按照自己解压的位置使用的版本自己改下参数
export CC=mipsel-openwrt-linux-gcc
export CPP=mipsel-openwrt-linux-cpp
export GCC=mipsel-openwrt-linux-gcc
export CXX=mipsel-openwrt-linux-g++
export RANLIB=mipsel-openwrt-linux-uclibc-ranlib
export ac_cv_linux_vers=2.6.24
export LDFLAGS="-static"
export CFLAGS="-Os -s"
(2012/10/19补充:GCC 4.6 需要STAGING_DIR环境变量,就是指向toolchain所在目录,按照上面的例子就是export STAGING_DIR=/home/paw/mipsel-gcc-4.3.3/)
3、编译libpcap动态连接库
解压libpcap-1.3.0.tar.gz
cd进去
生成Makefile
./configure --host=mipsel-linux --prefix=/home/paw/work/ --with-pcap=linux
如果这里出错,返回2请检查环境变量
make
这里会编译失败,具体出的什么错,没弄明白,但是我们需要的libpcap.a已经生成
cp走 不管它了
4、编译mentohust
cd进刚SVN生成的目录
这里需要修改一下源代码,因为源代码是为桌面版PC写的,它的配置文件、数据文件等路径都是指向/etc/,但是在ddwrt路由器上这个路径是只读的
修改下面2个文件的4个变量 如下
myconfig.c
static const char *CFG_FILE = "/jffs/etc/mentohust.conf"; /* 配置文件 */
static const char *LOG_FILE = "/jffs/tmp/mentohust.log"; /* 日志文件 */
static const char *LOCK_FILE = "/jffs/tmp/mentohust.pid"; /* 锁文件 */
myfunc.c
static const char *DATAFILE = "/jffs/etc/mentohust/"; /* 默认数据文件(目录) */
保存
自动生成configure
sh autogen.sh
生成Makefile
./configure --host=mipsel-linux --disable-encodepass --disable-notify --prefix=/jffs --with-pcap=~/libpcap.a
--with-pcap=后面就是3生成的libpcap.a 拷贝到的路径
如果这里出错,返回2请检查环境变量
make
如果顺利,用在你路由器上的二进制文件已经生成
上传到路由器
使用方法参照 http://wiki.ubuntu.org.cn/%E9%94%90%E6%8D%B7%E3%80%81%E8%B5%9B%E5%B0%94%E8%AE%A4%E8%AF%81MentoHUST
如果如上图所示已成功认证
把命令放在路由器开机脚本里面 以后只要打开路由器 想给多少人共用都可以
至于速度,看下图,学校没限速,100M跑满
OVER enjoy it !
PS:没路由器啊, 那就在电脑上装个UBUNTU吧 用Google code上编译好的大便包吧 然后共享上网 电脑要一直开着哦。。。。