firefox代理切换插件 怎么看反向代理

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&Rproxy,一个基于Twisted的反向代理,以及锻炼身体工具推荐 | observer专栏杂记
Rproxy,一个基于Twisted的反向代理,以及锻炼身体工具推荐 | observer专栏杂记
本文如需转载,请注明来自 ,此域名已墙所以没事,发翻/墙的东东要慎重@@。
如题写了个反向代理的东东,一如我写得诸多小东西一样,我开始思考着有没有价值发出来——大部分小东西都是没太多价值的,但是这个我认为应该有些不同:于是我开始调查目前翻/墙手段的现状。
1. 锻炼身体的工具
1.1 最上等的工具莫过于 ssh tunnel或vpn
内容加密意味着除了ban vpn的ip外,墙没有任何手段来组织你锻炼身体,唯一的风险在于ssh所在IDC或者他们使用的ISP监听你的请求,这在除了天朝以外的地方大概都会是违法行为,所以风险会小很多。
不足处是并不是所有人都能搞到/部署墙外vpn或ssh,这也算是此类工具的缺点吧。在锻炼身体方式中我觉得最万能、最方便也最安全的还是tunnelier+ssh+autoproxy的方式,如。前提是有ssh账号。
PS。前几天失手买了个网速其烂无比的 埃及VPS ,性能倒是很不错,因为是一买就是半年的缘故,闲着也是闲着, 决定贡献出来,
账号密码都是egypt,服务器IP是41.223.52.83 ,
系统为ubuntu
10.04,该账号有sudoer权限,想要锻炼身体或者没信用卡买米国VPS,但是也想玩玩试试手的都可以试试看;root权限威力太大,菜鸟请慎用。
这个东东因为网速巨慢,上限大概也才200K,到国内单线程可能才20K,所以我一点都不担心会被人投诉abuse,哈哈。
1.2 次等的手段就是 代理服务器
事实上所有其他工具都可以归于这一类,我想重点讨论的也是这一类。任何形式的代理服务器,如果不是你自己所有的
话,都是有风险的。代理服务器可以轻松地监听你所做的任何操作,甚至连普遍认为的高匿名性的TOR,也不例外:区别只是在于你可以祈祷中转你请求的那几台
服务器人品足够好而已。
传统http,socks代理服务器 :比如5u/proxy.net提供的一些免费代理服务器,在浏览器中设置即可使用,优点是简单易用,兼容性非常强,缺点是不安全,容易被窃听。
服务端-客户端结构的代理服务器 比如:free门,no界,gapp/proxy等。有客户端意味着可以对内容进行加密,这一类代理我认为是代理中最出色的:他们的优点是既完全加密又有非常好的兼容性,而缺点就在于需要客户端,并不是在所有电脑上你都可以装客户端的。
这之中我更推荐gapp/proxy,因为该服务可以自架在google的appengine上,你只需担心google会监听urlfetch的
风险,而不需担心no界等服务器端记录你的请求。我认为google还是比他们可靠一些的。在gae翻墙工具中,又有两个新一点的wallproxy和
hyk-proxy,更是加强了许多。
但是说实话,gae虽好,但是部属起来麻烦;光看那让人望而生畏的文档就让一般的庸手望而却步了。完成部署的人要么是geek一族,若原属电白那实在是毅力非同一般。
网页代理 :很流行的东东,也有叫做反向代理的,但是其实这个称谓不太科学,反向代理是指&#8220;给网站做代理&#8221;而非
&#8220;给用户做代理&#8221;,一般是用于服务器端的负载平衡的工具,并不会在内容上做手脚。而所有网页代理都会替换网站的原本返回值,最起码他们必须得替换链接,次
常见的就是插入js,插入广告了。常用做网页代理的工具有:PHProxy,Glype等等。
这些东西部署简单,而且铺天盖地,但是除非自己架设,否则我是不太敢使用这些代理,这太容易修改成钓鱼版了,铺天盖地的网页代理中,多少具有钓鱼功能?我觉得可能还是有一大部分的。
同样网页代理也可以做到gae上去。例如mirrorrr-plus和gae-rproxy,前者的代表是红杏/浏览,后者的代表是
wagagate;他们都是很强大的网页代理工具,甚至rproxy也有像gae-rproxy借鉴了一些功能,例如中文转码几乎是原封不动地调用了
gae-rproxy的anti-crab代码。这两种网页代理工具相比gapp/proxy的优势在于,配置的人必须geek,而使用者则不必;无客户
端,于是可以在任意环境中使用,比如手机;可以说这也是网页代理的最大优势。
回顾了那么多,似乎没什么必要再开发一款功能雷同的工具?
试想一下这个场景:某站站长发现自己被墙,如果是IP被墙,那么就意味着要换IP,一般来说只能是换机房;如果是域名被墙,那么更加麻烦,还得换域
名。在此之前,站长只能通知用户说到:很抱歉我们被墙了,翻/墙来看吧,推荐翻/墙方式A、B、C、D等,请自行挑选合适的手段。用户非常无所适从,随着
时间的流逝,一部分用户可能会因为觉得翻墙过于麻烦而逐渐转向国内同类站点。
如果这时,站长可以很方便地进行一分钟配置,然后告诉用户,非常抱歉我们被墙了,目前我们已经找到了临时的解决方法,你们暂时可以通过另一个域名访
问,请静候我们尽快地解决问题。这时对所有用户来说,只是网站暂时用另一个网址来访问而已,完全没有任何其他障碍。与此同时,站长可以轻松悠哉地着手处理
搬家或其他事宜,而不用火烧眉毛似地急着通宵摆弄新系统上线。
rproxy就是由这个想法而诞生的,不同于一般的网页代理,rproxy试图做一个&#8221;真正&#8221;的反向代理,让用户根本就察觉不到&#8221;代理&#8221;的存在。
试用rproxy
face/book-&
配置页面-&
rproxy相对于传统代理的优势:
: 意味着在任何平台,任何环境下都可以访问,这也是所有网页代理的优势。
更好的性能 :只对所要反向代理的网站进行地址替换,节约了不必要的系统开销。
访问感受去代理化 : 对网站的访客来说仅仅是地址的改变,不影响任何功能上的使用。
基于twisted :所以性能有保障的同时,代码也非常简单,核心代码仅仅几十行,一目了然,易于维护修改。
不基于GAE :所以即使GAE被墙了也是可以用的,并且没有GAE的种种流量和API调用次数限制。
rproxy相对于nginx/squid等反向代理服务器的优势:
nginx/squid 不做 url替换 ,故此无法处理网页中普遍存在的绝对路径问题。
nginx/squid 不做 header检查 ,所以也无法处理重定向问题
nginx/squid 在 cookies检查 严格的站点面前也行不通
nginx/squid 不做任何 中文转码 ,浏览敏感内容依旧会被墙
rproxy 可以配置 Global变量 从而完成&#8220;反向站点群&#8221;,实现在一个网站群内无差别反向代理浏览,而nginx/squid则不行。
rproxy 配置更方便,在架设完成后可以直接在 web页面控制 ,而nginx/squid必须针对不同网站编写不同的配置文件。
rproxy的劣势:
兼容性 :与所有网页代理的通病一样,由于无法解析javascript,所以对javascript比较复杂的应用完全无解。
速度 :访问速度取决于代理站点的网络速度,不像GAE那样可以利用google的网络。
有不擅长的应用环境 :太大的站点,如果站点庞大到需要利用cdn一类的技术,需要在多个站点之间反复跳转,javascript过于复杂,有大量flash应用(暂时无法进行内容替换)等等。诸如you/tube之类的站点无法很好地进行代理。
3.Rproxy的简单架设攻略
apt-get install git-core python-twisted python-mako python-opensslapt-get install python- easy_install bitstringcd /var/ git clone git:///observerss/rproxy.gitcd /var/www/rproxyvi src/rproxy.py #设置PORT和DOMAINtwistd -y src/rproxy.py
然后访问 DOMAIN:PORT 设置反向代理选项即可,如果裸用rproxy,请把DOMAIN设置成&#8221;DOMAIN:PORT&#8221;。推荐还是用nginx/apache2转发一下端口。例如nginx就可以这么配置:
listen&&&&&&&&& 80;
server_name&&&& DOMAIN *.DOMAIN;
root&&&&&&&&&&& /var/www/
location / {
proxy_pass http://127.0.0.1:PORT/;
proxy_set_header Host $http_
proxy_set_header X-Real-IP $remote_
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
配置完成后,直接访问 DOMAIN,即可在web页面配置反向代理。
配置说明:
target:需要做反向代理的网站,不要加http,也不要加www.,www会使得子域名无法转义,也不能加子目录,rproxy试图表现得完全像一个反向代理一样。
alias:别名,如图,取完别名后即可用 6p.rproxy.org 访问
html : 是否替换html链接
css:是否替换css中的链接
js:是否替换javascript中的链接,一般以上三项全选则可完成翻墙
flash:是否替换flash中的链接,目前所有网页代理都无法替换flash,不过我倒是有点思路,可惜有点麻烦,暂时还没搞定
global:把该设置全局化,这意味着在比如同时给google和6park做了反向代理,那么访问gg并搜索6park的时候,gg返回的6park链接也将是转义过的。
SSL:和rproxy服务的链接将用https代替http,好处是加密连接;缺点是需要ssl证书,否则就等着浏览器疯狂抗议吧。ssl浏览
会比较慢且twisted/nginx似乎在这方面有点bug。注意:如果该网站本身就支持https浏览,这项千万不能设置成Y,否则会让rproxy
不能正常使用。如要https浏览,直接把http改成https即可,rproxy会自动使用ssl访问目标。
访问twitter的signup会无限redirect
对于使用google
captcha反机器人的站点,因为使用次数过多,会触发captcha,而google会检查captcha的referer,导致其不能显示。例如
twitter,需要禁用浏览器referer(例如在firefox中输入about:config,搜索referer,设置为0)
you/tube的swf自定了baseurl为www.,所以翻/墙不会成功。
httponssl功能需要服务器设置ssl,而且没有证书的话真不太好使。
This entry was posted in , ,
and tagged , , . Bookmark the .
发表评论:
TA的最新馆藏[转]&[转]&[转]&[实践 OK]用nginx反向代理http的IP 80端口到9527端口简单示例
引用地址:
注意: 该地址仅在今日23:59:59之前有效
实践Ok代码如下:
server &#123;
&&&&listen 80;
&&&&server_
&&&&location / &#123;
&&&&&&&&proxy_pass http://127.0.0.1:9527;
&&&&&&&&proxy_
&&&&&&&&proxy_set_header Host $
&&&&&&&&proxy_set_header X-Real-IP $remote_
&&&&&&&&proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&#125;
相信很多朋友已经遇到了这个问题,但是都没有什么好的解决方案。首先思路上觉得是只有一个公网IP,必须要有一个支持应用层的程序来进行转发,进行代理才能够顺利的把相应的请求发到相应的后端机器上,结果自然选择nginx来进行反向代理了。环境:宿主机是Windows2003,IP为10.1.1.3,装VMware Workstation 6.0。在windows2003上运行nginx的win版。VM开两台虚拟机,网络模式为NAT模式。一台IP为192.168.84.128,一个台为192.168.84.129。分别开启80端口进行web服务。修改测试机的hosts文件,指定和到宿主机10.1.1.3。目的:通过对宿主机win2003上的nginx设置,使解析到宿主机IP上的域名能够正常访问后面的web服务。适用于只有一个公网IP需要部署多个虚拟机来提供80端口web服务,一个虚拟机一个IP对应一个域名。方法:1、在nginx.conf最后一个&&#125;&前,加入&include proxy.&。2、在同目录下,建立&proxy.conf&文件,内容如下:
server &#123;
listen 80;
&&location / &#123;
&&proxy_pass http://192.168.84.129; //后端ip地址
&&proxy_ //关闭后端返回的header修改
&&proxy_set_header Host $ //修改发送到后端的header的host
&&proxy_set_header X-Real-IP $remote_ //设置真实ip
&&proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
server &#123;
listen 80;
&&location / &#123;
&&proxy_pass http://192.168.84.128; //后端ip地址
&&proxy_ //关闭后端返回的header修改
&&proxy_set_header Host $ //修改发送到后端的header的host
&&proxy_set_header X-Real-IP $remote_ //设置真实ip
&&proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
此番配置之后,已经可以用任何解析到宿主机的IP的域名,访问自己的站点了。来源:/thread-.html作者:@地址:版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: justwinit 编辑于 16:11
[9/9]北京市海淀区中关村理想国际大厦18层 Address:Sina 18th floor Ideal plaza Zhongguancun Haidain
Beijing 100080, P.R.China
[1/9]深圳南山腾讯大厦8楼 Address:Tencent Plaza High-tech One Road, Middle Zone, High-new Science & Technology Park, Nanshan Distrcit, Shenzhen City, Guangdong Province 518057, P.R. China
[2/9]深圳南山腾讯大厦旁大族激光大厦三楼 Address:Han's Building,Kejizhongyi Avenue, Hi-tech Pack,Nanshan District, Shenzhen City, Guangdong Province 518057, P.R.China
[2012/10-Now]北京海淀区西三环中路10号望海楼B座7层央视国际网络有限公司 Address:Seaview floor, Haidian District No.10,West Sanhuan Road,Beijing 100142, P.R.China最简单实现跨域的方法:使用nginx反向代理 - 文章 - 伯乐在线
& 最简单实现跨域的方法:使用nginx反向代理
什么是跨域
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。
所谓同源是指,域名,协议,端口相同。浏览器执行javascript脚本时,会检查这个脚本属于那个页面,如果不是同源页面,就不会被执行。
同源策略的目的,是防止黑客做一些做奸犯科的勾当。比如说,如果一个银行的一个应用允许用户上传网页,如果没有同源策略,黑客可以编写一个登陆表单提交到自己的服务器上,得到一个看上去相当高大上的页面。黑客把这个页面通过邮件等发给用户,用户误认为这是某银行的主网页进行登陆,就会泄露自己的用户数据。而因为浏览器的同源策略,黑客无法收到表单数据。
现在随着RESTFUL的流行,很多应用提供http/https接口的API,通过xml/json格式对外提供服务,实现开放架构。如,微博、微信、天气预报、openstack等网站和应用都提供restful接口。
Web应用也在向单页面方向发展。
越来越多的web应用现在是这样的架构:
静态单个web页面
RESTFUL服务
我们本可以利用各个网站提供的API,做出很多精彩的Web应用。但浏览器执行javascript时的跨域限制,就成为了这类开放架构的拦路虎。
本文提出了一种简单有效的方式解决跨域问题。
常用的跨域方法
常用的跨域方法有这样一些:
1,使用iFrame访问另一个域。 然后再从另一个页面读取iFrame的内容。jquery等有一些封装。
据说Firefox等可能不支持读取另一个iFrame的内容。
2,jsonp。需要服务器支持。使用script src动态得到一段java代码。是回调页面上的js函数,参数是一个json对象。
jquery也有封装。
3,设置http头,Access-Control-Allow-Origin:*
但据说IE有一些版本不识别这个http头。
4,服务器代理。如,服务器写一个url的处理action。其参数是一个url。这个服务器会用参数拼凑一个url,用httpclient库去执行url,然后把读取的内容再输出到http客户端。
nginx反向代理实现跨域
上面提到的这些跨域方法,都有一些问题。有的不能支持所有浏览器,有的需要修改javascript代码,有的需要重写服务器端代码。有的在session等场景下会有问题。
其实,用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持session,不需要修改任何代码,并且不会影响服务器性能。
我们只需要配置nginx,在一个服务器上配置多个前缀来转发http/https请求到多个真实的服务器即可。这样,这个服务器上所有url都是相同的域名、协议和端口。因此,对于浏览器来说,这些url都是同源的,没有跨域限制。而实际上,这些url实际上由物理服务器提供服务。这些服务器内的javascript可以跨域调用所有这些服务器上的url。
下面,给出一个nginx支持跨域的例子,进行具体说明。
如,我们有两个pythonflask开发的项目:testFlask1和testFlask2。
testFlask2项目上的javascript脚本要通过ajax方式调用testFlask1的一个url,获取一些数据。
正常情况下部署,就会有跨域问题,浏览器拒绝执行如下这样的调用。
JavaScript
$("button").click(function () {
$.get("127.0.0.1:8081/partners/json", function (result) {
$("div").html(result);
$("button").click(function () {&&&&$.get("127.0.0.1:8081/partners/json", function (result) {&&&&&&&&$("div").html(result);&&&&});});
下面把testFlask2项目的javascrip文件修改一下。这样访问同源的url,就不会有跨域问题。
$(&button&).click(function () {
$.get(&partners/json&, function (result) {
$(&div&).html(result);
$(&quot;button&quot;).click(function () {&&&&$.get(&quot;partners/json&quot;, function (result) {&&&&&&&&$(&quot;div&quot;).html(result);&&&&});});
但是,我们testFlask2项目实际上没有partners/json这样的url,那怎么处理呢?
我们这样编写nginx的配置文件:
listen8000;
location/ {
includeuwsgi_
uwsgi_passunix:/tmp/testFlask2.
location/partners {
rewrite^.+partners/?(.*)$ /$1
includeuwsgi_
uwsgi_passunix:/tmp/testFlask1.
123456789101112
server{&&listen8000;&&location/ {&&&&includeuwsgi_params;&&&&uwsgi_passunix:/tmp/testFlask2.sock;&&}&&location/partners {&&&&rewrite^.+partners/?(.*)$ /$1 break;&&&&includeuwsgi_params;&&&&uwsgi_passunix:/tmp/testFlask1.sock;&&}}
我们把testFlask2项目部署在8080端口的根目录下。把提供web服务的testFlask1项目部署在/partners目录下。
但我们的testFlask1项目并不能处理/partners/json这样的url请求。那怎么办呢?
通过rewrite^.+partners/?(.*)$ /$1 这一条命令,nginx可以把收到的/partners/*请求全部转为/*请求后再转发给背后的真实web服务器。
这样,RESTFUL的ajax客户端程序,只需要给出特定前缀的url就可以调用任意服务器提供的RESTFUL接口了。
甚至,通过nginx的反向代理,我们还能调用其他公司开发的网站提供的RESTFUL接口。
location/sohu {
rewrite^.+sohu/?(.*)$ /$1
includeuwsgi_
proxy_pass/;
location/sohu {&&rewrite^.+sohu/?(.*)$ /$1 break;&&includeuwsgi_params;&&proxy_passhttp:///;}
我们就把sohu网站整个搬到我们的8080:/sohu/目录下了,我们的javascript就可以尽情调用其RESTFUL服务了。
顺便说一下,rewrite^.+sohu/?(.*)$ /$1
这句命令中,$1表示(.*)这个部分。第一对()内的参数是$1,第二对()内的参数就是$2,以此类推。
本文介绍了利用nginx的反向代理的功能,实现跨域访问任意应用和网站的方法。
nginx是一个高性能的web服务器,常用作反向代理服务器。nginx作为反向代理服务器,就是把http请求转发到另一个或者一些服务器上。
通过把本地一个url前缀映射到要跨域访问的web服务器上,就可以实现跨域访问。
对于浏览器来说,访问的就是同源服务器上的一个url。而nginx通过检测url前缀,把http请求转发到后面真实的物理服务器。并通过rewrite命令把前缀再去掉。这样真实的服务器就可以正确处理请求,并且并不知道这个请求是来自代理服务器的。
简单说,nginx服务器欺骗了浏览器,让它认为这是同源调用,从而解决了浏览器的跨域问题。又通过重写url,欺骗了真实的服务器,让它以为这个http请求是直接来自与用户浏览器的。
这样,为了解决跨域问题,只需要动一下nginx配置文件即可。简单、强大、高效!
打赏支持我写出更多好文章,谢谢!
打赏支持我写出更多好文章,谢谢!
关于作者:
可能感兴趣的话题
uwsgi 这个东西windows有替代方案吗
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
&#8211; 好的话题、有启发的回复、值得信赖的圈子
&#8211; 分享和发现有价值的内容与观点
&#8211; 为IT单身男女服务的征婚传播平台
&#8211; 优秀的工具资源导航
&#8211; 翻译传播优秀的外文文章
&#8211; 国内外的精选文章
&#8211; UI,网页,交互和用户体验
&#8211; 专注iOS技术分享
&#8211; 专注Android技术分享
&#8211; JavaScript, HTML5, CSS
&#8211; 专注Java技术分享
&#8211; 专注Python技术分享
& 2016 伯乐在线使用ssh正向连接、反向连接、做socks代理的方法 | 涂虫小记

我要回帖

更多关于 firefox代理切换插件 的文章

 

随机推荐