eth0 eth0:1 eth0.1 的区别

本文深入解析了物理网卡、子网卡及虚拟VLAN网卡的概念及其相互关系,阐述了如何使用ifconfig工具进行网络接口的配置、查看、启用及禁用操作。同时,文章还介绍了虚拟IP技术在高可用领域的应用原理,以及通过ARP协议实现虚拟IP切换的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eth0 eth0:1 和eth0.1三者的关系对应于物理网卡、子网卡、虚拟VLAN网卡的关系:
物理网卡:物理网卡这里指的是服务器上实际的网络接口设备,这里我服务器上双网卡,在系统中看到的2个物理网卡分别对应是eth0和eth1这两个网络接口。
 
子网卡:子网卡在这里并不是实际上的网络接口设备,但是可以作为网络接口在系统中出现,如eth0:1、eth1:2这种网络接口。它们必须要依赖于物理网卡,虽然可以与物理网卡的网络接口同时在系统中存在并使用不同的IP地址,而且也拥有它们自己的网络接口配置文件。但是当所依赖的物理网卡不启用时(Down状态)这些子网卡也将一同不能工作。
 
虚拟VLAN网卡:这些虚拟VLAN网卡也不是实际上的网络接口设备,也可以作为网络接口在系统中出现,但是与子网卡不同的是,他们没有自己的配置文件。他们只是通过将物理网加入不同的VLAN而生成的VLAN虚拟网卡。如果将一个物理网卡通过vconfig命令添加到多个VLAN当中去的话,就会有多个VLAN虚拟网卡出现,他们的信息以及相关的VLAN信息都是保存在/proc/net/vlan/config这个临时文件中的,而没有独自的配置文件。它们的网络接口名是eth0.1、eth1.2这种名字。

注意:当需要启用VLAN虚拟网卡工作的时候,关联的物理网卡网络接口上必须没有IP地址的配置信息,并且,这些主物理网卡的子网卡也必须不能被启用和必须不能有IP地址配置信息。这个在网上看到的结论根据我的实际测试结果来看是不准确的,物理网卡本身可以绑定IP,并且给本征vlan提供通信网关的功能,但必须是在802.1q下。

 

/sbin/ifconfig 查看、配置、启用或禁用网络接口(网卡)的工具 
ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。比如我们可以用这个工具来配置网卡的IP地址、MAC地址、掩码、广播地址等。值得一说的是用ifconfig 为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。如果您想把网络接口的IP地址固定下来,目前有三个方法:一是通过各个发行和版本专用的工具来修改IP地址;二是直接修改网络接口的配置文件;三是修改特定的文件,加入ifconfig 指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig 的语名写入/etc/rc.d/rc.local文件中; 

/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0


ifconfig配置网络接口语法: 
ifconfig 网络端口 IP地址 hw MAC地址 netmask 掩码地址 broadcast 广播地址 [up/down] 

ifconfig常用用法: 

ifconfig : 查看主机激活状态的网络接口情况; 输出结果中:lo 是表示主机的回坏地址,eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址(MAC地址); inet addr 用来表示网卡的IP地址,Bcast表示广播地址,Mask表示掩码地址
ifconfig -a : 查看主机所有(包括没有被激活的)网络接口的情况
ifconfig eth0 : 查看特定网络接口的状态
ifconfig eth0 down = ifup eth0 : 如果eth0是激活的,就把它终止掉。此命令等同于 ifdown eth0;
ifconfig eth0 up = ifdown eth0 : 激活eth0 ; 此命令等同于 ifup eth0 
ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 : 配置 eth0的IP地址、广播地址和网络掩码; 
ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up : 配置IP地址、网络掩码、广播地址的同时,激活网卡eth0
ifconfig eth1 hw ether 00:11:00:00:11:22 : 设置网卡的物理地址(MAC地址)。其中 hw 后面所接的是网络接口类型, ether表示以太网, 同时也支持 ax25 、ARCnet、netrom等,详情请查看 man ifconfig ; 
 

