因路由表错误造成的VPN无法正常上网怪事

小柊 发表于 2016年01月04日 18时16分44秒

自从实验室里部署了两台服务器之后,就经常被我拿来以权谋私,拿来干一些私人的事情——挂挂迅雷百度云啊,当肉鸡发起小型的DDoS啊等等等等等等。

大概是今年11月下旬,我在学校里的电信闪讯到期了,这下咱寝室里的网络就彻底成为移动网。移动网什么的大家都懂啊,很多网站都上不去,撇开那些奇奇怪怪嘿嘿嘿的网站,一些正常网站也跟着躺枪,比如说Pixiv什么的,而且移动网上电信服的网游简直卡的飞起,根本玩不动。所以咱就把目光放到了实验室的服务器上。实验室的网络是电信的,于是咱就直接在实验室的服务器上开启了VPN服务,为了能在寝室楼里直接访问服务器,还在实验室的路由器上专门做了DMZ。一切就绪之后我就能在寝室里随时随地的通过实验室VPN看Pixiv了。

但好景不长,当时也不知道是怎么搞了一搞,VPN就开始变的不太正常,举个简单的例子来说,就是用查看IP的网站看自己的IP,发现自己的被识别成移动IP,但Pixiv还是可以正常访问。一开始是以为移动乖了,解除了对Pixiv的封锁,但断开VPN连接之后发现还是访问不了。当时也重新调整过几次服务器设置,但都还是老样子。最后认为反正没啥实质上的影响,毕竟Pixiv能用也就没有继续折腾。

就这么拖到了十二月底,原本晚上不断网的移动也开始断网了,不过这个断网比原先直接关闭DHCP服务器来的温柔——断网后还是能获取到IP地址以及访问内网,但是无法访问外网,估计是移动在时间到了之后把学生宿舍的宽带出口给断了。不过这就给了我机会,咱可是在内网有VPN服务器的人!

然后问题就来了,断网之后挂上VPN,QQ什么的都能正常使用,但是火狐就是没法浏览网页,永远都是提示找不到服务器。

作为一个学计算机的人,想必都知道这是DNS的问题。

嗯……断网之后连校内的DNS服务器都停止工作了么=,=

结果出乎意料的是我的手机挂上VPN之后倒是畅通无阻,何止挂QQ,用UC浏览器看网页也畅通无比。

这绝对有问题。

首先看看整个网络布局(已简略其他设备,第一次画这种,如有错误恳请批评指正)

 

手机正常,电脑不正常,这就排除了VPN服务器设置错误的情况。那就是我的电脑有什么地方设置有问题。首先看看IP设置好了。首先是电脑端VPN拨号后根据DHCP协议自动获得的IP设置:

 

安卓手机查看VPN拨号的IP情况就比较麻烦,需要安装一个“超级终端”,在超级终端里键入命令:

netcfg

回车之后就可以看到VPN拨号的IP。我在这里也用红框标出来了:

 

注:192.168.100.10/32表示IP地址为192.168.100.10,子网掩码32位,即255.255.255.255。

 

这不科学啊,IP地址和子网掩码都差不多啊!

忽然想到那个奇怪的IP归属问题,我赶紧在手机上查看IP归属:

 

然后是电脑上:

 

明明挂的是同一个VPN,两者查询结果居然完全不同……

突然觉得这个问题很诡异,挂着VPN的电脑居然无视VPN直接发出请求……

 

纠结了很久,注意起一个细节:电脑端显示VPN连接的DNS服务器是192.168.1.1,会不会是这个DNS服务器在从中作梗呢?

直接请求一下试试看吧?

手机端请求192.168.1.1

 

这个页面是实验室的路由器管理页面

 

电脑端请求192.168.1.1

 

这个是我寝室的路由器啊喂!!

事情突然变的明朗了,电脑在VPN拨号完成后,根据DHCP协议获取到IP、子网掩码、网关、DNS等信息,在这里,获取到的DNS服务器192.168.1.1应该是实验室的路由器IP,然而由于某种原因我的电脑把这个192.168.1.1认为是我寝室里的路由器。但是寝室里的路由器在断网之后唯一的作用就是访问内网,连基本的DNS都做不到。

现在的目标就是要找到为什么我的电脑分不清楚192.168.1.1到底是寝室还是实验室的原因。

这种事情很明显是有关于路由的,Win键+R键呼出运行窗口,键入CMD并回车(需要管理员权限),呼出命令提示符。

在命令提示符中键入命令

route print

打印当前系统所有路由:

 

我们可以发现这么一条异常路由:

 

这就是我的系统会把所有向192.168.1.1的请求发送给寝室路由器的罪魁祸首!

由于这个路由记录是错的,我们直接删掉就好。

键入命令:

route delete 192.168.1.0

 

不出意外的话系统会提示“操作完成!”,这样我们就把这条错误的路由信息从系统路由表中清除了。这个时候我们再去访问一下IP查询网站和192.168.1.1试试看:

 

 

恢复正常!

 

小结:这次的问题比较隐蔽,出现在了一般人都很少接触的路由表上,又学习了新的知识,有了新的体验。其实电脑有问题不用慌,很多问题找找谷歌百度,随便翻两页都会有解决方案。不过这次的问题翻了许久的百度也没有找出个所以然来,今晚给自己加一个鸡腿以示奖励。

 

附:路由表是个啥?

在计算机网络中,路由表或称路由择域信息库(RIB是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。

在现代路由器构造中,路由表不直接参与数据包的传输,而是用于生成一个小型指向表,这个指向表仅仅包含由路由算法选择的数据包传输优先路径,这个表格通常为了优化硬件存储和查找而被压缩或提前编译。

 

 

 

小柊

2016年1月4日 18:11:47

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注