NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

[复制链接]
2672 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
原因:

感觉原来的方案有些网站和下载时候会走VPS的流量,这样长期下来就有点伤不起啊,尤其像我们这样学生狗。有人建议直接暴力分流,blacklist的形式,但我觉得维护这个list太麻烦,且还是域名的形式。利用PAC规则文件来进行流量的分发这也不错哦!现在PAC规则自己不用维护,像Autoproxy那些在线生成PAC规则文件的网站不少,还有一些个人维护的PAC,例如:曲径等。自己也可以写个一个,作为爱折腾的我来说写一个未尝不是一件很有趣的事。来讲重点吧!

PAC:

代理自动配置(英语:Proxy auto-config,简称PAC)是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。
一个PAC文件包含一个JavaScript形式的函数“FindProxyForURL(url, host)”。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理其或者直接访问。当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

WPAD:

WPAD 通过让浏览器自动发现代理服务器,使代理服务器对用户来说是透明的,进而轻松访问互联网。WPAD 可以借助 DNS 服务器或 DHCP 服务器来查询代理自动配置(PAC)文件的位置。
代理服务器大多被用来连接 INTERNET (国际互联网)和 INTRANET(企业内部网)。在多个局域网中需设置不同的代理服务器参数来使浏览器访问网络。在微软 Internet Explorer ( IE )5.0 以上版本中的功能中已经具备了自动切换代理服务器的功能。网络管理员需要事先部署代理服务器配置文件,然而用户方的设置却很简单。在这一功能中使用了被称为“WPAD”(Web Proxy Auto-Discovery protocol)的协议。
浏览器原本具有读入并解析代理服务器的配置文件,并将其配置信息设置到浏览器中的功能。配置文件是使用 Java Script 描述的,通常具有“.js”,“.jvs”,“.pac”(proxy auto-configuration)等扩展名的文件。
自动代理检测由系统确定,Web 代理服务器代表客户端发送请求。自动代理检测启用时,系统会尝试定位到代理发送请求后返回的代理配置文件位置。若查找到代理配置文件,那么在使用 Web 代理服务器实例得到代理信息、数据请求或响应信息时,在本地计算机上进行下载,编译并运行。
被部署的大多数配置文件的格式是 Proxy auto-config (PAC)。最初,PAC 是由 Netscape 在 1996 年为 Netscape Navigator 2.0 设计的。WPAD 协议草案由 Inktomi、微软、RealNetworks、Sun Microsystems 几个公司共同提出。WPAD 可支持所有主流浏览器,首次存在于 Internet Explorer 5.0 中。
WPAD 对代理服务器的透明处理使得管理员不再需要去每台客户机上设置代理服务器参数了。自动检测受动态主机配置协议 (DHCP) 和域名系统 (DNS) 的支持,浏览器通过 DHCP 和 DNS 的查询来搜索 PAC 文件的位置。

Privoxy:

Privoxy是一款带过滤功能的代理服务器,针对HTTP、HTTPS协议。通过Privoxy的过滤功能,用户可以保护隐私、对网页内容进行过滤、管理cookies,以及拦阻各种广告等。Privoxy可以用作单机,也可以应用到多用户的网络。

Privoxy基于Internet Junkbuster,按照GNU General Public License进行发布。可以在Linux、Windows、Mac OS X、AmigaOS、BeOS,以及各种Unix上运行。

配置环境:

系统:Barrier Breaker 14.07
SS账号:ssh91
测试路由器:TP-LINK WR4310 V1(机器性能好的,体验会比较好)
依赖插件:privoxy
依赖文件:proxy.pac

配置流程:

1.安装shadowsocks-libev

官方下载地址:http://sourceforge.net/projects/ ... /shadowsocks-libev/
注意!建议下载官方原版,不要下载spec优化版的。

2.配置shadowsocks
  1. ~# :vi /etc/shadowsocks/config.json
复制代码

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

红色方框是shadowsocks 服务器地址;
绿色方框是shadowsocks 服务器端口;
蓝色方框是shadowsocks 本地端口地址(端口转发的时候要用到的);/*这个我已经指定了1080 ,如果跟其他端口冲突再进行更改!
白色方框是shadowsocks 数据封包加密传输的方式。
~# :/etc/init.d/shadowsocks enable
~# :/etc/init.d/shadowsocks start

3.安装、配置privoxy
  1. ~# :opgk install privoxy
  2. ~# :vi /etc/privoxy/config
  3. confdir /etc/privoxy
  4. logdir /var/log
  5. filterfile default.filter
  6. logfile privoxy
  7. actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
  8. actionsfile default.action # Main actions file
  9. #actionsfile user.action # User customizations
  10. listen-address 0.0.0.0:8118 #这个监听端口你可以设置成其它,我这里保持默认.
  11. toggle 1
  12. enable-remote-toggle 1
  13. enable-remote-http-toggle 0
  14. enable-edit-actions 1
  15. enforce-blocks 0
  16. buffer-limit 4096
  17. forwarded-connect-retries 0
  18. accept-intercepted-requests 0
  19. allow-cgi-request-crunching 0
  20. split-large-forms 0
  21. keep-alive-timeout 300
  22. socket-timeout 300
  23. permit-access 192.168.1.0/24 #这里我的LAN是192.168.1.1
  24. debug 1 # show each GET/POST/CONNECT request
  25. debug 4096 # Startup banner and warnings
  26. debug 8192 # Errors - [i]we highly recommended enabling this[/i]
  27. #admin-address privoxy-admin@example.com
  28. #proxy-info-url http://www.example.com/proxy-service.html
  29. forward-socks5 / 127.0.0.1:1080 . #如果你的ss本地端口号不是1080,这里是默认1080.
  30. forward 192.168.[i].[/i]/ .
  31. forward 10.[i].[/i].*/ .
  32. forward 127.[i].[/i].*/ .
  33. forward localhost/ .
  34. /[i]请求转发给我们用 shadowsocks 开启的 socks5 代理,后面的规则让本地和局域网不经过代理直连。[/i]/
  35. ~# ::wq
  36. ~# :/etc/init.d/privoxy enable
  37. ~# :/etc/init.d/privoxy start
