2024年5月17日发(作者:pdfedit编辑器 免费)
解决电脑双网卡无法上网的问题
有的公司或机构的内网是封闭的,只有内部网络,没有出口网关,上不了外网的。但有
时候我们希望再加一块网卡连上外网线,让电脑既能访问内网,又能访问外网(互联网)。
然而这两块网卡好像不能共存,要上外网的时候只能禁用内网卡,要上内网时只能禁用外网
卡,有没有办法实现内外网共存呢?
可以实现的。
首先网络拓扑如下:
有双网卡的电脑原来只有一块网卡的时候,那块内网卡的IP是公司分配的。该电脑被划分
在vlan10里,分配了一个IP:192.168.10.5/24位掩码,网关为192.168.10.1
后来想让这台电脑能访问互联网,于是又加了一块外网卡,接到能上互联网的路由器上,该
路由器默认分配的IP是192.168.1.0/24网段的,例如外网卡获取到的IP是192.168.1.14,
默认网关是192.168.1.1在有双网卡的电脑上的cmd命令行里输入ipconfig回车:
上图显示确实有两块网卡,且IP地址都是正确的,都有网关,ping各自的网关都能通
当两块网卡都启用时,却不能上网了(不能上网的情况有两种)
1)有时是不能访问内网的服务器(IP为192.168.30.254),但可以上外网
2)有时是可以访问内网服务器,而不能访问外网
因为这两块网卡都配有默认网关,当要访问的目的IP与这两块网卡的IP不在同一个网段时,
计算机就会把数据发给默认网关,从网关出去了。有时候能ping通内网的服务器是因为该
数据包从内网的网关出去了,而ping外网IP不通,是因为该数据包也从内网网关出去了,
而内网又没有出口到互联网去,所以不通。
同理,有时能ping通外网而不通内网,是因为数据包都从外网网关出去了。
也就是说,当目的IP与本机的网卡IP在同一个网段时,都能ping通,而不在一个网段时,
会从网关转发出去,那么到底从哪个网卡的网关出去呢?
这得看计算机的路由表,在cmd命令行输入route-4print
1)当内网卡是连网线,外网卡是一块无线网卡时,看到的路由表可能如下:
内网卡IP为192.168.10.5外网卡IP为192.168.1.14
上图中每一行表示一条路由,一行中最后一个数字表示跃点数,跃点数越小越优先走这条路
由。所以这时是优先走192.168.1.1这个网关的(就是外网卡的网关),所以这时是ping不
通内网的服务器的。
2)当内网卡和外网卡都是有线网卡时,看到的路由表可能如下图所示:
上图表示两条默认路由的跃点数一样大,是一样优先的。是不是说数据包可以从两个网关出
去呢?不是的,这只是普通的电脑,不具备负载均衡的功能,它还是只能选择一个网关出去。
当两块网卡的默认路由跃点数一样时,再看网卡接口的序号,序号小的优先。
了解了以上基本知识,我们再来想想解决方案,实现既能访问内网,又能访问外网的需求。
方案一:
当公司的内网只有一个网段时(比如都是192.168.10.x/24),就不要设置内网网卡的网关了。
而外网网卡的网关是要设置的(如果是自动获取的那就用它自动获取的配置吧)
这样就行了
等一下,我们的内网网卡是自动获取IP的,怎么删除它的默认网关呢?
以管理员身份运行输入如下命令(最后的192.168.10.1为内网卡的默认网关)
这不就没了。
方案二:
内网有多个网段,(比如有192.168.10.x20.x30.x等网段),不要设置内网网卡的网关,但是
要配置几条静态路由
以管理员身份运行(在C:WindowsSystem32目录下)
添加静态路由的命令格式如下:
routeadd192.168.20.0mask255.255.255.0192.168.10.1
routeadd192.168.30.0mask255.255.255.0192.168.10.1(有几个网段就要配几条路由)
^目的网段^目的网段的掩码^下一跳(网关)
外网卡就用默认配置。
这样访问内网的数据包就会从内网卡的网关走,而访问外网的数据包会默认从外网卡的网关
走,不冲突了。内、外网都能访问了。
方案三:
有时候情况不尽如人意,公司的内网有哪些网段我们不知道,只知道自己的电脑被分配到一
个IP(192.168.1.26/24位掩码)网关为192.168.1.1
然后我们再加一块外网卡,从光猫那里接一根线过来连上(如果是无线网卡,那就连上
wifi呗)自动获取的IP是192.168.1.4,默认网关是192.168.1.1
两个网卡的网段是一样的,有冲突。
例①要是能修改光猫下发的IP地址段就好了,先用其他设备(如手机)登录光猫,进行dhcp
修改。(改成公司内网可能没有的网段,比如172.23.234.0/24位掩码。这得靠经验去猜)
这样就不会有网段的冲突了,(外网卡可能获取的IP是172.23.234.3,网关是172.23.234.1)
然后,内网网卡不要设置默认网关,用添加静态路由的方法(同方案二)把目的网段是私网
IP的数据包都从内网卡的网关转发(内网网卡的网关是192.168.1.1,但是在网卡上不设置,
只在静态路由表里添加)
以管理员身份运行
routeadd10.0.0.0mask255.0.0.0192.168.1.1
routeadd172.16.0.0mask255.240.0.0192.168.1.1
routeadd192.168.0.0mask255.255.0.0192.168.1.1
外网卡的配置就用默认的,这样就行了。
例②有时候真的是事与愿违,外网卡的网段不能改(可能是设备不支持修改,也可能是其
他人不同意修改),内网卡就更不用说了,公司给我们的就是192.168.1.0段的。
只好两块网卡都用同一个网段的了
情况如下:
这时候肯定是有个网络是不通的(不是外网就是内网)
我们可以把内网的网关删掉,添加静态路由,不过要写完整,表明从哪个网卡接口出去。
通过查看路由表可以知道
内网卡的接口序号是9(在不同的电脑上可能不一样)外网卡接口序号是3号
以下命令删掉从内网卡接口出去的默认路由
再添加静态路由
routeadd10.0.0.0mask255.0.0.0192.168.1.1if9
routeadd172.16.0.0mask255.240.0.0192.168.1.1if9
routeadd192.168.0.0mask255.255.0.0192.168.1.1if9
外网卡的配置就用默认的,这样就行了(通过验证,内外网都能访问,不过如果访问的是同
一个网段的地址,肯定是会有问题的,比如ping192.168.1.1,到底是ping到内网的那个1.1
还是外网的1.1呢?暂时不知道。如果是访问不同网段的那就没问题)
上例表明:如果两块网卡是同一个网段的话,只要IP地址不一样,哪怕网关一样,也是可
以实现共存的,内外网都能访问。(只是访问同一个段的主机可能无法访问)
但是两块网卡的IP绝对不能是同一个IP地址。如果两块网卡IP一样的话,会出错,其中一
块会变成169.254开头的IP(表示这是无效地址)
,地址是
192.168.1.0
段的,再添加(或开启)
补充
:如果我们先是连接了一块网卡(内网)
另一块网卡(外网)时,它若是自动获取IP的(我们已知道路由器会分配192.168.1.0同一
段的)这时新添加的网卡是不能成功获取配置的,提示连接受限。因为电脑是默认不允许我
们给两块网卡配同一个段的IP,所以我们可以手工指定新添加的网卡的IP
若弹出提示,只管确定。然后按方案三的例②去配置
方案四:
接着上面的方案三例②来说。
如果内外网卡的IP是同一个网段的,这时电脑要访问同一个网段的主机时,我们怎么知道
数据包会从哪个网卡接口发出去呢?
先看一下网卡的配置,都已经配好了,内网的默认网关也已删除
根据路由表的跃点数大小,可以知道它从哪个接口出去。
192.168.1.0/24是电脑的直连网段,但不同的网卡接口的跃点数不一样,所以它优先从跃点
数小的那个网卡出去。上图中恰好是内网的跃点数小(276),所以ping192.168.1.1时,ping
通的是内网里的那个网关,而不是外网卡的网关。访问同一个段(192.168.1.0)的主机时,
访问的也是内网的。这正好达到我们的要求,因为外网网卡只是用来访问互联网的。至于外
网的其他同段(192.168.1.0)的主机,我们不需要访问。
如果从路由表上看到的内网卡接口的跃点数比外网卡接口跃点数大,那么我们在电脑上访
问同一个段的主机时就访问不了了,或者是访问到了外网卡所在的网络里的主机了。
需要修改直连路由的内网卡的那条路由的跃点数(把它改小,比外网卡的小就行)
routechange192.168.1.0mask255.255.255.0192.168.1.1metric234if9
这样优先走跃点数小的路由,访问同一个段的主机时,访问的就是内网的主机了。
以上是本人对电脑有双网卡无法正常访问内外网的一些解决方案。如有高见,请多多指教。
作者:李茂福
2018-09-08
发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1715906220a2689946.html
评论列表(0条)