My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
UsingProxy_StepByStep  
图文详解代理的使用方法。无需背景知识,从入门到精通。
Featured
Updated Oct 10, 2009 by lovelywcm

说明:本文介绍使用浏览器访问网站时如何使用代理,其它应用您可能需要参考其它文章。

一、什么是代理

通常来说,您是直接向网站服务器发送请求,并接受数据的,就像下面这个图一样:

使用代理后,您不再直接与网站服务器通信,而是通过一个代理服务器作为中转:

二、为什么要使用代理

如您所见,使用代理有点多此一举的味道。但它有时能给您带来额外的好处,或者,您不得不使用代理。比如:

  • 如果您处于教育网内,使用 GAppProxy 提供的代理也许能帮您节约国际流量费用;
  • 如果您没有使用某一项服务的权限,那么一个具备相应权限的代理可以帮助您解决这个问题;
  • 如果有人在你和目标服务器之间阻扰您的通信,您可以使用代理绕过这一限制;
  • 有些代理会将您的信息加密后再传输,一定程度上提高了安全性;
  • 有些网站会试图记录您的信息,如果您不希望被记录,可以使用代理达到匿名的效果。

三、设置代理的通用方法

  1. 常见的浏览器,都可以通过菜单设置代理

    Firefox 浏览器:工具/编辑 --> 选项/首选项 --> 高级 --> 网络 --> 连接 --> 设置

    Internet Explorer 浏览器:工具 --> Internet 选项 --> 连接 --> 局域网设置

其它浏览器也大抵若是。
请记住 GAppProxy 的配置:
HTTP 代理: 127.0.0.1
端口: 8000 

  2. 使用 PAC 文件,强大、智能

请回顾上一种方法:如果您设置了浏览器的代理,那么您所有的浏览都将通过代理访问,不管您需不需要。是不是很麻烦?PAC(Proxy Auto-Config,代理自动配置)即为此而生。PAC 定义了各种测试条件,只有满足条件的访问才会使用代理。或者说,您可以自由定义哪些网站使用代理、使用哪个代理
首先,您需要创建一个文本文件,名称随意,但扩展名必须为 pac。如:proxy.pac
PAC 采用的是 JavaScript 的语法。您必须定义一个 FindProxyForURL 函数,它就像 C语言 中的 main 函数。看起来应该像这个样子:
function FindProxyForURL(url, host){
   if ()
      return "";
   else
      return "";
}
浏览器通过调用这个函数而获知是否应该使用代理。它将当前访问信息通过 url 和 host 两个参数传递给 FindProxyForURL 函数,进而进行判断。

     url: 指完整的网址,如:http://www.example.com:8080/abc/def/g/hij.html

     host: 指从 "://" 到其后第一个 "/" 之间的内容,不包括端口号。如上面 url 的 host 是:www.example.com

有十几个内置函数可供您根据 url 和 host 参数进行判断,下面为您介绍两个最常用的:

     dnsDomainIs(): “dns Domain Is”,主要用来判断域名是否满足条件,常用格式为 dnsDomainIs(host, "xxx.com")。

      上面的表达式,host="xxx.com" 或者 host="yyy.xxx.com" 时返回值均为 true。当然,host="xxxx.com" 时,返回 false。

     shExpMatch(): “shell Expression Match”,使用通配符判断 url 或 host 是否满足条件。

以下是一个实际的例子,意思是:用 GAppProxy 提供的代理(127.0.0.1:8000)访问美国高校网站、用 Tor 提供的代理(127.0.0.1:9050)访问百度和中国政府网站,其它的则直接连接。您可以在此基础上稍做修改,使之符合您的个性化需求。
function FindProxyForURL(url, host){
   if ( dnsDomainIs(host, ".edu") )
      return "PROXY 127.0.0.1:8000";
   else if ( dnsDomainIs(host, "www.baidu.com") || shExpMatch(url, "*.gov.cn/*") )
      return "SOCKS 127.0.0.1:9050";
   else
      return "DIRECT";
}
关于 PAC 更详尽的说明,请参见这里:http://en.wikipedia.org/wiki/Proxy_auto-config

四、Firefox 扩展可助您更方便地使用代理

如果您是 Firefox 的用户,那么恭喜您,您有更多、更好的选择!

  1. MultiProxy Switch

MultiProxy Switch 是一款国人开发的、支持多个代理的、简单易用的 Firefox 扩展。
它的安装地址是:https://addons.mozilla.org/zh-CN/firefox/addon/7330
安装后,设置界面如下:
请记住 GAppProxy 的配置:
HTTP 代理: 127.0.0.1
端口: 8000 
它会在状态栏添加一个小图标,您随时可以通过这个图标选择使用哪个,或者是否使用代理:

   

  2. AutoProxy

专为国内网络环境设计,自动化代理扩展。内置 GAppProxy 的信息,无需设置。
http://www.autoproxy.org/zh-CN/
http://www.geektang.com/2009/03/autoproxy.html

   

Enjoy :)

Comment by project member lovelywcm, Jun 27, 2008

困了,有问题欢迎提出来 ==!

Any comments are welcome~!

Comment by kunshou, Jun 29, 2008

FoxyProxy? 只要打开快速添加,按alt+F2就可以很方便的添加模板了。

