注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Hugo Blog

如果没有人把不满说出来,那就不可能有改变

 
 
 
 
 

日志

 
 

如何实现区别代理  

2012-05-27 14:05:42|  分类: 解决方案 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

如何实现区别代理

 

文章更新日期:2012/5/27

 

前言

阅读本文,需要具备A)对IP地址、域名、端口的初步认识;B)使用正常的互联网所需要的工具;C)不愿止步于当前的心态。若暂时不具备上述条件,请Google学习后,再阅读本文,否则只会事倍功半。

 

凡是在中国大陆能使用正常的互联网的用户,该有这样的了解:使用代理后,访问本地网站速度较慢,也无法使用针对本地的免费音乐、视频网站。

如果你愿意花费一首歌的时间阅读本文,你将对代理有更清晰的认识,也能自行对各种相关工具进行更有效地组合,你的互联网体验也会更上一层楼。

 

本文所述的代理,包括基于HTTP/HTTPS/ SOCKS4/SOCKS5/VPN协议与海外服务器连接的代理方式,但不包括网页代理。

 

一、系统层面解决方案(支持Windows/Linux/Mac)

通过配置当前系统的路由表,可在系统层面实现VPN区别代理。成功实施该方案后,将可以依据目标网站的IP地址是否属于中国大陆判断使用何种线路访问。

这里提供两个开源解决方案:

1. Dancefire 编写的工具(支持Windows/Linux,均不需要安装Python)

2.chnroutes 项目 (支持Windows/Linux/Mac/Android/OpenVPN,除Windows平台,其他平台均需要Python环境)

 

二、应用层面解决方案(支持Windows/Linux/Mac)

1.使用浏览器扩展实现HTTP/HTTPS/ SOCKS4/SOCKS5区别代理

Chromium/Chrome 用户,可使用 Proxy SwitchySharp 扩展实现;Firefox用户,可使用 AutoProxy 扩展实现。具体配置方法,可通过Google搜索学习。

2. 使用PAC文件实现HTTP/HTTPS/ SOCKS4/SOCKS5区别代理

MSIE等浏览器,可使用PAC文件实现。PAC文件,可通过Google搜索或导出Proxy SwitchySharp 扩展代理规则为PAC文件获得。

PAC文件路径示例:file://C:\SwitchyPac.pac

3. 使用Privoxy实现HTTP/HTTPS/SOCKS4/ SOCKS5区别代理

Privoxy是一款带过滤功能的代理服务器,针对HTTPHTTPS协议,经常跟Tor组合使用。通过Privoxy的超级过滤功能,用户从而可以保护隐私、对网页内容进行过滤、管理cookies,以及拦阻各种广告等。Privoxy可以用作单机,也可以应用到多用户的网络。via 维基百科

下面以代理Evernote所属域名为例,介绍使用Privoxy实现HTTP/HTTPS/ SOCKS4/SOCKS5区别代理过程。

运行 Privoxy 后,单击 Options > Edit Main Configuration 打开配置文件。

在末尾添加如下语句:

1)如果代理是HTTP/HTTPS类型

forward           .evernote.com       127.0.0.1:8087

 

2)如果代理是socks4类型

forward-socks4    .evernote.com       127.0.0.1:1080  .

 

3)如果代理是 socks5类型

forward-socks5    .evernote.com       127.0.0.1:1080  .

 

Privoxy知识点:

xinhugo@163.com - Hugo - Hugo Blog
 

 

协议转换的实现:

1SOCKS5协议转换为HTTP协议

在末尾添加如下语句:

forward-socks5    /                      127.0.0.1:1080 .

 

2VPN协议转换为HTTP协议(存在1台以上处于同一私有网络的虚拟机/物理机)

搜索

listen-address  127.0.0.1:8118

替换为

listen-address  0.0.0.0:8118

 

 

总结

在系统层面实现区别代理,是依据IP地址作为区别依据的;在应用层面实现区别代理,则主要是依据域名作为区别依据。两相比较,应用层面实现区别代理,更为细致、准确。

Dancefire编写的工具与chnroutes项目都是开源的,主要区别在脚本语言的差异。前者是直接使用系统自带的脚本环境就能运行,后者在非Windows平台需要Python环境。得益于Python跨平台的特性,后者支持平台较前者广泛。

在我看来,使用浏览器扩展实现区别代理,最为方便,借助于在线规则列表,首次设置完成后,几乎无需用户干涉,即可使用正常的互联网。

使用PAC文件实现,则几乎可以覆盖所有支持IE代理设置的程序。

而使用Privoxy实现,则可实现具体到端口号的区别代理。

 

无论是免费还是收费的代理服务,实施区别代理都是有必要的。加快访问本地网站速度的同时,还能节省代理流量,何乐而不为呢?

 

除非注明,Hugo博客文章均为原创,转载请以链接形式标明本文地址。

 

本文地址:http://xinhugo.blog.163.com/blog/static/167979363201242715855845/

 

 

相关阅读:

  评论这张
 
阅读(1386)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017