Linux的網(wǎng)絡(luò)主要是通過修改配置文件來實現(xiàn)的,雖然也可用命令ifconfig來設(shè)置IP,用route來配置默認網(wǎng)關(guān),用hostname來配置主機名,但是重啟后即會丟失。下面是相關(guān)的配置文件:
/ect/hosts 配置主機名和IP地址的對應(yīng),對本機提供解析
/etc/resolv.conf 配置域名(在hosts內(nèi)解析不到時此域名生效)
/etc/sysconfig/network 配置主機名和網(wǎng)關(guān)
/etc/sysconfig/network-scripts/ifcfg-eth0 配置IP、Mask等網(wǎng)絡(luò)參數(shù)
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.250
NETMASK=255.255.255.0
GATEWAY=192.168.76.1
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
ifconfig eth0:0 192.168.0.253 netmask 255.255.255.0
ifconfig eth0:1 192.168.0.252 netmask 255.255.255.0
ifconfig eth0 down
ifconfig eth0 up
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1
BOOTPROTO=static
IPADDR=222.157.4.82
NETMASK=255.255.255.128
ONBOOT=yes
vi /etc/rc.d/rc.local
route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0
route add -net 222.157.0.0/16 gw 222.157.66.1 dev eth1
注意:以下用命令設(shè)置的方式設(shè)置完后需要將命令加入到 /etc/rc.d/rc.local 中,否則重啟后設(shè)置被自動清除!
1、在 /etc/sysconfig/network-scripts/ifcfg-eth0 中配置;
GATEWAY=192.168.76.1
2、在 /etc/sysconfig/network 中配置:
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=zhaohang.com
GATEWAY=192.168.76.1
3、用命令設(shè)置:
如果只需要添加默認路由可以這樣設(shè)置:
route add default gw 192.168.1.1
route del default gw 192.168.1.254 (可以刪除默認路由,用此方法改變后幾分鐘就可以生效.)
如果兩個網(wǎng)卡均需要網(wǎng)關(guān)可以這樣設(shè)置:
route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0
route add -net 222.157.0.0/16 gw 222.157.66.1 dev eth1
備注:設(shè)置好路由或默認網(wǎng)關(guān)以后可以用命令查看:
route -n
netstat -rn
route print (For windows)
vi /etc/resolv.conf
meserver 192.168.75.3
nameserver 202.102.192.68
search localdomain
網(wǎng)絡(luò)重啟
/etc/rc.d/init.d/network restart
有時,我們需要在一塊網(wǎng)卡上配置多個IP,我們還需要為eth0配置IP 192.168.168.2和192.168.168.3。
那么需要再在/etc/sysconfig/network-scripts/ 下新建兩個配置文件:
cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.1.3
NETMASK=255.255.255.0
ONBOOT=yes
為了提供網(wǎng)絡(luò)的高可用性,我們可能需要將多塊網(wǎng)卡綁定成一塊虛擬網(wǎng)卡對外提供服務(wù),這樣即使其中的一塊物理網(wǎng)卡出現(xiàn)故障,也不會導(dǎo)致連接中斷。
所謂bonding,就是將多塊網(wǎng)卡綁定同一IP地址對外提供服務(wù),可以實現(xiàn)高可用或者負載均衡。當(dāng)然,直接給兩塊網(wǎng)卡設(shè)置同一IP地址是不可能的。通過bonding,虛擬一塊網(wǎng)卡對外提供連接,物理網(wǎng)卡的被修改為相同的MAC地址。Kernels 2.4.12及以后的版本均提供bonding模塊,以前的版本可以通過patch實現(xiàn).
比如我們可以將eth0和eth1綁定成虛擬網(wǎng)卡bond0:
1、首先在/etc/sysconfig/network-scripts/下創(chuàng)建虛擬網(wǎng)卡bond0的配置文件ifcfg-bond0:
cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.168.255
IPADDR=192.168.168.1
NETMASK=255.255.255.0
NETWORK=192.168.168.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.168.250
USERCTL=no
2、然后分別修改eth0和eth1的配置文件:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
3、在/etc/modules.conf 文件中添加如下內(nèi)容(如果沒有該文件,則新建一個):
[因為linux的虛擬網(wǎng)卡是在內(nèi)核模塊中實現(xiàn)的,所以需要安裝的時候已經(jīng)裝好該module]
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
其中miimon=100表示每100ms檢查一次鏈路連接狀態(tài),如果不通則會切換物理網(wǎng)卡,mode=1表示主備模式,也就是只有一塊網(wǎng)卡是active的,只提供失效保護。如果mode=0則是負載均衡模式的,所有的網(wǎng)卡都是active。還有其他一些模式很少用到,primary=eth0表示主備模式下eth0為默認的active網(wǎng)卡。
4、最后,在/etc/rc.local中加入
modprobe bonding miimon=100 mode=1
5、重啟機器后可以看到虛擬網(wǎng)卡已經(jīng)生效,可以通過插拔兩個物理網(wǎng)卡的網(wǎng)線來進行測試,不過linux中網(wǎng)卡接管的時間好象比較長。