Comment by ymz8848, Sep 28, 2008

http://proxy.ipcn.org/freeip.pac 这个是给教育网定制的代理脚本,自己改改就可以用了。

Comment by project member dug...@188.com, Oct 20, 2008

这个不错

Comment by arti...@gmail.com, Nov 3, 2008

Gapp是好东西啊,但我在使用过程中有两个问题,第一是在一些论坛不能回复,说是“……您安装了某种默认屏蔽来路信息的个人防火墙软件……”,第二个是在线视频网站看不了视频。

Comment by wodar....@gmail.com, Dec 23, 2008

你好,我在gae上安装了这个代理。我想让我的域名解析指向到ghs.google.com(这个已经被gfw封掉了)。有没有办法让指向.appspot.com的某个域名,通过代理访问到ghs.google.com。

Comment by project member lovelywcm, Feb 16, 2009

@artilee 登录问题是因为GAE的限制,如果GAE不修改,那就没什么办法……。

Comment by project member lovelywcm, Feb 16, 2009

@wodar.cto ghs 的问题是可以绕过去的,不需要使用代理。方法就是使用未 blocked 的 ip,而不是ghs.google.com,具体可以搜索一下~。

Comment by cmm...@gmail.com, Feb 18, 2009

如果是放到自己的 GAE 上,需要修改哪些内容?第一次接触 GAE 和 python……

Comment by project member lovelywcm, Feb 19, 2009

1、下载一个fetchServer的源码包: http://code.google.com/p/gappproxy/downloads/list

2、把 app.yaml 里的 your_application_name 改成你的名字

3、上传

完了 _

Comment by satoiidr...@gmail.com, Feb 21, 2009

不需要修改本地的fetch.py?

话说怎么让那个运行窗口消失还保持代理运行啊

Comment by fantasti...@gmail.com, Mar 8, 2009

Wikipedia不用代理就可以访问了 现在

Comment by hai...@gmail.com, Apr 8, 2009

在线视频网站看不了视频。 已经测试的包括Youku,video google, Youtube,TED...

Comment by wangqin...@gmail.com, Apr 12, 2009

安装了Python2.6 但是https还是不能使用为什么,应该如何处理

Comment by fancyc...@gmail.com, May 1, 2009

不能用了 总是显示链接被重置

Comment by qianlong...@gmail.com, Jul 2, 2009

极度rp下能用。。。。

去年用的很爽的,,,,现在怎么就不行了呢?

Comment by davidlee...@gmail.com, Aug 13, 2009

I had try it with a local proxy (company firewall). It doesn't work. When I using it with IE. It require a user name and password. How can I set it up to GAppProxy?

Comment by liy...@gmail.com, Oct 10, 2009

autoproxy那么强大的扩展居然没写

Comment by wowbe...@gmail.com, Oct 25, 2009

使用了1.0.0beta版本后 登陆https网页 提示证书过期 无法登陆

Comment by liuyun242@gmail.com, Dec 30, 2009
前一版 svn55 GAppProxy很好用,就是不支持https

1.0.0beta不稳定,有时能用,有时不能 不能用时返回如下提示,用代理猎手测试为要密码 Error response Error code 405.

Message: Method Not Allowed.

Error code explanation: 405 = Specified method is invalid for this server..

Comment by pizhu...@126.com, Jan 19, 2010

在线视频网站看不了视频。 Facebook不能登陆? 求解

Comment by liang.2...@gmail.com, Apr 19, 2010

fackbook,blogger,twitter都不能登陆

Comment by wh.s...@gmail.com, May 15, 2010

Facebook不能登录。。。

Comment by lizhihai...@gmail.com, May 21, 2010

登陆Https出现证书问题,局域网设置的安全部分不用代理就可以拉

Comment by zshtea...@gmail.com, Oct 23, 2010

证书过期。。。facebook、twitter、youtube没有一个好用的。。。

Comment by duncan...@gmail.com, Dec 25, 2010

遇到登陆问题,使用Firefox 4.0 beta 8,证书问题选择忽略,然后添加到例外列表里就好了。

www.thepiratebay.org登陆还是存在问题,用VPN的时候没有问题。

非常好的软件,辛苦了,加油!

Comment by zzmus...@gmail.com, Jan 16, 2012

刚才安装了新版的GAE2.0 但是目前无法使用,各种设置都已经确认全部正确。

现在GAE窗口上的提示如下!


HTTPS Enabled: YES Direct Fetch : YES Listen Addr : 127.0.0.1:8000 Local Proxy : Fetch Server : http://gaesonus.appspot.com/fetch.py



Exception happened during processing of request from ('127.0.0.1', 58178) Traceback (most recent call last):
File "SocketServer?.pyo", line 558, in process_request_thread File "SocketServer?.pyo", line 320, in finish_request File "SocketServer?.pyo", line 615, in init File "BaseHTTPServer.pyo", line 329, in handle File "BaseHTTPServer.pyo", line 323, in handle_one_request File "proxy.py", line 60, in do_CONNECT File "ssl.pyo", line 118, in init File "ssl.pyo", line 293, in do_handshake
SSLError: 8? ssl.c:480: EOF occurred in violation of protocol


Sign in to add a comment
Powered by Google Project Hosting