注册
登录
提问时间:2016/6/9 9:24:34
我曾经拿squid试过了,squid3会修改客户端的http报文header里的host值,nginx代理不了https。

比方这个请求头
CONNECT http://a.com HTTP/1.1
Host: http://b.com

squid会打开http://a.com
有些代理会打开http://b.com

我想架设的样子是这样的:

高匿名代理:不要修改客户机的请求报文,这样的话对方网站服务器看起来就像有个真正的客户浏览器在访问它,这样客户的真实IP才是真正隐藏的,服务器端发现不了我们使用了代理IP!
1楼(匿名用户)

你可能需要的是vpn。买个digital ocean的vps就行
2楼(未知网友)

建议LZ研究一下tor的实现
3楼(未知网友)

用站大爷代理IP,你值得拥有,最佳选择,全地球人都知道
4楼(未知网友)

https不行,要完全透明需要nat。
5楼(未知网友)

我估计我应该理解了楼主的意思,随便说几句,有错误请指出

1. HTTPS代理IP挺麻烦,一般的代理IP是建立一个隧道,proxy服务器收到HTTP请求以后,向服务器发送HTTP/1.1 200 Connection established,然后双方互相转发数据。这样服务器一定会知道客户端在代理IP后面。
如果 代理IP假装是客户端,那就是中间人攻击了。一般来说,你不可能获得客户端访问的 URL 到底是什么。也许可以自签一个证书来解决?

2. IE浏览器使用代理IP置时候,发给代理IP的内容和没有使用发给服务器的内容是不同的。根据我知道的,直接请求一般会是 GET / HTTP/1.1而发给服务器的会带着域名。楼主说的 header 那个不清楚。所以需要确认一下。而且,HOST 那个值具体什么意思我现在还搞不明白,正确的代理IP到底要根据请求的 path 建立连接还是HOST?有知道的请告诉我。。。而且坑爹的是不同浏览器的 HOST好像还不一样。记得https时候 Firefox 还是 Opera 的 HOST 里会带:443。。。所以不能确定到底有多少坑

3. 有一种和题主需求类似的实现,Interception proxying,Interception proxying 对 client 来说假装是 server,对 server 来说假装是 client。但是据 polipo 的作者说法,这种实现问题很大,不好说是不是能保证和协议兼容:


Interception proxying is a fundamentally broken design (see for example this posting and RFC 3143, Section 2.2.2), and will not be supported by Polipo.

不过,题主这种需求肯定有人想过。多百度一下应该有可用的、不完美的方案,但是既然标签里加了 VPS,我猜其实只是想找个好用的 FQ 方法吧?
立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品