一大早就有朋友在说,linux环境上配置双网卡,有时得得到ip有时不能得到ip 修改了网卡速率就,现在正常了。但是 也不能同时的使用。

       在网上找了找资料,写了一个解决方案如下:

一.安装和配置网络设备

      在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的 ip地址,缺省网关的ip地址,DNS的ip地址等等。

       根据这些配置参数,安装程序将会自动把网卡(linux系统首先要支持)驱动程序编译到内核中去,但是我们一定要了解加载网卡驱动程序的过程,那么在以后改变网卡,使用多个网卡的时候我们就会很容易的操作,网卡的驱动程序是作为模块加载到内核中去的,所有linux支持的网卡驱动程序都是存放在目录/lib/modules/(linux版本号)/net/ 。
1. 修改/etc/conf.modules 文件

这个配置文件是加载模块的重要参数文件,大家先看一个范例文件
复制内容到剪贴板
代码:

#/etc/conf.modules

alias eth0 eepro100

alias eth1 eepro100
这个文件是一个装有两块inter 82559系列网卡的linux系统中的conf.modules中的内容,alias命令表明以太口(如eth0)所具有的驱动程序的名称,alias eth0 eepro100说明在零号以太网口所要加载的驱动程序是eepro100.o.那么在使用命令 modprobe eth0的时候,系统将自动将eepro100.o加载到内核中.对于pci的网卡来说,由于系统会自动找到网卡的io地址和中断号,所以没有必要在conf.modules中使用选项options来指定网卡的io地址和中断号.但是对应于ISA网卡,则必须要在conf.modules中指定硬件的io地址或中断号,如下所示,表明了一块NE的ISA网卡的conf.modules文件
复制内容到剪贴板
代码:
r8169
alias eth0 ne

options ne io=0x300 irq=5
在修改完conf.modules文件之后,就可以使用命令来加载模块,例如要插入inter的第二块网卡。
复制内容到剪贴板
代码:
#insmod /lib/modules/2.2.14/net/eepro100.o
这样就可以在以太口加载模块eepro100.o.同时,还可以使用命令来查看当前加载的模块信息:
复制内容到剪贴板
代码:
[root@ice /etc]# lsmod

Module Size Used by

eepro100 15652 2 (autoclean)
返回结果的含义是当前加载的模块是eepro100,大小是15652个字节,使用者两个,方式是自动清除。

2. 修改/etc/lilo.conf文件

为了在系统初始化中对新加的网卡进行初始化,可以修改lilo.conf文件.在/etc/lilo.conf文件中增加如下命令:
复制内容到剪贴板
代码:
append="ether=5,0x240,eth0 ether=7,0x300,eth1"
在配置好网卡之后,就应该配置TCP/IP的参数,在一般情况下,在安装linux系统的同时就会提示你配置网络参数。但是之后如果我们想要修改网络设置,可以使用如下的命令:
复制内容到剪贴板
代码:
#ifconfig eth0 ***.***.***.*** netmask ***.***.***.***
在linux系统中我们可以给一块网卡设置多个ip地址,例如下面的命令:
复制内容到剪贴板
代码:
#ifconfig eth0:1 10.1011.218 netmask 255.255.255.192
然后,使用命令#ifconfig -a 就可以看到所有的网络接口的界面;


另外,在/etc/sysconfig/network-scripts目录下存放着系统关于网络的配置文件,范例如下:
复制内容到剪贴板
代码:
ifcfg-eth0* ifdown-post* ifup-aliases* ifup-ppp*
ifcfg-eth1* ifdown-ppp* ifup-ipx* ifup-routes*
ifcfg-lo* ifdown-sl* ifup-plip* ifup-sl*
ifdown@ ifup@ ifup-post* network-functions

ifcfg-eth0是以太口eth0的配置信息,它的内容如下:

DEVICE="eth0" /*指明网络设备名称*/
IPADDR="202.112.13.204" /*指明网络设备的ip地址*/
NETMASK="255.255.255.192" /*指明网络掩码*/
NETWORK=202.112.13.192 /*指明网络地址*/
BROADCAST=202.112.13.255 /*指明广播地址*/
ONBOOT="yes" /*指明在系统启动时是否激活网卡*/
BOOTPROTO="none" /*指明是否使用bootp协议*/

3.域名服务的配置文件
(1)/etc/HOSTNAME 在这个文件中保存着linux系统的主机名和域名.范例文件

ice.xxxx.cn

这个文件表明了主机名ice,域名是xanet.edu.cn

(2)/etc/hosts和/etc/networks文件 在域名服务系统中,有着主机表机制,/etc/hosts和/etc/networks就是主机表发展而来在/etc/hosts中存放着你不需要DNS系统查询而得的主机ip地址和主机名的对应,下面是一个范例文件:

# ip 地址 主机名 别名

127.0.0.1 localhosts loopback

202.151.3.81 http://www.xxxx.cn/ www

202.151.3.81 http://www.cnblogs.com/xianqingzh/admin/ftp://ftp.xxxx.cn/ ftp

