利用SQUID的加密代理功能+CHROME翻墙教程

1,987 views
Skip to first unread message

brit...@gmail.com

unread,
Jan 16, 2016, 7:43:05 PM1/16/16
to 翻墙论坛

安装Squid:

Squid是一个大名鼎鼎老牌软件,用于做HTTP缓存代理。它非常完善的支持HTTP/1.1 proxy协议,所以我的方法就是:让squid以https的方式提供forward proxy service,然后在客户端机器使用chrome访问被封的网站。
首先,我有一个国外的LINUX VPS主机,我要在它上面安装squid:

从源代码编译:(编译的squid必须是3.3或以上的版本。2.x版好像没有加密代理功能)

yum install openssl openssl-devel  gcc-c++ bzip2 gcc perl
 (如果你的系统是DEBIAN/UBUNTU,则需运行命令:apt-get install openssl  libssl-dev gcc g++ bzip2 perl,否则
编译时,会遇到错误提示:configure: error: library 'crypto' is required for OpenSSL。参见
http://superuser.com/questions/371901/openssl-missing-during-configure-how-to-fix

wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.7.tar.bz2
tar jxvf squid-3.5.7.tar.bz2  
cd squid-3.5.7  
./configure --prefix=/usr --sysconfdir=/etc/squid --libdir=/usr/lib --with-openssl
--enable-basic-auth-helpers="LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB,POP3,getpwnam,squid_radius_auth,multi-domain-NTLM" --with-swapdir=/var/spool/squid --libexecdir=/usr/lib/squid
make  (此步骤耗时15分钟)
make install

配置squid,(修改SQUID的配置文件squid.conf)

然后修改Squid的配置文件。把http_port变成https_port ,修改监听的端口号为443:
https_port 443 cert=/etc/squid/public.crt key=/etc/squid/private.key
其中cert和key分别是网站的HTTPS证书和私钥。在/etc/squid/目录中,运行
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout private.key -out public.crt即可生成public.crt和private.key 。
注意:监听的端口号必须设为443.否则squid启动不了。

chrome

chrome支持https类型的代理。启动chrome的时候在末尾加上--proxy-server=https://vps-ip:443 --ignore-certificate-errors即可。注意,把这里的vps-ip换成你的服务器的ip。
全配置好之后,用chrome浏览器即可翻墙。

遗憾的是,我配置身份认证失败。gary指教一下,你是如何配置身份认证成功的?

brit...@gmail.com

unread,
Jan 17, 2016, 1:40:43 AM1/17/16
to 翻墙论坛, brit...@gmail.com
哦,我知道如何启用用户认证了。
具体方法如下:
yum install httpd (debian/ubuntu系统下,则apt-get install apache2)
这样你的系统上就会出现htpasswd命令。然后在/etc/squid/目录里,运行
htpasswd -cb /etc/squid/users jones fx5rm31s
上述命令将生成密码文件users.(jones和fx5rm31s分别为你指定的用户名和密码)
然后,编辑/etc/squid/squid.conf文件,在http_access deny all那一段的上方,插入:
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/users
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl normal proxy_auth REQUIRED
http_access allow normal
auth_param basic casesensitive off

然后重启squid,即可启用squid的认证机制。

在 2016年1月17日星期日 UTC+8上午8:43:05,brit...@gmail.com写道:

2333

unread,
Jan 17, 2016, 4:04:53 AM1/17/16
to 翻墙论坛, brit...@gmail.com
不错,收藏了,谢谢


在 2016年1月17日星期日 UTC+8上午8:43:05,brit...@gmail.com写道:

安装Squid:

brit...@gmail.com

unread,
Jan 24, 2016, 1:03:25 AM1/24/16
to 翻墙论坛, brit...@gmail.com
修改squid.conf,加入如下内容(加在http_access deny all那段的上方)
request_header_access Via deny all 
request_header_access X-Forwarded-For deny all

重启squid,这样,访问http://ip-check.info页面的START TEST链接,就不会再显示你的linux vps的主机名和你本地的ip。从而保护了你的隐私.


在 2016年1月17日星期日 UTC+8下午2:40:43,brit...@gmail.com写道:

brit...@gmail.com

unread,
Jan 29, 2016, 2:01:45 AM1/29/16
to 翻墙论坛, brit...@gmail.com
一些补充:
第一次修改完squid.conf,

运行squid,会提示:

root@AR:/etc/squid# squid
WARNING: Cannot write log file: /usr/var/logs/cache.log
/usr/var/logs/cache.log: Permission denied
         messages will be sent to 'stderr'.
root@AR:/etc/squid#
解决办法:
root@AR:/etc/squid# chmod 777 /usr/var/logs/
然后,即可正常启动squid:
root@AR:/etc/squid# squid
root@AR:/etc/squid# ps aux|grep squid
(最好运行ps aux|grep squid检测一下squid是否在运行,因为有时你输入squid,回车后,没有任何出错提示,导致你以为squid在运行中,但实际上并未在运行,此时你还得输入squid,回车,这次squid应该在运行中了,你可运行ps aux|grep squid验证一下,已确保squid在运行中。)

建议在kvm vps或xen vps上,搭建squid程序,这样翻墙的速度才快。我也试过搭建在openvz vps上,翻墙速度不理想,影响使用体验。
另外,如果你在使用chrome访问被封的网站时,遇到“域名无法解析”的提示,带参数--proxy-server=https://vps-ip:443 --ignore-certificate-errors重启chrome即可。

在 2016年1月24日星期日 UTC+8下午2:03:25,brit...@gmail.com写道:

brit...@gmail.com

unread,
Jan 29, 2016, 2:05:00 AM1/29/16
to 翻墙论坛, brit...@gmail.com
而且vps的内存最好在500mb以上,我曾在一个内存为256mb的vps上,编译squid失败。

在 2016年1月29日星期五 UTC+8下午3:01:45,brit...@gmail.com写道:

brit...@gmail.com

unread,
Feb 4, 2016, 11:54:17 PM2/4/16
to 翻墙论坛, brit...@gmail.com
如果你的客户机器为mac,则在终端里运行open "/applications/Google Chrome.app/" --args --proxy-server=https://vps_ip:443 --ignore-certificate-errors即可。
你可把open "/applications/Google Chrome.app/" --args --proxy-server=https://vps_ip:443 --ignore-certificate-errors保存为start-chrome-squid.sh,
赋予start-chrome-squid.sh可执行权限:
chmod 755 start-chrome-squid.sh
以后,想要用chrome翻墙时,运行./start-chrome-squid.sh即可.

在 2016年1月29日星期五 UTC+8下午3:05:00,brit...@gmail.com写道:
Reply all
Reply to author
Forward
Message has been deleted
0 new messages