虚拟IP技术在高可用领域像数据库SQLSERVER、web服务器等场景下使用很多,很疑惑它是怎么实现的,偶然,发现了一种方式可以实现虚拟ip。它的原理在于同一个物理网卡,是可以拥有多个ip地址的,至于虚拟网卡,也可用通过该方式拥有多个ip。  即对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的 任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

其实现原理主要是靠TCP/IP的ARP协议。因为ip地址只是一个逻辑地址,在以太网中MAC地址才是真正用来进行数据传输的物理地址,每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。这就是整个实现 的关键。

在eth0处引用别名,设置完子网掩码即可
ifconfig eth0:0 166.111.69.100 netmask 255.255.255.0 up

此时查看网卡信息

复制代码

eth0 Link encap:Ethernet HWaddr 08:00:27:64:59:11 
          inet addr:166.111.69.17 Bcast:166.111.69.255 Mask:255.255.255.0
          inet6 addr: 2402:f000:1:4412:a00:27ff:fe64:5911/64 Scope:Global
          inet6 addr: fe80::a00:27ff:fe64:5911/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:597673 errors:0 dropped:0 overruns:0 frame:0
          TX packets:215472 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:67285933 (67.2 MB) TX bytes:22782158 (22.7 MB)

eth0:0 Link encap:Ethernet HWaddr 08:00:27:64:59:11 
          inet addr:166.111.69.100 Bcast:166.111.69.255 Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

lo Link encap:Local Loopback 
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:843 errors:0 dropped:0 overruns:0 frame:0
          TX packets:843 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:67174 (67.1 KB) TX bytes:67174 (67.1 KB)
复制代码

然后找另一台机器ping这个vip(eth0:0)就可以看到显示结果了。
写在/etc/rc.local里也可以,写在这里就不怕断电后机器无法正常使用了。

更详细参考:Linux-配置虚拟IP实例


用ifconfig 来配置虚拟网络接口: 
有时我们为了满足不同的需要还需要配置虚拟网络接口,比如我们用不同的IP地址来架运行多个HTTPD服务器,就要用到虚拟地址;这样就省却了同一个IP地址,如果开设两个的HTTPD服务器时,要指定端口号。 

虚拟网络接口指的是为一个网络接口指定多个IP地址,虚拟接口是这样的 eth0:0 、 eth0:1、eth0:2 ... .. eth1N。当然您为eth1 指定多个IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此类推; 
ifconfig eth1:0 192.168.1.250 hw ether 00:11:00:00:11:44 netmask 255.255.255.0 broadcast 192.168.1.255 up 
ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:00:11:55 netmask 255.255.255.0 broadcast 192.168.1.255 up 
注意:指定时,要为每个虚拟网卡指定不同的物理地址;