在/etc/networks 中,存放着网络ip地址和网络名称的一一对应.它的文件格式和/etc/hosts是类似的

(3)/etc/resolv.conf 这个文件是DNS域名解析器的主要配置文件,它的格式十分简单,每一行由一个主关键字组成./etc/resolv.conf的关键字主要有:

domain 指明缺省的本地域名,
search 指明了一系列查找主机名的时候搜索的域名列表,
nameserver 指明了在进行域名解析时域名服务器的ip地址.下面给出一个范例文件:
#/etc/resolv.conf
domain xxxx.cn
search xxxx.cn
nameserver 202.151.3.81
nameserver 202.151.3.81

(4)/etc/host.conf 在系统中同时存在着DNS域名解析和/etc/hosts的主机表机制时,由文件/etc/host.conf来说明了解析器的查询顺序.范例文件如下:

#/etc/host.conf

order hosts,bind #解析器查询顺序是文件/etc/hosts,然后是DNS
multi on #允许主机拥有多个ip地址
nospoof on #禁止ip地址欺骗

 


操作系统 turbolinux 7.0 DataServer

现象:
      1: 每个网卡都可以拼通并且可以互通
      2: 外网访问不通

整个操作流程:
1: 建立双网卡
eth0 192.18.2.100
eth1 192.18.3.100 (外网)

gateway 192.18.3.100

测试网卡都通

2: 配置adsl-setup
2: >;>;>; Enter the Ethernet interface connected to the ADSL m
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth1):
eth1
4:The firewall choices are:
>;>;>; Choose a type of firewall (0-2): 0

adsl-start可以分配IP地址,可以ping 通网关

3: 设置 ip-forward = 1

4: 执行 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

5: 执行ping 203.212.6.173网络不通

6:traceroute -d 203.212.6.173 报没有到主机的路由错误


\\\

数据中心该走向开放还是封闭? | IT应用你算老几?| 免费顶级Unix/Linux系统集群课程 | IT经理悲剧生活大曝光调查!
gentoo

 

adsl-start 了没有!
ifconfig 看看有没有PPP.
 

 


Linux内核来说一般只能检测到一块网卡,为了我们能检测到两块以上的网卡,我们就需要配置内核模块了,好在现在的内核,一般将驱动程序将作为模块。即,在内核激活时,让模块自动检测所安装的Ethernet,如果我们使用的时PCI网卡,这一切动作将由内核自动完成,但是,如果我们使用的是ISA网卡,内核不一定能检测到你的网卡哦,这时,我们就要手动来设置网卡了,我们需要指定网卡的IO地址,以至于让模块直接到指定的IO地址去检测网卡,因此这些信息我们需要放在/etc/conf.modules文件中,如下面几个实例供大家参考:  
假设你有两块ISA   NE2000网卡,一般设置为非PnP。如果你的网卡是跳线型,你就直接移动你网卡上的跳线头即可,如果你的网卡是软跳线(一般为软跳线),你首先应该用你的网卡驱动盘,在dos下(我使用的是a:setup.exe进行网卡的设置)将这两块网卡的IO和IRQ值设定好,而且要检测通过。  
比如一块是:IO=0x300,IRQ=10  
另一块是:IO=0x240,IRQ=3  
而且,这两种设置,都能正常运行。好了现在我们进入linux,且编辑/etc/conf.modules文件,内容如下:  
---------------  
alias   eth0   ne  
alias   eth1   ne  
options   ne   io=0x240,0x300  
---------------  
这是什幺意思呢?当ne.o模块(该模块位于/lib/modules/2.2.5-15/net目录中)被内核加载时,该模块知道到那一个IO地址去寻找网卡,注意0x的意思为16进制,一般IO地址都用16进制来表示。  
好了,你的两块网卡已经能配置好了,赶快reboot你的linux,注意你的激活信息,特别是在进程管理程序init激活之前的一行,你就可以看到下面的内容:  
-------------  
ne.c:v1.0   9/23/94   Donald   Becker  
NE*000   ethercard   probe   at   0x300:   00   ae   25   01   c7   6b  
eth0:   NE2000   found   at   0x300,using   IRQ   10.  
NE*000   ethercard   probe   at   0x240:   00   00   21   5a   00   07  
eth1:   NE2000   found   at   0x240,using   IRQ   3.  
-------------  
如果你在激活时错过了,你可以输入dmesg   |   more   来看。:-)  
一般来说,大部分的ISA网卡都可以用逗号将两个IO地址分开,让模块自动检测,但是有些网卡就不行,如:3com的ec501.o模块,当该模块被内核加载时只能检测到一块网卡,这时你就应该将该模块加载两次,这样才能将两块网卡都检测到,如下面的配置模块:  
--------  
alias   eth0   3c501  
alias   eth1   3c501  
options   eth0   -o   3c501-0   io=0x280   irq=5  
options   eth1   -o   3c501-1   io=0x300   irq=7  
--------  
在该例中,-o是指定一个唯一的模块名称,只有这样才能模块在内核中加载两次irq=指定网卡的中断值。但是如果你用的网卡是两块不同的网卡,这时应该怎幺办呢?如下面的例子:  
一块网卡是:3c503   IO值为:0x350  
另一块为:   NE2000   IO值为:0x280  
模块的配置文件内容如下:  
----------  
alias   eth0   ne  
alias   eth1   3c503  
options   ne   io=0x280  
options   3c503   io=0x350  
----------  
如果你的网卡为PCI网卡,那就容易多了,你只需要在alias一行将ethN和指定的驱动模块联系起来即可,因为基于IO的PCI网卡很容易被检测到。可用的驱动模块都在下面的目录下:/lib/modules/ 'uname   -r '/net中,注意uname   -r是指当前你的Linux内核的版本号,如2.0.34或2.2.5-15,我的内核为2.2.5-15,这些驱动模块就在/lib/modules/2.2.5-15/net目录下。一旦你配置好了你的conf.modules文件,你可以用下面的命令来检测:  
modprobe   ethN  
dmesg   |   tail  
'N '表示网卡的号码,如果你将网卡的驱动模块编译到内核中了,那你就只能检测到一块网卡了,因为,linux内核只能默认的只检测一个网卡。  
一般有两种方法让内核在激活时激活第二块、三、四块网卡。  
上面已经介绍了一种方法,下面介绍另一种方法。该方法是一种传统的方法,即在内核还没有模块化的时候。一般是在LILO激活内核时,加入一些参数,如:  
LILO:   linux   ether=10,0x300,eth0   ether=3,0x240,eth1  
有关LILO激活参数的详细信息,请参考BootPrompt-HOWTO。  
为了不在每一次激活时都键入太长的参数,我们可以用append=命令在lilo.conf种配置如:  
append= "ether=10,0x300,eht0   ether=3,0x240,eth1 "  
如果你是在dos系统下的loadlin.exe来激活你的Linux的,就看下面的例子:  
loadlin   zImage   root=/dev/hdb1   ro   ether=10,0x300,eht0   ether=3,0x240,eth1  
在linux下安装2块以上的网卡一般就这两种常用的方法,但是还有一种,这种方法不推荐该方法是直接编辑Space.c文件,将0xffe0改为0x0,0xffe0表示不检测设备,改为0后,即自动检测设备。


