现在大部分人都是用ssh tunnel来搭建socks5代理,其实这种方式效率并不高,ssh tunnel并不是为了做代理而存在的。一个比较好的方法是加密squid配合stunnel实现http代理。下面介绍在Archlinux下配置https squid和windows下配置stunnel的方法。
1.首先是Archlinux下安装squid。注意现在squid在AUR里,需要先用makepkg生成yaourt的安装包然后安装。此步骤不在本文讨论范围内。
2. 配置squid,主要包括添加访问权限,以及配置https监听模式。
2.1 创建证明书文件
然后将yourdomain.com.crt和yourdomain.com.key拷贝到/etc/squid目录下(或其他目录)。
2.2 添加squid用户
这一步是生成用户名密码对,同时将密码用hash函数处理。用于squid的用户认证。
2.3 配置squid.conf
下面给出与本文要实现功能有关的配置参数:
其中,MyRealm可以随便起名,XXXXX是你要squid监听的端口号。同时要注意”http_access deny all”这行要放在所有其他的http_access语句之后。
2.4 启动squid
Archlinux下可以用下面命令启动squid:
然后运行下面命令检查squid的配置是否正确,如果正确则无任何返回信息:
3. 配置stunnel
下面开始配置Windows端(客户端)的stunnel,将https流量转换成http,实现http代理功能。
编辑stunnel.conf,注释掉所有行,然后加入下面配置参数:
1
2
3
4
|
client
=
yes
[ssl2http]
accept
=
127.0.0.1:8080
connect
=
xxx.xxx.xxx.xxx:XXXXX
|
其中,xxx.xxx.xxx.xxx是运行squid程序的机器IP,XXXXX是之前配置的监听端口号。
4. 测试
现在大功告成,将浏览器配置成使用地址为“127.0.0.1”,端口为8080的HTTP代理,然后就去twitter、facebook测试一下吧!
如有疑问,欢迎回复讨论。