由于tinyproxy1.6.3里面不支持反向代理,所以编译了最新版的1.8.3,中间遇到了一些问题,记录一下,以防忘记。

环境:

PC系统:ubuntu 10.04

开发板:micro2440,linux3.11.10

网络拓朴:A<-->B<-->C

其中

A的IP:192.168.20.10

B的IP:IP(和A)192.168.20.11,IP(和C)192.168.30.11

C的IP:192.168.30.10

C一般运行Apache服务器,搭建过程可见这篇博客http://blog.csdn.net/xiaominthere/article/details/21115393

1.编译源码

1.1源码下载

去网站https://files.banu.com/tinyproxy/1.8/tinyproxy-1.8.3.tar.gz下载tinyproxy1.8.3的源码,解压

1.2交叉编译

进入目录:cd  tinyproxy-1.8.3

生成Makefile :./configure CC=arm-linux-gcc --host=arm-linux --target=arm-linux --disable-regexcheck --enable-reverse

注意:添加--disable-regexcheck的目的是不让其检查正则表达式的库,不然会报regex库的错;添加 --enable-reverse是为了添加反向代理功能

执行完之后汇报错:configure: error: Test for asciidoc failed. See the file 'INSTALL' for help.

好了,这里需要几步来修改:

1.2.1 ../tinyproxy-1.8.3/configure文件

(1)把“# Check for asciidoc”(包含)到“if test x"$A2X" = x"no"; thenas_fn_error $? "Test for asciidoc failed. See the file 'INSTALL' for help." "$LINENO" 5fi”(包含)的内容注释了,或是删除了

(2)把含“HAVE_A2X_TRUE”的if...fi整段注释掉或是删除

1.2.2执行上面的./configure CC=arm-linux-gcc --host=arm-linux --target=arm-linux --disable-regexcheck --enable-reverse生成Makefile文件

1.2.3 ../tinyproxy-1.8.3/config.h

包含“rpl_”的两句话注释或是删除

1.2.4 ../tinyproxy-1.8.3/src/Makefile

在LDFLAGS后面加-s去掉调试信息,这样生成的目标文件就很小了,LDFLAGS = -Wl,-z,defs -s,其实不加也行,编译出来也就200多k

1.2.5 ../tinyproxy-1.8.3/Makefile

把“SUBDIRS”后面的内容除“src”外全部删除,SUBDIRS = src

1.2.6 make,然后去../tinyproxy-1.8.3/src/tinyproxy../tinyproxy-1.8.3/etc/tinyproxy.conf.in,将tinyproxy.conf.in改为tinyproxy.conf,里面的内容也需要修改:

(1)

User nobody
Group nobody

改为
User root
#Group nobody

(2)

#ReversePath "/wired/"    "http://www.wired.com/"

改为(去掉注释符号#)

ReversePath "/proxy/"    "http://192.168.30.10:80"

这样,当你从A去访问"http://192.168.20.11:8888/proxy/的时候,通过反向代理就能访问到C中的网站http://192.168.30.10:80,但其实C此时和B的IP(和C)可能只是在一个局域网里,这样服务器C就会被代理B(IP:192.168.20.11)“隔离”

(3)

#ReverseOnly Yes

改为(去掉注释号#)

ReverseOnly Yes

(4)

#ReverseMagic Yes

改为(去掉注释号#)

ReverseMagic Yes

(5)

#ReverseBaseURL "http://localhost:8888/"

改为(去掉注释号#

ReverseBaseURL "http://192.168.20.11:8888/"

2.执行

2.1下载到开发板里

通过minicom或是其他方式将tinyproxytinyproxy.conf,下载到一个文件夹里,比如/temp

2.2运行

注意:要使用root运行,建议使用&在后台运行,不然会阻塞显示终端

./tinyproxy -d -c ./tinyproxy.conf &

在第一次运行时可能会报,没有某个文件夹,按照报的错,建立文件夹即可

2.3在A中的浏览器中输入http://192.168.20.11:8888/proxy/就可以访问了

Logo

更多推荐