数据中心该走向开放还是封闭? | IT应用你算老几?| 免费顶级Unix/Linux系统集群课程 | IT经理悲剧生活大曝光调查!
lobster


你最好找一下关于linux下adsl的配置指南。

首先,你的eth1不用启动,不用设置ip和路由,最好是
文件 /etc/sysconfig/network-scripts/ifcfg-eth1内容:

DEVICE=eth1
BOOTPROTO=none
IPADDR=
ONBOOT=no
TYPE=Ethernet

因为,这块网卡不是作网卡给你用的,只是插了一条线到adsl  modem而已。应该有adsl来管理,你就当它不存在吧。

同样,也是最重要的


QUOTE:
4: 执行 iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


里的不应该是 -o eth1  而是  ppp0(如果你的adsl正常启动的话)

对你来说,eth0是内网界面,ppp0是外网界面,而不是eth1(你就别当它是网卡了吧;))

 

查看网卡的属性:ethtool -g eth0


二、在Linux中查看硬件信息的工具;

在Linux 中,并不是没有工具可以查看硬件的芯片信息,应该说Linux的工具能把硬件信息查看的更清楚;下面介绍几个常用的工具;我们最常用的工具还是lspci ;其它的工具只是了解一下;
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices ,主要是有来列出机器中的PCI 设备,比如声卡、显卡、猫、网卡等,主板集成设备也能列出来;lspci 是读取 hwdata 数据库,hwdata 由软件包 hwdata 提供;

LINUX双网卡绑定一个IP步骤
时间:2009-09-17 10:26来源: 作者: 点击:次
专业的Linux技术网站,用户遍布全国各地,拥有大批的Linux专家与工程师,汇集海量Linux信息,是中国Linux人的网上家园。
(责任编辑:亿腾科技)
原创出自:黑虫Linux空间

1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.128.225
NETMASK=255.255.255.224
GATEWAY=192.168.128.233
USERCTL=no

2.更改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
USERCTL=no

3.更改/etc/sysconfig/network-scripts/ifcfg-eth1网卡的属性
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
USERCTL=no

4.编辑/etc/modprobe.conf文件,加入以下内容
alias bond0 bonding
options bond0 miimon=100 mode=0

5.加入/etc/rc.d/rc.local启动项
ifenslave bond0 eth0 eth1

6.启动网卡
ifconfig bond0 192.168.128.225 up
ifenslave bond0 eth0 eth1

注:完成以上步骤一定要重启计算机,由于bonding需要加载驱动,本环境在CentOS4.5测试通过.

posted on 2010-09-17 08:46  蚂蚁跳楼  阅读(619)  评论(0编辑  收藏  举报