首先要声明一点,双网卡一台电脑拥有两个网关是不可能的,因为默认网关(default gateway)只能是一个。我开始考虑这个问题已经一个月了,因为学校的带宽小(10M),防火墙的性能也不好,web服务器总是要设为内网IP,然后在防火墙中映射总不是好办法,学校用的南大苏富特也不是什么好东西,映射ip后在内网用外部的IP居然无法访问。(有高手说防火墙中要映射两次的,但研究了好久才相信这款防火墙并没有提供这样的功能,事后厂家也确认了这一点。)更令人生气的是防火墙一受到攻击,连网站也访问不正常了,电教馆还打电话来问是不是域名换了,呵呵。
接下来的想法看起来很美,给服务器安装两块网卡,分别设置不同的ip和网关(内网和外网),外网的通过外网网卡来访问,内网的通过内网网卡来访问,似乎实现起来很简单,但事实上很难啊,因为默认网关(default gateway)只能是一个!
在网上找资料,一不小心就有了点眉目了,谁叫大学课程中从来不会教点有用的东西?那些所谓的培训总是不知所云,呵呵,发了点牢骚。
解决的办法就是:
1、将其中一块网卡(如外网)设置默认网关;
2、手工加上一条静态路由,让另一个网段(内网)的数据经过第二个网卡。使用route命令,命令的范例如下,希望能帮某些同志一点小忙。
参考命令:
范例1、route add -p 10.0.0.0 mask 255.255.255.0 10.40.4.200(让对10.0.0.0的访问走10.40.4.200的网卡,mask 后面是子网掩码)
范例2、route add -p 10.0.0.0 mask 255.0.0.0 10.40.4.200
范例3、route add -p 0.0.0.0 mask 0.0.0.0 10.40.4.200(不用说了吧,让所有的访问走10.40.4.200)
说明:
1、加上-p参数,加入的路由为永久路由,不会因为电脑重新启动而被初始化。10.40.4.200是我的电脑网卡IP。 输入route 可以得到更多的帮助。
2、如果你的电脑已经有两个网关(如使用了SoftEther),用route print可以看到两条0.0.0.0的路由,可以先删除0.0.0.0的路由,然后重新添加。
附:在网络上找资料时,常常看到有人在问类似的问题,可以看出大家对路由方面的知识很陌生。于是提供以下资料,供大家参考: