为什么家里的宽带的IP显示的是外地?
链接: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显示的是外地?的更多相关文章
- 路由器WAN口IP显示为10、100、172开头,网络被电信联通等运营商做了NAT转发
摘要:路由器WAN口IP显示为10.100.172开头,网络被电信联通等运营商做了NAT转发 ... 路由器WAN口IP显示为10.100.172开头的解决方法方法一:找电信(10000号)或者联通( ...
- 首页技术支持常见问题宽带外网IP显示为10、100、172开头,没有公网IP,如何解决?
1.表现形式: 路由器拨号获得的公网IP变成了一个以100开头的IP(或者是10.172开头),而打开ip138.com查询却又是另外一个IP,将100开头的这个IP到百度去查询下则显示所在区域为美国 ...
- 通过 DDNS 解决宽带拨号 ip 变化问题
前面你的文章我已经写了 写了 DMZ 内网映射的 方式. 这样内网主机已经暴露在外网中了. 但是 拨号上网我们的ip是 会变化的.大概规律就是 每次拨号都会变化.如果不拨号,每 24 小时 ip也会自 ...
- Wireshark小技巧:将IP显示为域名
" 本文介绍如何使Wireshark报文窗口的Source栏及Destination内的IP直接显示为域名,提升报文分析效率." 之前内容发现部分不够严谨的地方,所以删除重发. ...
- 如何使用jQuery实现根据不同IP显示不同的内容
一些SEM的投放页会针对不同地域做针对性的内容推广,下面我把实现方法分享出来. 一.引用新浪提供的IP查询的js库 <script src="http://int.dpool.sina ...
- viirtualBox显示不了Ip并且无法上网的解决方式
首先描述下我自己遇到的问题:就是在virtualBox下的ubuntu系统下,输入ifconfig,没有显示出ip,显示出了eth3,lo的相关信息.在网上也找了相关信息还是无法解决,终于在老大的 ...
- CentOS 7 配置静态 ip
1. 需求场景: 在 CentOS7 上部署了一个 svn ,由于centOS7 默认是 dhcp 的,所以每过一段时间 ip 就会有变化,而 svn 要求 ip 是不能变的,不然没法同步. 网上找了 ...
- 用批处理文件进行TCP/IP设置,方便在家与办公IP切换
在公司用公司分配的固定IP上网,回家后又要将本本设置为家里的固定IP上网,每次都要手动重复一个过程: 打开网络中心,选择本地连接,进入属性然后选择IPV4进行TCP/IP的设置,填入IP,子网掩码DN ...
- IP地址 A\B\C类
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式.常见的IP地址,分为 ...
随机推荐
- MongoDB中设置expire过期自动删除
关键词: expireAfterSeconds.TTL TTL Time to Live 类似Redis中的expire机制,MongoDB也可以设置过期自动删除的表. MongoDB的过期设置依赖索 ...
- jenkins+Gitlab持续集成环境配置教程
环境简介: Jenkins 2.156(本地win10) GitLab Enterprise Edition 10.1.4-ee (远程服务器) Apache Ant 1.9.13 (本地win10) ...
- 单一docker主机网络
一. 容器网络模型: Docker定义了一个非常简单的网络模型,叫做container network model(CNM).如下图所示:
- SpringBoot集成dubbo实例
项目总览图: 最下面有项目的pom,具体内容: 项目运行注意事项: 先启动 provider, 将providers.xml中 port 先修改为20187 执行test目录 下的DubboProvi ...
- Objective-C中,类方法的getter和setter可以用点运算符吗?
Objective-C中,对象实例property的getter和setter可以使用点运算符来操作,那么类方法的getter和setter可以使用点运算吗? 答案是肯定的. 看如下代码: #impo ...
- “Hello World!”团队第六周第七次会议
博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.checkout&push代码 一.会议时间 2017年11月23日 ...
- Notes of Daily Scrum Meeting(11.11)
Notes of Daily Scrum Meeting(11.11) 今天是11月11号光棍节,不知道大家的购物热情被点燃没有,有没有买到自己心仪的东西.额,今天我们的团队任务进度和昨天差不多, 每 ...
- Daily Scrumming 2015.10.21(Day 2)
今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 配置ruby与rails环境 配置mysql与数据库用户管理 配置apache2环境 学习rails Ac ...
- 第二阶段每日站立会议Third Day
昨天对图片显示的大小进行调整 今天对于程序中的字体显示进行细化修改,使界面更美观 遇到的问题:当图片太小时,显示一块灰色区域,不美观
- spring冲刺第四天
昨天进行了地图的初步编写,但是存在BUG. 今天上网查找了错误的原因,改进了源代码,使程序可以执行. 遇到的问题;感觉地图界面太简单,需要作出更多的场景,这就需要不断的完善.