写这篇博客的原因是,我的一个国内的朋友喜欢“优雅”的搭梯子访问google,就是利用ipad/pc上面自带的“HTTP代理”,代理到自己的服务器上,实现“优雅(强迫症)”地登录google。当然,恰好我以前研究过一点该方面的技术,在此顺便分享一下!
使用场景:
- 有一台Ipad(及其它PC)、一台Ubuntu18.04服务器,还有一个shadowsocks账号,希望通过配置ipad(及其它PC)上面的“HTTP代理”,代理到Ubuntu18.04上面,然后登录google以及Youtube等
背景知识:
- 大家应该知道,shadowsocks采用的socks5协议,因此是无法通过“HTTP代理”来请求shadowsocks代理,那么是否可以让用户通过HTTP代理连接上去,然后转发给shadowsocks,再通过shadowsocks代理去请求资源呢?答案很明显是肯定的!
解决方案:
- 在Ubuntu上面搭建shadowsocks代理,同时安装Privoxy代理软件进行请求转发,也就是按照如下示意图进行请求
NOTE:Shadowsocks的安装和配置十分简单,不做阐述
Privoxy安装合配置:
1. 安装
$ sudo apt-get install privoxy
2. 启动/终止服务
- 启动服务:sudo service privoxy start
- 终止服务:sudo service privoxy stop
- 重启服务: sudo service privoxy restart
- 服务状态: sudo service privoxy status
3. 配置文件
- 配置文件位于 “/etc/privoxy/config”,可以根据需要直接在文件末尾添加对应规则即可
- Privoxy默认绑定127.0.0.1 (Localhost),默认端口为8118,此时只能代理本机浏览器的请求,如果想让局域网里的其他机器(如ipad)也能访问,则需要端口8118监听所有IP,即在配置文件行尾添加 “listen-address 0.0.0.0:8118”
4. HTTP代理转发
HTTP代理转发的意思就是:Privoxy把收到的请求转发给另一个HTTP代理,再由该代理访问目标网站
语法:
forward target_pattern http_proxy:port
字段:
- forward:固定字段,表示“HTTP转发”
- target_pattern : 表示只针对特定模式的HTTP请求才进行代理,该字段可以用斜杠“/”代表所有“URL网址”
- http_proxy:port :表示转发给指定的HTTP代理,如果不需要另一个代理(即“直连”),则该字段用点“.”来代替
示例:
forward / 127.0.0.1:8080 #表示对所有的HTTP请求全都转发到本机(127.0.0.1)的8080端口
5. Socks代理转发
Socks代理转发就是:Privoxy把收到的请求转发给socks代理服务器,再由该socks代理服务器访问目标网站(如登google)
语法:
[forward-socks4|forward-socks4a|forward-socks5|forward-socks5t] target_pattern socks_proxy:port http_proxy:port
字段:
- 转发规则:forward-socks4、forward-socks4a、forward-socks5、forward-socks5t
- target_pattern : 表示只针对特定模式的HTTP请求才进行代理,该字段可以用斜杠“/”代表所有“URL网址”
- socks_proxy:port :表示转发给指定的Socks代理
- http_proxy:port:表示江socks_proxy的代理请求再次转发给另外一台HTTP代理服务器(真是高匿名方法呀)
示例:
- forward-socks5 / 127.0.0.1:1080 . #表示对所有的HTTP请求全都转发到本机Shadowsocks代理(127.0.0.1)的1080端口
6. 代理转发规则
由于我们并不希望所有流量都走socks,那样的话连接“百度”,“必应”等国内可以直连的网站,将不得不绕到国外,再从国外绕回来访问,此时便可以使用Privoxy提供代理转发规则,我们可以让那些被“墙”了的网站单独走socks通道,其他的网站直连操作!
- 获得gfwlist(被“墙”名单)
- gfwlist:是由 AutoProxy 官方维护,由众多网民收集整理的中国大陆防火长城的域名屏蔽列表(https://github.com/zfl9/gfwlist2privoxy)
- 根据在github里的操作方法,获得gfwlist.action文件,然将该文件移动到 "/etc/privoxy/"文件夹中
- 最后在"/etc/privox/config"文件末尾添加 "actionsfile gfwlist.action"
7. 实机测试
- 在"/etc/privoxy/config"文件中添加以下两行内容
- listen-address 0.0.0.0:8181 # listen all external IP on port 8181
- forward-socks5 / 127.0.0.1:1080 . # Forward the request (eg. google.com) to localhost socks proxy on port 1080
- 然后就可以用Ipad代理进来,快乐的上google了

评论 (0)