作者:NightCoffee
链接:https://www.zhihu.com/question/22547945/answer/21734955
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

通常出现这种情况的宽带是非电信、联通的(没错 移动也会这样)
分两种情况吧:
一、IP库没有及时更新,此时应该你电脑获得的IP地址和网站获得的IP总是一致的(最好不用带CDN的网站,那些一般CDN服务器和你同运营商就无法准确判断,比如IP138这类就不行)

详细说说第二种
二、小宽带运营商,移动(铁通)也在此列,由于众所周知的原因目前很多国内资源都存放在电信\联通的网络中,小宽带运营商不可避免的需要和它们互联互通,同时因为处于弱势地位一定是小宽带运营商交钱给电信\联通,而网内用户也一定是更多的访问那些对小宽带运营商来说“昂贵”代价的网外资源(比如谁会把网站托管在一个三级运营商呢……)。于是各种地下非法接入开始了~
1.初级这些小运营商连自己的合法IP段都没有,只能建立一个真正的大型局域网,用户获得私有IP,用户访问外网后通过运营商购买的电信带宽出去,和家里装个路由器,N多电脑共享差不多的意思。(现在还有很多乡村的个人宽带是这样的~私人承包大带宽线路,然后分销给村里的用户)

2.之后这些运营商成规模了,开始考虑要让网外用户能访问网内资源(说白了就是谁资源多哪个运营商就占优势),不然永远维持着没有让网外用户访问的网内资源就不可能强势起来了了。于是他们开始申请自己的IP段,为了让网外用户(即电信、联通等)能访问网内资源,就不能使用简简单单的NAT地址转换了,需要将自己的IP段BGP广播出去,让其他运营商用户也能知道这个IP属于谁,通过哪个线路能到达(这个代价也不少,比如只做与电信的互联互通,那么联通用户访问小运营商得绕道电信访问)。这个阶段的用户能获得真正的公网IP,被访问者应当都能知道你是什么运营商的,什么地区的

3.第二阶段维持时间很短暂,很快小运营商就把用户类型分为普通上网用户和机房用户(比如开网站之类的),把普通用户打回第一阶段(因为他们没有价值,大多数情况下不需要建立网站等公开服务被人访问),而机房用户则维持在第二阶段(也就是正规运营商阶段)

4.普通用户的情况则进一步发展,用户访问最多的仍然是网外的资源,小运营商要让网内用户达到流畅的速度就得随着用户规模不断的向电信\联通这些运营商购买带宽,而电信\联通也不傻,给运营商级别的价格远远会高于给企业和普通用户的价格。规模越来越庞大,需要越来越高,小运营商本身就以低价吸引的用户,利润也没大到可以负担如此昂贵的带宽费用,小运营商们自然开始想歪招了~

5.小运营商开始寻求各种企业,以企业名义向电信\联通等运营商购买带宽(价格便宜啊~),然后将自己的线路也接到那家企业,与企业购买来的电信\联通宽带进行NAT转换(同第一阶段,就和家里路由器没两样,等于把一个小网接到了大网上),同时小运营商因为有多个企业地下出口了,也会做一些策略保证每个出口均衡,而那些企业可能并不在你所在地,比如你在上海,这些企业分布在广东、安徽,那么你访问大运营商网站时,就会由小运营商把你数据送到那些地方企业然后出口到电信\联通这些运营商的网络上。
小运营商差不多如此,而移动这种说大不大说小也不小的运营商,他自己是有国际带宽出口的,如果访问国外网络还要走电信\联通这些企业的带宽自然不划算,于是会走自己的国际出口,所以会发现移动宽带(至少上海移动\铁通如此)访问国内的电信\联通网站IP会乱跳,而国外网站可以检测到真实IP

题主的问题差不多到这里可以结束了,应该可以完美诠释为什么家里宽带IP总显示在外地(因为出口就在外地嘛)

6.以为这样就完了么?当然没完,毕竟企业的出口带宽也要钱啊!也不是免费来的对吧~现在那种长城宽带呀~广电呀移动呀动不动就喊100M到户,要真就这样走企业出口岂不是一个用户就把一个企业的带宽给占掉了。所以现在还开始流行部署运营商级别的缓存系统(注意区分于CDN),不知道正确名字叫什么,网上搜到相关设备关键字是PPCache。这个缓存系统有神马功效呢,就是用户真要跑满100M几乎都是下载东西、看在线视频这些操作,而这些内容都是静态的,这个系统可以监听你的请求,把热门下载的东西给缓存到运营商网内,当其他用户请求时就可以直接从网内下载,轻轻松松达100M~

咦?你问我怎么办到让用户下次下载同一个链接时能从网内返回数据?运营商都能监听你的所有数据了,伪造一个TCP响应包还不简单,当你GET的时候,他比网站先给你个302重定向+断开连接,于是你就乖乖的被忽悠到缓存服务器下载了。(装个Wireshark会看的比较清晰整个过程)
举个栗子:本来你下载连接是http://im.qq.com/xxxx.exe,你点击后发现实际下载连接变成了xxx.xxx.xxx.xxx:xxxx/xxxxx/xxxxx/http://im.qq.com/xxxx.exe,当然也有聪明的运营商把网址MD5摘要一下之类的

看起来很美好有没有?全网数据都能全自动缓存到网内呢!但是现实是残酷的,部分网站视频播放器不会响应302,于是就没法播放视频。缓存系统脑抽一下或者网站同一链接更新了下内容,结果你下到的永远是老的内容。

同样的原理,小运营商还可以在你访问百度的时候把你重定向去带推广链接的百度,或者访问京东的时候带你去带推广链接的京东(真是百试不爽~!)以此获取更多的利益(钱啊钱~)

