分享一个思路:使用 Nginx 搭建透明代理,轻松突破个别网站访问限制

2014-11-06 16:43:07 +08:00
 liad
一些网站只允许本国IP访问,如果在PC浏览器端可以通过修改请求头X-Forwarded-For来绕过验证,那么可以通过Nginx来搭建透明代理的轻量级方案,配合PAC文件来实现部分设备(通过设置代理)或全局(例如在路由器配置dnsmasq)轻松访问这些受限网站。

配置非常简单
server {
resolver 8.8.8.8;
listen 8086;
location / {
set $xff $proxy_add_x_forwarded_for;
if ($http_host ~* 域名) {
set $xff 允许的IP;
}
proxy_set_header X-Forwarded-For $xff;
proxy_pass http://$http_host$request_uri;
}
}

限定User-Agent的也可类似实现。

目前我是通过这种方案在dd-wrt路由上搭建Nginx代理和web.py HTTP(s)服务,并在Apple TV上指定ProxyPACURL,来播放部分有限制或动态网址的在线视频流。
12878 次点击
所在节点    NGINX
15 条回复
Starduster
2014-11-06 17:17:24 +08:00
赞一个,我打算这样试试搞学校教务处
msg7086
2014-11-06 17:37:14 +08:00
典型的服务器配置错误。永远不能信任外来参数。
wwek
2014-11-06 17:37:55 +08:00
我一直在用 nginx做正向代理。
就是不支持https可惜了·
arnofeng
2014-11-06 18:28:59 +08:00
那只对高校开放的图书馆不也是可行?
brucebot
2014-11-06 18:35:17 +08:00
你的apple TV的设置可以分享一下吗?
Showfom
2014-11-06 18:38:51 +08:00
@wwek sni proxy 嘛
liad
2014-11-06 20:28:37 +08:00
Love4Taylor
2014-11-06 20:40:58 +08:00
@wwek 你需要squid
xiaou
2014-11-06 20:56:35 +08:00
我的apple TV已经变成纯airplay TV了,盒子大师看不了
ryd994
2014-11-06 21:28:13 +08:00
既然你能控制PAC,那就是正向代理的应用场景了,用squid吧。当然,acl要认真学。
takwai
2014-11-06 21:45:38 +08:00
如果仅仅是修改请求头内容,Chrome 有扩展就支持了,随便对头增删改。

正如 2 楼说的,永远不能信任外来参数。
nil3
2014-11-06 22:18:19 +08:00
不是计算机专业的,表示看不懂这些正向代理/反向代理之类。请问这类知识可以从哪里自学?比如看什么书?
liad
2014-11-06 22:58:32 +08:00
@takwai 嗯,Chrome中我用ModHeader。不过我这里介绍的其实是充分利用路由器来搭建轻量级的代理服务,提供给不能修改随意修改头内容的设备使用。
ksc010
2014-11-07 00:33:32 +08:00
nginx做代理的支不支持二级代理
Marfal
2015-05-16 20:04:53 +08:00
@nil3 计算机专业不代表会去学习这些东西,代表着有更多时间学习这些东西,这个是和计算机网络有关的,可以看Computer Network(计算机网络),图解TCP/IP,再看看csdn关于正向代理,反向代理的文章,这些google百度都能找到。
吐槽一下学校的计算机专业,没有交什么实际的东西,名义上是科班出身,可是老师讲的不好,也没有多少人听。也许是学校渣吧~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX