由于项目需要,要在开发板上运行一个http代理服务器,首先尝试了squid的移植,没成功,最终选择了轻量级的http代理服务器tinyproxy 移植成功,下面就记录一下过程。
开发环境:
PC系统:ubuntu10.04
开发板:mini2440,linux3.11.10
http服务器:PC,ubuntu,apache
总体的框架如图:
http服务器ip:192.168.10.10
开发板:wlan0 ip:192.168.10.11;eth0 ip; 192.168.240.34
客户端ip:192.168.240.144
1.http服务器的搭建
注意:这里搭建服务器是为了进行开发板中的某些测试,正常情况下可以直接登录外网的http服务,可以看最下面参考文章中的场景。
搭建过程在这篇博客里面:http://blog.csdn.net/xiaominthere/article/details/21115393
2.tinyproxy移植
2.1源码下载
虽然tinyproxy的源码最新版已经到了1.8.3了,但是在交叉编译时会出错(后来又要用1.8.3的反向代理,所以我又去编译了1.8.3,会有一些修改,过程见后来我的这篇博客http://blog.csdn.net/xiaominthere/article/details/21553521),这里使用1.6.3的,下载网址为:https://files.banu.com/tinyproxy/1.6/tinyproxy-1.6.3.tar.gz
2.2编译
解压到../tinyproxy-1.6.3文件夹下
使用命令./configure CC=arm-linux-gcc --host=arm-linux --target=arm-linux
生成Makefile
然后make,make完之后将../tinyproxy-1.6.3/src/下的tinyproxy和../tinyproxy-1.6.3/doc/下的tinyproxy.conf下载到文件夹下的某个文件比如/tmp文件下
注意:在下载之前要对tinyproxy.conf进行一些修改:
(1)
User nobody
Group nogroup
修改为:
User root
#Group nogroup
(2)
Allow 192.168.1.0/25
可根据修改为:
Allow 192.168.0.0/16
也就是说在192.168.*.*网段内的都会帮你转发,如果在使用过程中遇到网页“Access denied”错误,一般都是这里需要修改
2.3在开发板中运行tinyproxy
cd /tmp
./tinyproxy -d -c ./tinyproxy.conf &(ps:这里最好选择使用&,后台运行,不然的话会阻塞开发板终端界面)
3.客户端设置代理
由于我使用的是firefox,所以设置如下:
编辑->首选项->高级->网络->设置->手动配置代理,IP:192.168.240.34端口:8888
然后在firefox中输入192.168.10.10:80就可以在PC端浏览网页了
参考文档:http://blog.163.com/zhc_mengzhiyi/blog/static/2367910320107382524298/
作者用代理实现了笔记本3G上网,谢谢作者的分享