隐藏在squid3的HTTP代理服务后面的主机IP地址为什么能检测到?
来源:互联网 发布:网络文明公益广告 编辑:程序博客网 时间:2024/06/09 22:52
前几天在自己的linode上装了个squid3,用来在个别情况下挂个代理进行测试。使用一切都正常,squid3的配置网上也有一大把,这里就不赘述了。但很快发现一个有趣的问题,就是访问一些IP检测网站时还是会看到我的原始IP,例如:
下面三个图为三处不同的网站检测出的结果,其中IP为106的是我配置了squid3的HTTP代理服务器,IP为159的是我的本机。
-------------------------------------------------------------------------------------------------------
图1,直接使用百度内置服务显示出了代理IP
-------------------------------------------------------------------------------------------------------
图2:,访问ip138则显示了内网IP;
-------------------------------------------------------------------------------------------------------
图3,访问ip.cn则同时显示了处于代理后的主机与代理本身;
-------------------------------------------------------------------------------------------------------
从最后一张图可以发现,外部服务器可以准确的识别出我的代理服务器和代理后面的主机的IP,显然很多情况下这不是我想要的结果,同时我也很奇怪为什么会这样。
于是用google开始一番搜索,首先找到这个帖子:代理工作原理 。 其中有人问到代理服务器的具体工作原理,这个原理我本身是了解的,但回答中透露了一个重要的信息:“The proxy, depending on the configuration, will often add a "X-Forwarded-For" header to the HTTP request. ” 这里算是接近真相了。
然后继续搜索X-Forwarded-For,自然找到其维基百科的介绍:里面说的更详细了,X-Forwarded-For是代理服务器在转发HTTP时加上的标识原始请求主机信息的字段,其格式为:
“ X-Forwarded-For: client, proxy1, proxy2 ”
该格式还可以支持多个代理串行使用,最左边的client表示最原始的主机,后面依次加上后续的代理。
到这里就清楚了,squid3在默认情况下转发我159主机的请求时附加了X-Forwarded-For字段,并填入了我的159的IP。这也就是为什么上图中后面两个检测网站成功识别出了所谓的内网IP(理论上透明的代理是可能识别出内网IP的)。
到这里问题基本解决。收获了一个HTTP头X-Forwarded-For的设置和含义。另外需要注意的是,这个字段显然是不可信的,毕竟最后一站的代理可以任意修改这些数据。因此服务器不可完全信赖该字段表示的IP,因为这里的IP完全可以任意伪造等。
一句话回答题目的问题:默认情况下squid3不是透明代理(或者说要搞清楚:不是所有的代理都是透明代理。虽然我们现实中用代理的大部分情况是希望透明代理,进而隐藏身份的)
- 隐藏在squid3的HTTP代理服务后面的主机IP地址为什么能检测到?
- 312个免费高速HTTP代理IP(能隐藏自己真实IP地址) - 杨尚川的个人页面 - 开源
- ping多个IP地址的实现,检测局域网内存在的主机
- 广播地址跟子网掩码后面的0(主机数)有关,与IP地址后面的0无关
- Ubuntu14.04代理服务squid3的安装和设置并配置android studio代理
- IP地址的隐藏
- 获得主机的ip地址
- 如何禁止除某个IP端的其它IP地址访问主机的某一服务
- Delphi-IP地址的隐藏
- 能在局域网中使用的IP地址有哪些?
- 【网络代理】代理IP检测的知识
- 获得本主机的IP地址
- 得到主机虚机的ip地址
- 使用ACE获取主机的IP地址
- 修改openstack云主机的IP地址
- Squid3.0反向代理的安装与配置
- Linux下Squid3.0反向代理的安装与配置
- 网络中是通过硬件地址找到目的主机的,那为什么还要有IP地址呢?
- python学习的思维导图笔记--字符串
- MySQL Silent Install
- 设计模式--迭代器模式
- 使用viewpagerindicator框架模仿网易新闻客户端
- Android加密手机
- 隐藏在squid3的HTTP代理服务后面的主机IP地址为什么能检测到?
- 在conf 文件夹的 server.xml 是 Tomcat 最为重要的配置,下面是 server.xml 的常用设置:
- 内存对齐
- spring framework
- javascript 获得网站根目录
- 周二!
- oracle创建表-序列-触发器
- wikioi Fibonacci数列(poj 3070)
- 学习iOS开发之生成二维码