一般的工作环境中,最常用的办公模式还是内网办公。嗯,为了安全嘛,但是关键特么整个网络都是内网的。作为一个拷贝忍者,这让我十分痛苦,大家应该都懂磨磨蹭蹭用手机百度的痛了。有的公司好一点点,会给你一个代理,然而也是80%的网站都访问不了,或很多图片也看不到,微信什么的也没法登。一个阉割版的外网,就像原本是密不透风的铁皮房给你换成了鸟笼一样。
研究了一上午,终于有办法解决这个问题了,首先我是笔记本,是可以连接wifi的,网线是内网。解决方式就是:通过手机开热点连接WIFI访问外网,通过网线连接访问内网。
唯一美中不足的是,我可怜的流量消耗更快了。。。
首先连接网线(内网)和WIFI(外网),如图
然后打开cmd命令行,输入
route print
查看系统路由,看到下图这里,如图两个0.0.0.0的行,分别就是我的网线和WIFI。
记住网关行,这里是:172.16.149.1和192.168.43.1,而且要分清哪个是网线哪个是WIFI,如果不清楚可以到控制面板的网络连接里查看。
分清楚后,我们开始配置route路由
首先删除旧的两个路由,输入
route delete 0.0.0.0
提示操作成功后,再设置外网的网关路由,输入
route -p add 0.0.0.0 mask 0.0.0.0 192.168.43.1
这个是设置WIFI为外网访问,-p参数是设置为永久路由,就不用每次都反复设置了。
然后我们会发现现在已经可以访问外网了,但是内网还不行。
内网的设置要麻烦一点,需要一次一次设置,没法一次搞定,例如我有个内网的网址需要访问:
http://192.168.21.11:9090/html/index.html
就需要把192.168.21.11这个网段设置路由为内网网关,输入如下:
route -p add 192.168.21.11 mask 255.255.255.255 172.16.149.1
或者删除mask 255.255.255.255,直接这样也可以
route -p add 192.168.21.11 172.16.149.1
mask 255.255.255.255是什么?
mask表示此路由项的子网掩码,如果不指定,默认就是255.255.255.255。这个我的确不知道原理是什么,一开始我按百度上的输入255.255.255.128,没用。然后按照控制面板里看到的255.255.255.0,也没用。最后实在搞不定,删除了这一块,也就是使用默认的255.255.255.255,没想到就成了。
注意,这只是设置了一个网址,你内网有多少网址,就要设置多少次,没办法,你不能指望它自动帮你区分哪个是外网的网站,哪个是内网的网站。
至此,我们已经成功了,可以简单的同时访问内外网了。
但是仅仅如此还是不够的,我们公司的内网,不仅仅是IP+端口就能解决的,它还有【域名】。
有些内网网址,是通过域名访问的,这样你根本就不知道它的IP地址。
虽然有一种方法,可以很快获取到域名的IP,就是在cmd命令行中,输入ping www.xxx.com,如图:
但是,内网有内网的DNS,外网有外网的DNS,如果我们不进行某些配置,ping是获取不到IP的,如下图:
什么是DNS?
DNS是域名系统是英文缩写,简单说它就是个目录,专门用于将域名解析成IP的。通常我们访问一个网站,会自动先访问DNS获取到域名的IP,再进行连接。国内也有好几个公共的DNS,比较有名的像114.114.114.114,这个是国内移动、电信和联通通用的DNS。
要访问内网的DNS解析内网域名的IP,首先就要配置内网DNS的路由了。
关于如何查看自己内网的DNS服务器地址,可以参考控制面板的网络连接的那张图,免得大家往前翻,我再贴一次图:
这里我是这两个:172.26.6.29和172.26.1.15。
那么就要给他们配置路由,如下:
route -p add 172.26.6.29 172.16.149.1
route -p add 172.26.1.15 172.16.149.1
这样,我们会发现,内网的域名可以通过ping获取到了
然后就可以通过配置路由,搞定域名了。
然后我们还会发现一个问题
虽然内网的域名一下就解析出来访问成功了,但是外网的域名解析奇慢无比,一个大概要解析10-30秒,这就有点难受了,难道我注定不能轻松的在内外网中穿梭吗?
又是个把小时的搜索,找到了一个解决方法,配置网络接口跃点数。
什么是网络接口跃点数?
简单来说就是:跃点数越小,网络优先级越高。
说到底,太慢的原因,还是因为DNS默认优先使用的是内网DNS,然后才到外网。通过配置这个点数,我们让外网DNS的权重更高了一些,它也会优先去访问外网的DNS。并且通过我个人的测试,内网的DNS解析也不会慢到哪去,是可用的。
首先还是在控制面板的网络连接,打开网线连接的内网,以太网=》属性=》TCP/IPv4的属性=》高级=》接口跃点数,如下图,这里我们先设置成15,20也行,反正最好大于10。
然后跑到WIFI的网络属性里,同样的流程,WIFI连的是外网,反正要低于内网的跃点数,设置跃点数为10或12。
这里我手动设置了一个DNS,但是感觉好像可设可不设,设置为自动获取貌似也行。
现在,外网DNS解析过慢的问题也解决了~
虽然概率很低,但是有时候会产生这种情况,同一个域名,在外网和内网的DNS都能解析出来。
而本应该是内网的域名,却优先被外网解析出来了,变成了不知道是啥的IP,那自然访问就必然是失败的。
本来我以为这种事应该轮不到我,但是还是我天真了,这些麻烦事永远都是接踵而至。
如图,这很明显就是解析错了,变成了一个外网的IP,它实际上的IP应该是192.168.0.216。
最终还是给我解决了,我们可以手动配置DNS解析。
打开系统的hosts文件,位置在C:windowsSystem32driversetcx下
在最下面一行输入如下:
192.168.0.216 sso-int2.xxx.com
手动解析域名IP,重新PING一下,如图,这就对了嘛。
然后还是那套组合拳,route add配置到路由里,OK了。
别紧张,目前是没碰到新问题了,最后这块是我分享的一些bat脚本。因为我不能长期保持双网混合使用的情况,而是要时不时切换成:①只用内网,②双网混合。可怜的流量,禁不起挥霍。。。
每次都要输入cmd那些,也是太麻烦了,所以我写了一些bat脚本,在切换网络时来个双击执行,就可以轻松切换了,如下图
关于创建bat文件,创建一个txt文本,复制代码进去,然后文件名后缀改成.bat就行了。
然后贴一下代码
切换到双网混合:
@echo off
rem 切换外网网关为手机热点
route delete 0.0.0.0
route -p add 0.0.0.0 mask 0.0.0.0 192.168.43.1
rem 公司DNS1
route delete 172.26.6.29
route -p add 172.26.6.29 172.16.149.1
rem 公司DNS2
route delete 172.26.1.15
route -p add 172.26.1.15 172.16.149.1
rem 打包发包平台
route delete 192.168.21.11
route -p add 192.168.21.11 172.16.149.1
我只截取了一部分,重点是如果我们要添加一个新的内网网址,如上继续往下填即可
切换到公司内网:
@echo off
rem 切换为内网网关
route delete 0.0.0.0
route -p add 0.0.0.0 mask 0.0.0.0 172.16.149.1
rem 公司DNS1
route delete 172.26.6.29
rem 公司DNS2
route delete 172.26.1.15
rem 打包发包平台
route delete 192.168.21.11
rem是注释就不说了,其实这里的delete去掉也可以,加不加影响不大,毕竟整个网络环境只有内网了嘛。
但是我有点小小的强迫症,一定要彻底还原才行,所以前面route add进去的路由,在这个脚本里我就都删掉了。
如果要删除配置的所有路由,可以先执行一次切换到公司内网的脚本,删除大部分路由,再执行一句:
route delete 0.0.0.0
即可完全恢复路由。
然后重连网线或重连WIFI即可,它会像最开始一样,自动创建一个活动路由的。