多语言展示
当前在线:1859今日阅读:99今日分享:20

小米路由器高级玩法:[5]开启squid透明代理

本文介绍通过交叉编译环境编译出squid在小米路由器设置透明代理的完整过程,仅仅需要squid的话可以直接到网盘下载:http://pan.baidu.com/s/1gdpDmdd使用方法可以参考:http://bbs.konotes.org/thread-6708-1-1.html
工具/原料
1

搭建squid交叉编译环境,参考本系列文章第3篇

2

用交叉编译环境编译krb5

方法/步骤1
1

下载squid源码从官方下载最新的 3.4.5,我试过其它版本有问题,只解决了这个版本遇到的问题,其它版本的问题未解决。wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.5.tar.gztar xfz squid-3.4.5.tar.gz; cd squid-3.4.5

2

编译squid# configure 的时候需要去掉认证模块,否则会出错无法通过 使用参数:--enable-auth-basic=none# 另外,configure的时候会报一个krb5的错,所以添加了--with-krb5-config=/usr/local/arm/krb5/bin/krb5-config,krb5环境的编译参考:交叉编译krb5的文章# 即便加上了这个,还是报错 krb5.h找不到,实际上是有的,所以修改一下configure文件吧:vim configure{ $as_echo '$as_me:${as_lineno-$LINENO}: checking for broken Heimdal krb5.h' >&5$as_echo_n 'checking for broken Heimdal krb5.h... ' >&6; }squid_cv_broken_heimdal_krb5_h=/usr/local/arm/krb5/include/krb5.hif ${squid_cv_broken_heimdal_krb5_h+:} false; then :  $as_echo_n '(cached) ' >&6# 注意到,在24872行的位置添加了:squid_cv_broken_heimdal_krb5_h=/usr/local/arm/krb5/include/krb5.h 指定了krb5的头文件位置下面开始编译./configure --prefix=/userdisk/mine/squid --host=arm-xiaomi-linux-uclibcgnueabi --with-krb5-config=/usr/local/arm/krb5/bin/krb5-config --enable-auth-basic=none --enable-epollmake -j8中途还是会有一个报错,大概是这样的:make[1]: Entering directory `/root/c/squid-3.4.5/src'·······arm-xiaomi-linux-uclibcgnueabi-g++ -o cf_gen ./cf_gen.cc -I. -I../include/ -I../src./cf_gen cf.data ./cf.data.depend/bin/bash: ./cf_gen: cannot execute binary filemake[1]: *** [cf_parser.cci] Error 126make[1]: Leaving directory `/root/c/squid-3.4.5/src'make: *** [all-recursive] Error 1说cf_gen无法执行,编译使用的是xiaomi环境的gcc编译的软件当然没办法执行了,需要先去掉交叉编译环境:unset CC CXX将squid源码解压到其它目录,用ubuntu系统的gcc编译一次tar xfz squid-3.4.5.tar.gz;cd  squid-3.4.5./configurecd srcmake -j8稍微编译一会就可以ctrl+c 中断编译过程就已经编译出来了,将编译出来的cf_gen 拷贝到xiaomi的交叉编译环境对应的/root/c/squid-3.4.5/src 目录里面,source /etc/profile继续make -j8make intstall

推荐信息