<think>好的,我现在需要帮助用户解决如何通过NetworkManager添加eth0:0eth0:1虚拟网卡的问题。首先,我要回忆一下Linux网络配置的相关知识。用户之前可能尝试修改网卡信息,但遇到了NetworkManager的问题,如引用[4]中提到的错误,这可能是因为设备未被NetworkManager管理。所以,我需要确保用户正确配置这些虚拟接口。 首先,传统的eth0:0配置方法通常是通过在/etc/sysconfig/network-scripts/目录下创建ifcfg-eth0:0这样的文件,然后使用ifup命令启动。但用户明确要求使用NetworkManager,这可能意味着用户希望用nmcli工具或其他NetworkManager相关的方法来管理这些虚拟接口。 接下来,我需要确认NetworkManager是否支持创建虚拟接口。据我所知,NetworkManager支持创建连接(connection),每个连接可以绑定到同一个物理设备,但使用不同的IP配置。这类似于虚拟接口的概念。例如,可以为eth0创建多个连接,每个连接有不同的IP地址,这样在系统中会显示为不同的逻辑接口,如eth0eth0:0等,但实际上可能名称有所不同,具体取决于配置方式。 然后,我需要详细说明如何使用nmcli命令添加这些虚拟接口。步骤可能包括创建新的连接配置文件,指定设备为eth0,并分配不同的IP地址。例如,使用nmcli connection add命令,指定类型为ethernet,设备eth0,并配置静态IP。这样,当激活这些连接时,系统会为同一个物理网卡分配多个IP,类似于虚拟接口。 同时,需要注意用户可能遇到的问题,比如UUID冲突,如引用[3]提到的,克隆时UUID重复导致的问题。在创建新连接时,NetworkManager会自动生成唯一的UUID,所以这可能不需要手动处理,但需要提醒用户避免手动复制配置文件导致UUID重复。 此外,用户可能需要重启网络服务或重新加载连接配置。需要指导用户使用nmcli connection reload或者nmcli connection up来激活新的配置。如果遇到设备未被管理的问题,可能需要检查NetworkManager的配置,确保eth0由NetworkManager管理,如引用[4]中的错误,可能需要修改ifcfg-eth0文件,设置NM_CONTROLLED=yes。 最后,生成相关问题时要覆盖可能相关的其他配置问题,比如如何检查NetworkManager是否管理设备,如何配置绑定接口(如引用[2]中的bond0),以及如何处理传统配置与NetworkManager的冲突。</think>### 通过NetworkManager添加虚拟网卡配置的方法 在Linux系统中,使用NetworkManager添加虚拟网卡(如$eth0:0$和$eth0:1$)可通过以下两种方式实现: --- #### 方法一:使用`nmcli`命令行工具 1. **添加虚拟连接配置** 通过`nmcli`为物理网卡$eth0$创建多个逻辑连接,每个连接对应不同IP地址: ```bash # 添加eth0:0配置(静态IP示例) nmcli connection add type ethernet ifname eth0 con-name eth0-0 ip4 192.168.1.100/24 gw4 192.168.1.1 # 添加eth0:1配置(动态IP示例) nmcli connection add type ethernet ifname eth0 con-name eth0-1 ipv4.method auto ``` - `con-name`: 自定义连接名称(如$eth0-0$) - `ifname`: 绑定物理网卡名称(如$eth0$) - `ip4/gw4`: 指定静态IP和网关,或`ipv4.method auto`启用DHCP[^4] 2. **激活连接** ```bash nmcli connection up eth0-0 nmcli connection up eth0-1 ``` 3. **验证配置** 通过`ip addr show eth0`查看是否分配了多个IP地址。 --- #### 方法二:手动创建配置文件 1. **创建虚拟接口配置文件** 在目录`/etc/sysconfig/network-scripts/`中创建以下文件: ```bash # ifcfg-eth0:0(静态IP示例) DEVICE=eth0:0 BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 ONBOOT=yes NM_CONTROLLED=yes # 确保NetworkManager管理此设备[^4] # ifcfg-eth0:1(动态IP示例) DEVICE=eth0:1 BOOTPROTO=dhcp ONBOOT=yes NM_CONTROLLED=yes ``` 2. **重新加载配置** ```bash nmcli connection reload # 重新加载配置文件 nmcli device reapply eth0 # 应用配置到设备 ``` --- #### 关键注意事项 1. **NetworkManager管理权限** 确保物理网卡$eth0$的配置文件包含`NM_CONTROLLED=yes`,否则需修改后重启NetworkManager服务[^3][^4]: ```bash systemctl restart NetworkManager ``` 2. **避免UUID冲突** 手动创建配置文件时需删除或注释`UUID`字段,否则可能因重复UUID导致冲突。 3. **接口命名规则** 新版本Linux可能使用$eth0$、$eth0_0$等命名规则,而非传统的$eth0:0$,可通过`ip link show`验证。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值