Linux下配置網卡ip別名
何謂ip別名?
用windows的話說,就是為一個網卡配置多個ip。
什麼場合增加ip別名能派上用場?
布網需要、多ip訪問測試、特定軟件對多ip的需要…and so on.
下面通過幾個例子簡單介紹一下如何使用ifconfig命令給網卡配置ip別名。
環境:新購買的主機,剛裝好RedHat AS4操作系統,只有一個網卡並且乾乾淨淨沒做過任何配置。
一、首先為主機網卡配置靜態ip地址
#ifconfig eth0 192.168.6.99 netmask 255.255.255.0 up
1 |
eth0 //機器的第一個網卡,有些機器有多個網卡,eth1、eth2... |
2 |
192.168.6.99 //設置網卡的靜態ip地址 |
3 |
netmask 255.255.255.0 //ip地址的子網掩碼,無需多解釋 |
4 |
up //表示立即激活該網卡 |
#ifconfig
if一下,如圖所示靜態ip已經設置成功
二、設置網卡的ip別名
1 |
#ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up |
2 |
#ifconfig eth0:1 173.173.173.173 netmask 255.255.255.0 up |
3 |
#ifconfig eth0:2 119.110.120.1 netmask 255.255.255.0 up |
4 |
...... |
eth0:x //虛擬網絡接口,建立在eth0上,取值範圍0-255
192.168.6.xxx //增加ip別名,想加多少就加多少∼∼
#ifconfig
設置完我們if一下看看,如圖所示,增加的ip都已經生效了
#ping 192.168.6.100
#ping 173.173.173.173
#ping 119.110.120.1
然後在本機分別ping一下這幾個ip,如圖所示一路暢通∼∼
*注意:在設置ip別名時,如果增加的是和局域網同一網段的ip(如192.168.6.100),那麼除了本機外局域網內其他機器都可以ping通這個ip。如果增加的是奇形怪狀的ip,那麼就只有本機可以ping通而已,後者主要用於本機測試需要。
三、保留網卡的ip別名信息
當我們汗流浹背的增加了n個ip,正準備大展拳腳進行項目測試時,突然∼∼停電了…xx@#$%,轉眼月上枝頭,好不容易來電了打開電腦一看,傻了∼∼剛剛增加的ip全沒了???
原來當系統重啟後,所有的ip別名都會丟失…rpwt…xx$#%@
基於linux這個特點,所以如果需要長時間使用ip別名,最好將別名信息保存起來,一般方法有兩個,如下:
1.將增加ip別名的命令填寫到/etc/rc.local文件中
即將所有如這樣ifconfig eth0:0 192.168.6.100 netmask 255.255.255.0 up的命令一行行全部填寫到rc.local文件中去,rc.local文件是作用於linux開機自動執行命令,詳細用法g或b一下,這裡不詳細說明。
這個方法最方便,但不太可靠,有時會失靈。
2.手動編寫ip別名的網卡配置文件
所有網卡的配置文件都保存在/etc/sysconfig/network-scripts目錄中,一個網卡對應一個配置文件,如圖:
多vlan 多IP
1. 加載8021q
modprobe 8021q
2. vconfig add eth0 2
3. 配置IP和MAC
Ipconfig –s eth0.2 192.168.42.129 broadcast 192.168.42.0 netmask 255.255.255.0 up
01 |
--------------bingIP.h--------------------- |
02 |
#include<stdlib.h> |
03 |
#include<stdio.h> |
04 |
int main() |
05 |
{ |
06 |
int i=-1; |
07 |
char *p="vconfig add eth0 254"; |
08 |
i=system(p); |
09 |
printf("%d",i); |
10 |
return 0; |
11 |
} |
12 |
----------------addIp.sh-------------- |
13 |
#! /bin/sh |
14 |
modprobe 8021q |
15 |
i=2 |
16 |
j=1 |
17 |
k=131 |
18 |
while (($j!=0))&&(($i<120)) |
19 |
do |
20 |
vconfig add eth0 $i 2>/dev/null |
21 |
j=$? |
22 |
i=$(($i+1)) |
23 |
k=$(($k+1)) |
24 |
done |
25 |
i=$(($i-1)) |
26 |
ifconfig eth0.$i 192.168.42.$k broadcast 192.168.42.0 netmask 255.255.255.0 |
27 |
-----------------DelIp.sh----------------- |
28 |
for((i=1;i<120;i++)) |
29 |
do |
30 |
vconfig rem eth0.$i 2>/dev/null |
31 |
done |
多網卡
/etc/sysconfig/network-scripts/eth0
添加eth1文件,文件內容如下
靜態IP:
1 |
DEVICE=eth1 |
2 |
ONBOOT=yes |
3 |
BOOTPROTO=static |
4 |
IPADDR=192.168.0.18 |
5 |
NETMASK=255.255.255.0 |
6 |
GATEWAY=192.168.0.1 |
1 |
DEVICE=eth0 |
2 |
BOOTPROTO=dhcp |
3 |
DHCPCLASS= |
4 |
HWADDR=00:0C:29:ED:8D:F1 |
5 |
ONBOOT=yes |
運行:
1 |
/etc/init.d/network reload |
動態IP文件ifcfg-eth0就是本機網卡的配置文件,我們可以通過仿照這個文件的格式來編寫其他ip別名的配置文件。
#vi ifcfg-eth0
打開網卡的配置文件,將裡面所有字段複製一下
#vi ifcfg-eth0:0
創建eth0:0的配置文件,並將剛才複製的字段粘貼到這個配置文件,按照下文的介紹修改部分信息,修改完成後保存退出
以下是網卡配置文件的部分信息說明,其他類似信息默認即可:
##############################################################################
1 |
# 3Com Corporation 3c905B 100BaseTX [Cyclone] //硬件型號,忽略不計 |
2 |
DEVICE=eth0:0 //虛擬網絡接口,隨意 |
3 |
ONBOOT=yes //系統啟動時激活 |
4 |
BOOTPROTO=static //使用靜態ip地址 |
5 |
IPADDR=192.168.6.100 //該虛擬網絡接口的ip別名,隨意 |
6 |
NETMASK=255.255.255.0 //子網掩碼,對應ip別名 |
7 |
GATEWAY=192.168.6.1 //網關,對應ip別名 |
8 |
HWADDR=00:10:5A:5E:B1:E4 //網卡MAC地址,無需更改 |
9 |
USERCTL=no //是否給予非root用戶設備管理權限 |
##############################################################################
其他ip別名的配置文件大同小異,純粹體力活∼∼
這個方法最繁瑣,但又是最可靠,唉,人生就是這樣,永遠不得兩全其美∼∼
四、清除ip別名
1 |
#ifconfg eth0:0 down |
2 |
#ifconfg eth0:1 down |
3 |
#ifconfg eth0:2 down |
91ri.org:準備開始進入比賽狀態了,91ri.org同時也會多發關於操作系統方面的文章 特別是關於Linux方面的,對Linux有興趣的朋友多關注吧