关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
回复
chinasunjh
帖子: 27
注册时间: 2009-03-10 21:46

关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

#1

帖子 chinasunjh » 2009-03-14 10:19

电脑上有两块网卡,一块通过10.22.2.1网关访问内网,一块通过拨号路由器192.168.0.1访问外网,
原来在WINDOWS下,直接增加路由,近日心血来潮,想安装UBUNTU8.04试试,发现增加路由的相关命令有所区别,特抄录如下,供朋友们参考。
双网卡配置网关的问题,部分帖子说只要配一个网关,另一个不要配,然后通过相关路由修改命令进行修改,个人认为按照IP协议的相关规范,不需要那么复杂,直接全部配上就是了。
配好后,用route命令查看全部路由,我的电脑上显示如下:

内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
10.22.2.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 2 0 0 eth0
default 10.22.2.1 0.0.0.0 UG 2 0 0 eth0

问题出现:两个默认的网关,当然只能访问内网。因为根据IP协议在进行数据包转发时,由于没有特别指定访问内网的路由,数据包自动发往默认的第一个路由。

解决方法
首先,删除已有的默认路由,其他的不要动。
route del -net default netmask 0.0.0.0 gw 10.22.2.1
route del -net default netmask 0.0.0.0 gw 192.168.0.1

从新增加路由:
指示访问内网10打头的网络的路由, 跃点定义为0
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.22.2.1 metric 0

指示访问其它网络的默认路由, 跃点定义为2(或者其他大于0的数字)
route add -net default netmask 0.0.0.0 gw 192.168.0.1 metric 2

如有三个网卡,可类推,不过要增加在默认路由前面。(我没试过,不过按照协议应该是可以的)

具体的IP协议及相关知识,可到网上搜一下,了解了解。
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

#2

帖子 Jarson » 2009-03-14 10:35

chinasunjh 写了:电脑上有两块网卡,一块通过10.22.2.1网关访问内网,一块通过拨号路由器192.168.0.1访问外网,
原来在WINDOWS下,直接增加路由,近日心血来潮,想安装UBUNTU8.04试试,发现增加路由的相关命令有所区别,特抄录如下,供朋友们参考。
双网卡配置网关的问题,部分帖子说只要配一个网关,另一个不要配,然后通过相关路由修改命令进行修改,个人认为按照IP协议的相关规范,不需要那么复杂,直接全部配上就是了。
配好后,用route命令查看全部路由,我的电脑上显示如下:

内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
10.22.2.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.0.1 0.0.0.0 UG 2 0 0 eth0
default 10.22.2.1 0.0.0.0 UG 2 0 0 eth0

问题出现:两个默认的网关,当然只能访问内网。因为根据IP协议在进行数据包转发时,由于没有特别指定访问内网的路由,数据包自动发往默认的第一个路由。

解决方法
首先,删除已有的默认路由,其他的不要动。
route del -net default netmask 0.0.0.0 gw 10.22.2.1
route del -net default netmask 0.0.0.0 gw 192.168.0.1

从新增加路由:
指示访问内网10打头的网络的路由, 跃点定义为0
route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.22.2.1 metric 0

指示访问其它网络的默认路由, 跃点定义为2(或者其他大于0的数字)
route add -net default netmask 0.0.0.0 gw 192.168.0.1 metric 2

如有三个网卡,可类推,不过要增加在默认路由前面。(我没试过,不过按照协议应该是可以的)

具体的IP协议及相关知识,可到网上搜一下,了解了解。
LZ是否这样实验成功了?貌似我这样配置不行。不过也很难说,因为我的两个网关都是以192.168打头的。
chinasunjh
帖子: 27
注册时间: 2009-03-10 21:46

Re: 关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

#3

帖子 chinasunjh » 2009-03-14 10:42

不要照抄,如果网段相同,要修改子网掩码,使子网掩码适应相关网段的长度。
chinasunjh
帖子: 27
注册时间: 2009-03-10 21:46

Re: 关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

#4

帖子 chinasunjh » 2009-03-14 10:56

fhc2007 写了:
LZ是否这样实验成功了?貌似我这样配置不行。不过也很难说,因为我的两个网关都是以192.168打头的。

如果朋友的网关都是相同的则配置内部网络时应该修改netmask的长度,如
内网是192.168.0.1,外网192.168.1.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 metric 0
route add -net 192.168.1.0 netmask 0.0.0.0 gw 192.168.1.1 metric 2
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

#5

帖子 Jarson » 2009-03-14 21:21

chinasunjh 写了:
fhc2007 写了:
LZ是否这样实验成功了?貌似我这样配置不行。不过也很难说,因为我的两个网关都是以192.168打头的。

如果朋友的网关都是相同的则配置内部网络时应该修改netmask的长度,如
内网是192.168.0.1,外网192.168.1.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 metric 0
route add -net 192.168.1.0 netmask 0.0.0.0 gw 192.168.1.1 metric 2
理解,LZ的方法是通过跃点值来控制不同网段的访问,但这样好像只能控制到一块网卡,即所有的数据包要么都是通过eth0,要么都是通过eth1,虽然通过不同网关的跃点值不同(有个能量级或优先级的差别)。我现在的方法是手动指定不同的网段是通过指定的网卡访问的,即跃点值相同。
chinasunjh
帖子: 27
注册时间: 2009-03-10 21:46

Re: 关于双网卡电脑上网的问题(简易解决方案,供有相同问题的朋友参考)

#6

帖子 chinasunjh » 2009-03-16 8:26

应该不会,我用的就是两块网卡,内部网络和外部网络都很好。
回复