这套系统如此的“优秀”,以至于大运营商都效仿部署,咦?他们明明大多数资源就在网内了啊为何还部署这种系统?原因就是他们想让用户下载时连骨干网都不走,直接城域网里走走就解决了,超大的节省城市出口带宽呐~

利益相关?2013年9月~2013年11月被上海铁通(移动)坑过的人。发誓这辈子贵死也用大运营商宽带(不过看这个形势大运营商也开始玩缓存劫持了)

为什么家里的宽带的IP显示的是外地?的更多相关文章

  1. 路由器WAN口IP显示为10、100、172开头,网络被电信联通等运营商做了NAT转发

    摘要:路由器WAN口IP显示为10.100.172开头,网络被电信联通等运营商做了NAT转发 ... 路由器WAN口IP显示为10.100.172开头的解决方法方法一:找电信(10000号)或者联通( ...

  2. 首页技术支持常见问题宽带外网IP显示为10、100、172开头,没有公网IP,如何解决?

    1.表现形式: 路由器拨号获得的公网IP变成了一个以100开头的IP(或者是10.172开头),而打开ip138.com查询却又是另外一个IP,将100开头的这个IP到百度去查询下则显示所在区域为美国 ...

  3. 通过 DDNS 解决宽带拨号 ip 变化问题

    前面你的文章我已经写了 写了 DMZ 内网映射的 方式. 这样内网主机已经暴露在外网中了. 但是 拨号上网我们的ip是 会变化的.大概规律就是 每次拨号都会变化.如果不拨号,每 24 小时 ip也会自 ...

  4. Wireshark小技巧:将IP显示为域名

    "  本文介绍如何使Wireshark报文窗口的Source栏及Destination内的IP直接显示为域名,提升报文分析效率." 之前内容发现部分不够严谨的地方,所以删除重发. ...

  5. 如何使用jQuery实现根据不同IP显示不同的内容

    一些SEM的投放页会针对不同地域做针对性的内容推广,下面我把实现方法分享出来. 一.引用新浪提供的IP查询的js库 <script src="http://int.dpool.sina ...

  6. viirtualBox显示不了Ip并且无法上网的解决方式

      首先描述下我自己遇到的问题:就是在virtualBox下的ubuntu系统下,输入ifconfig,没有显示出ip,显示出了eth3,lo的相关信息.在网上也找了相关信息还是无法解决,终于在老大的 ...

  7. CentOS 7 配置静态 ip

    1. 需求场景: 在 CentOS7 上部署了一个 svn ,由于centOS7 默认是 dhcp 的,所以每过一段时间 ip 就会有变化,而 svn 要求 ip 是不能变的,不然没法同步. 网上找了 ...

  8. 用批处理文件进行TCP/IP设置,方便在家与办公IP切换

    在公司用公司分配的固定IP上网,回家后又要将本本设置为家里的固定IP上网,每次都要手动重复一个过程: 打开网络中心,选择本地连接,进入属性然后选择IPV4进行TCP/IP的设置,填入IP,子网掩码DN ...

  9. IP地址 A\B\C类

    互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式.常见的IP地址,分为 ...

随机推荐

  1. CentOS安装GoAccess

    官网 https://goaccess.io/ yum -y install glib2 glib2-devel ncurses ncurses-devel GeoIP GeoIP-devel安装依赖 ...

  2. 【RabbitMQ】三种Exchange模式——订阅、路由、通配符模式

    https://blog.csdn.net/ww130929/article/details/72842234

  3. SAO Utils – SAO风格启动菜单

    SAO Utils 是一款拥有 SAO(刀剑神域)外观风格的启动器,搭载各种各样强大的小工具. 随时随地.在屏幕任何地方 按住鼠标左键和右键并向下拖动 即可呼出应用启动菜单(触控设备直接支持双指下滑手 ...

  4. 2019网易笔试题C++--丰收

    题目描述 又到了丰收的季节,恰好小易去牛牛的果园里游玩. 牛牛常说他多整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛. 在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第 ...

  5. 【坚持】Selenium+Python学习之从读懂代码开始 DAY5

    2018/05/22 函数作为返回值 [来源:廖雪峰的官方网站](https://www.liaoxuefeng.com/) #No.1 def lazy_sum(*args): def sum(): ...

  6. 为centos虚拟机配置固定ip

    在virtual上安装centos虚拟机以后,发现虚拟机没有ip,无法联网 将虚拟机的网络适配器改为桥接模式,桥接到物理机的无线网卡 为虚拟机配置固定IP(vi /etc/sysconfig/netw ...

  7. linux递归查找文件内容并替换

    sed -i 's/原字符串/替换后字符串/g' `grep '搜索关键字' -rl /data/目标目录/ --include "*.html"` 上面是递归查找目录中所有的HT ...

  8. [整理]CHttpConnection的使用

    使用步骤: 1.构造一个CInternetSession的实例 CInternetSession* pSession =new CinternetSession(); //CInternetSessi ...

  9. Node.js开发入门—套接字(socket)编程

    Node.js的net模块提供了socket编程接口,方便我们利用较为底层的套接字接口来实现应用协议.这次我们看一个简单的回显服务器示例,包括服务端和客户端的代码. 代码 分服务器和客户端两部分来说吧 ...

  10. OO学习体会与阶段总结(测试与论证)

    前言   随着期末的到来,对于面向对象程序设计课程的学习也迎来了尾声.在最后一个月的从课程中,笔者对于面向对象程序规格实现层面的单元测试.正确性论证以及使用UML图描述程序的设计进行了深入的学习.通过 ...