复制代码

4.配置自动分发PAC文件

PAC规则文件可以下载我提供的或者去autoproxy在线生成一个,再或者自己写一个符合自己使用习惯的。(怎么写PAC规则文件,有时间出个教程,我也是刚学习写,嘻嘻!)

下面就以我的PAC文件作为例子:
  1. // Generated by gfwlistpac
  2. // https://www.router008.com《HOUZI》(hacked)

  3. var proxy = "PROXY "Your IP router":"listen port"; DIRECT;"; #你的路由器IP和上面privoxy监听端口.

  4. var rules = [
  5. "||altrec.com",
  6. "||darpa.mil",
  7. "||fastpic.ru",
  8. "||fxnetworks.com",
  9. "hulu.com",
  10. "huluim.com",
  11. "|http://www.ilovelongtoes.com/",
  12. "||muzu.tv",
  13. "||netflix.com",
  14. "||pandora.com",
  15. ".pandora.tv",
  16. "|http://www.parkansky.com",
复制代码

5.上传PAC文件

直接到文章末尾的链接下载我的PAC文件,用winscp上传到根目录的/www文件家里。
注意! 存放 wpad.dat 文件的 WEB 服务器,文件位置必须是 www 主机的根目录下比如: http://192.168.x.x/proxy.pac

6.利用 WPAD 协议自动分发 PAC
  1. ~# :vi /etc/config/dhcp
  2. config dnsmasq
  3. option domainneeded '1'
  4. option boguspriv '1'
  5. option filterwin2k '0'
  6. option localise_queries '1'
  7. option rebind_protection '1'
  8. option rebind_localhost '1'
  9. option local '/lan/'
  10. option domain 'lan'
  11. option expandhosts '1'
  12. option nonegcache '0'
  13. option authoritative '1'
  14. option readethers '1'
  15. option leasefile '/tmp/dhcp.leases'
  16. option resolvfile '/tmp/resolv.conf.auto'
  17. list dhcp_option '252,http://192.168.x.x/proxy.pac' #在该选项下面添加此行.

  18. ~# :/etc/init.d/dnsmasq restart
  19. ~# :reboot
复制代码

7.设备配置

OS X - Network Preferences 里面配置 Proxies 为 Auto Proxy Discovery
Windows - Internet Explorer 连接、局域网设置为自动检测代理(Google Chrome等浏览器下载安装 SwitchyOmega 设置为系统自动代理即可
iOS - 热点代理设置为自动,地址留空
Android/Windows Phone - 手动填写 http 代理地址(或者下载Drony来实现自动代理)
这里我要吐槽一下ios确实很人性化,Android太麻烦了,居然不支持WPAD!TAT


Attachment proxy1.zip (30.9 KB, 下载次数: 12, 最后修改: 2015-04-15 21:22)
PS:
1.DD-WRT也可以利用此方案,配置方法跟此类似!(DD-WRT得是mega版的,并且带有adblocking.KONG和oline的固件都行。)
2.Drony for Android使用教程:
.下载Drony(google play或者其他地方下载)

.打开软件进入到setting界面

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量


端口可以保持默认
Wi-Fi选项是你所连接代理路由器ssid

.进入到Wi-Fi选项

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量


点击进入到你刚才设置好的代理路由器的ssid,我这里是DD-WRT

.进入到所选的Wi-Fi

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量


.点击Script配置pac文件路径

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量


我先前已经配置好的路径,直接填入

.进行下载、测试、保存 pac文件
这三个颜色框的点击顺序:

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量



点击绿色先下载,再点击紫色测试,最后点击黑色保存.

.返回到Network details选项来选择代理类型

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量

OpenWrt利用WPAD+Privoxy+ShadowSocks+Proxy.pac智能分发流量



.再到手机上 ,设置---WLAN---DD-WRT(你自己的ssid)---修改网络---高级选项---代理---手动代理---代理的主机名:127.0.0.1---代理服务器的端口:8020(刚刚设置Drony的端口号)

.完成以上步骤,Android就可以飞了

原文地址:HOUZI

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表