背景:

    当前在深圳某某公司工作,是属于外包人员,只能有一台电脑。

    之前是办公网络申请了开发网权限,可以同时访问内外网,最近内部规定必须强制所有办公网络的机子不能访问开发网络。

原想:这次有理由再申请一台机器了。最后发现还是我想多了,网络只能切换到开发网,访问外网各种不便。

环境:

1、开发机必须入域,只能访问内网网站(无法百度了);

2、机器强制安装某运维软件,无法关闭运行,该软件没隔一段时间就会做网络修复工作等等;

3、公司wifi可以直接访问外网(百度等);

4、我有一个小型的无线网卡,哈哈哈~~~

实现过程:

有无线网卡就可以访问外网了啊,问题解决~~~~

 

 

 

 

 

不行,两个网卡使用真麻烦,刚开始要连外网就把本地连接关闭,很烦,于是开始折腾~~~

 

实现过程:

1、开启无线和有线两种网络;

2、让对应访问网站走对应的网卡,

网卡信息:

 

 

 

I、首先,内网的ip都是以10开头的局域网ip,我们把内网的ip设置为走内网网卡(本地链接)之前得先确保无线网卡的请求10.66.123.1 不会跑到内网网卡上,所以先设置:

route -p ADD 10.66.123.0 MASK 255.255.255.0  10.66.123.1 METRIC 20 IF 22

然后设置:

route -p ADD 10.0.0.0 MASK 255.0.0.0  10.19.81.1 METRIC 20 IF 12

确保局域网ip走内网网卡。

 

II、接下来就是让非局域网的ip都走无线网卡了。

这里会受到运维软件干扰,运维软件每过一段时间就会修复有线网络,其中包含如下图

 

设置,即使默认的网络都走到内网网卡。于是我们原本要删除所有0.0.0.0的默认如有到无线网卡就失败了。于是耍点小聪明根据路由优先级为越具体越优先的原则(网上查的,找不大出处了,应该没错吧)将默认路由拆开:

原路由规则:

route -p ADD 0.0.0.0 MASK 0.0.0.0 10.66.123.1 METRIC 20 IF 22

拆分为:

route -p ADD 127.0.0.0 MASK 128.0.0.0 10.66.123.1 METRIC 20 IF 22

route -p ADD 0.0.0.0 MASK 128.0.0.0 10.66.123.1 METRIC 20 IF 22

这样就能确保不会被运维软件添加的规则干扰了。

现在实现了通过ip访问走对应的网卡了。

3、ip可以访问了,但是域名访问的话,就有dns问题。最初以为内外网要分别用不通的dns,于是建了个本地dns服务器,后来发现内网的dns直接可以满足外网域名的解析。于是直接使用内网的dns就可以了,只需要操作:

把无线网卡的dns设置为内网网卡的dns,譬如,我设置为了10.6.18.42

4、再做访问还是有些问题,运维软件定时修复网络的时候会做以下事情:

把浏览器的代理设置为对应脚本来执行,每次访问域名的时候会先运行该脚本来判断是否要走代理,要走什么代理。你修改后,它都会把这个设置改回来。

下载对应脚本的代码(js代码)查看,它的规则里面大概包含了

A)局域网ip直接访问;

B)dns解析后为局域网的直接访问;

C)Dns解析后非局域网的走对应代理;(用来支持临时访问外网功能使用的)

这里我们用不上这个代理,所以这个脚本是不需要用的,但我们改不了设置。

解决方法:

A)创建proxy_devnet.pac脚本内容如下,即不使用代理,直接正常访问:

function FindProxyForURL(url, host) {

            return "DIRECT";

}

B)把脚本放在可访问的服务器上,最后不要太慢(这个脚本一定要在自己控制下,不然安全有隐患,我就不给公用地址了),或者本地搭建下服务器,把脚本放在本地(就是每次访问网络前都要确保本地服务器开启,可开机启动)

C)把自动配置脚本的域名通过修改hosts转向到B中设置的服务器的ip,例如:

Proxy.test.com 127.0.0.1

 

 

这样整个过程设置完后,就可以达成自己要的双网卡访问内外网的目的了,接下来就是把以上设置写成bat脚本,根据网络来自动设置了(例如申请ip网段变化等原因,或任何设置有变更),我没写过bat脚本,先去学习下。

 posted on 2016-05-30 09:52  南宫千寻  阅读(1139)  评论(0编辑  收藏  举报