一大早就有朋友在說,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.網域名稱服務 (DNS)的設定檔
(1)/etc/HOSTNAME 在這個檔案中儲存著linux系統的主機名稱和網域名稱.範例檔案
ice.xxxx.cn
這個檔案表明了主機名稱ice,網域名稱是xanet.edu.cn
(2)/etc/hosts和/etc/networks檔案 在網域名稱服務 (DNS)系統中,有著主機表機制,/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測試通過.