被移动奇葩的网络坑后的小记

我在学校用的校园网,出口是教育网/移动切换。
访问电信、联通、教育网走的是教育网出口
访问移动、小运营商、国外是走的移动出口


大家可能知道libiconv-1.14的一个BUG,就是那个'gets' undeclared here,编译PHP之前必须先编译libiconv
于是我把源码fix以后重新打包了一个libiconv-1.14.tar.gz放在我的国外网站上。

我在宿舍给一台以前的电脑安装CentOS 7,安装CentOS 7以后我开始安装AMH(这个AMH安装脚本是我自己DIY过的,能支持CentOS 7)
结果竟然出现了那个'gets' undeclared here错误,我查看下载下来的源码,发现竟然没有fix?然后我重新检查了服务器上的压缩包,里面确确实实修复了BUG的啊,为什么下载下来的文件和服务器上的文件不一样?

然后我重新从我的服务器上wget了一下我那个修改过的libiconv-1.14.tar.gz

发现问题了:


20140918015041


怎么突然来了个302跳转?我服务器上没设置这个跳转规则啊!


开始我没留意这串地址的问题,我使用站长之家的HTTP状态查询工具查询我那个URL地址,返回的是正常的200状态码,于是我开始怀疑是wget自带的校验,因为这个libiconv-1.14.tar.gz是被我修改过的,所以可能wget发现有问题就自动跳转到ftp.qnu.org上去下载官方版本了,但不管我URL地址的后半部分怎么填,即便是一个不存在的URL地址,只要最后的文件名是libiconv-1.14.tar.gz ,他都会302跳转到下面那一串地址。

折腾了十多分钟,才想起仔细观察这个302后的地址,查了一下那个211.136.8.30的IP地址,卧槽,北京移动!!!!!!我瞬间知道原因了——移动大缓存服务器!!

关于“移动大缓存服务器”我不想多讲,简单来说就是,移动的网络就是很多NAT+很多缓存服务器构成的,使用移动宽带(包括我们学校的移动出口)的时候,我们发出去的HTTP请求很多都被移动重定向到了它的缓存服务器上了,这样移动公司就可以节省很多网间结算的费用,因为如果直接访问国外服务器或者国内的电信、联通服务器,移动公司是要给国外的网络运营商或者电信公司、联通公司付钱的,所以它用了一大堆缓存服务器来缓存其它运营商的内容,这样就能省下很多钱!!!

移动这个大奇葩网络,处处都是访问缓存,它重定向之前检查一下文件内容或者对比一下文件的修改时间也好啊,只要文件名一致就直接匹配到他的缓存上面去了!我在自己的网站上放了一个空白记事本,改名为libiconv-1.14.tar.gz,然后访问这个空白文件,它照样302跳转!!这尼玛。。。

标签: none

添加新评论