技术解析

分享一个思路:使用 Nginx 搭建透明代理,轻松突破个别网站访问限制
0
2021-05-26 17:12:13
idczone
一些网站只允许本国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-A国外服务器gent的也可类似实现。

目前我是通过这种方案在dd-wrt路由上搭建Nginx代理和web.py HTTP(s)服务,并在Apple TV上指定ProxyPACURL,来播放部分有限制或动态网址的在线视频流。
赞一个,我打算这样试试搞学校教务处

典型的服务器配置错误。永远不能信任外来参数。

我一直在用 nginx做正向代理。
就是不支持https可惜了·

那只对高校开放的图书馆不也是可行?

你的apple TV的设置可以分享一下吗?

sni proxy 嘛

就是修改盒子大师给出描述文件http://proxy.ttdianshi.com:8000/mc?s=(你的SSID)&p=xxxx的ProxyPACURL为自己的PAC文件地址,加入自己搭建的代理服务器,再添加描述文件到ATV。
还有就是增加个人链接跳到自己生成的atv界面。

你需要squid

我的apple TV已经变成纯airplay TV了,盒子大师看不了

既然你能控制PAC,那就是正向代理的应用场景了,用squid吧。当然,acl要认真学。

如果仅仅是修改请求头内容,Chrome 有扩展就支持了,随便对头增删改。
正如 2 楼说的,永远不能信任外来参数。

不是计算机专业的,表示看不懂这些正向代理/反向代理之类。请问这类知识可以从哪里自学?比如看什么书?

嗯,Chrome中我用ModHeader。不过我这里介绍的其实是充分利用路由器来搭建轻量级的代理服务,提供给不能修改随意修改头内容的设备使用。

nginx做代理的支不支持二级代理

计算机专业不代表会去学习这些东西,代表着有更多时间学习这些东西,这个是和计算机网络有关的,可以看Computer Network(计算机网络),图解TCP/IP,再看看csdn关于正向代理,反向代理的文章,这些google百度都能找到。
吐槽一下学校的计算机专业,没有交什么实际的东西,名义上是科班出身,可是老师讲的不好,也没有多少人听。也许是学校渣吧~~~

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服