很久没发布伪技术文章了,今天说一个简单的问题,给网卡设定IP地址。

1.在Linux下给网卡设定IP地址

1.1给一个网卡设定单一的IP地址

方法很多,但归根结底还是修改/etc/sysconfig/network-scripts下的网卡配置文件。(以RHEL为例,其他版本有的放在/etc/sysconfig/network下,有的直接在/etc下做link)

[root@loneblog ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=00:0C:29:11:11:11
TYPE=Ethernet

这是一个标准的静态IP地址(static ip address)配置文件,下面是一个标准的通过DHCP服务器分配地址的配置文件

DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=yes
HWADDR=00:0c:29:11:22:11
TYPE=Ethernet

保存配置文件后重启网卡生效。

1.2给一个网卡设定多个IP地址(子接口)

手动添加ifcfg-ethx:x文件,例如给eth0添加另一个子接口的IP地址:

[root@loneblog network-scripts]# cp ifcfg-eth0 ifcfg-eth0:1

然后和1.1配置一个新网卡一样,配置ifcfg-eth0:1即可。

保存配置文件后重启网卡生效。

1.3给一个网卡设定连续的IP地址(地址段)

手动添加ifcfg-ethx-rangex文件,配置如下:

[root@loneblog network-scripts]# cp ifcfg-eth1 ifcfg-eth1-range0
[root@loneblog network-scripts]# vim ifcfg-eth1-range0

DEVICE=eth1-range0
ONBOOT=yes
BOOTPROTO=static
IPADDR_START=192.168.2.100
IPADDR_END=192.168.2.200
#配置了从192.168.2.100到200的子接口 
NETMASK=255.255.255.0
HWADDR=00:0C:29:11:11:11
TYPE=Ethernet

保存配置文件后重启网卡生效,查看网络接口状态和一个一个配置子接口是一样的,如下:

[root@loneblog network-scripts]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:B4:16
          inet addr:10.0.90.1  Bcast:10.0.90.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5e:b416/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:53 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:10949 (10.6 KiB)  TX bytes:11797 (11.5 KiB)

eth0:     Link encap:Ethernet  HWaddr 00:0C:29:5E:B4:16
          inet addr:192.168.2.100  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:5E:B4:16
          inet addr:192.168.2.101  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:5E:B4:16
          inet addr:192.168.2.102  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:3    Link encap:Ethernet  HWaddr 00:0C:29:5E:B4:16
          inet addr:192.168.2.103  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

这里需要注意:子接口都必须在接口配置存在的情况下,比如:

[root@loneblog network-scripts]# mv ifcfg-eth0 ifcfg-eth0.bak
[root@loneblog network-scripts]# ifdown eth0
用法: ifdown <设备名>

仅存在子接口的配置文件是不行的。

2.windows下网卡设置多个IP地址

以window xp为例:

“开始”→“设置”→“控制面板”,双击“网络和拨号连接”,右键单击“本地连接”,选择“属性”调出“本地连接属性”面板

选择   “Internet协议(TCP/IP)”,点击“属性”调出“Internet协议(TCP/IP)属性”面板,点击下方的“高级”调出“高级   TCP/IP设置”面板。

在IP地址栏下面列出了网卡已设定的IP地址和子网掩码,点击[添加]按钮,在弹出的对话框中填上新的IP地址,添加新的网关;切换到NDS选项卡,DNS服务器下面列出了当前DNS的IP,点击[添加]按钮,在的对话框中填上新的DNS的IP,设置完成了点确实。

3.多个IP如何工作

冷博客看网上很多网友都对默认网关和多IP网卡有误解,这里说一下我的理解。

首先,不管unix也好,windows也好,都只能设置一个默认网关,windows里叫默认网管,Linux就是GATEWAY。从命令行里我们可以看的更清楚,所谓默认网关就是默认路由,所有数据如果没有更好的出路就走这条道了。

所以,在一台PC多个网卡的情况下,我们只能在其中一个设定默认网关,否则电脑不知道向哪里发送数据。另一个网卡的内容我们可以通过手动添加路由的方法,指定数据流向。

然后,在一个网卡多个IP地址的情况,PC终端同样是手动添加路由和默认网关,然后对端设备一定要以一个三层设备终结,否则就没意义了。一个有路由功能的设备把两个地址分开进行路由即可。