“服务器eth网口”就是Linux系统对物理网卡的默认命名方式,本质是操作系统给网卡分配的一个设备名,类似人的身份证号。你登录任何一台Linux服务器,执行ip addr,看到的eth0、eth1、eth2就是这张服务器上每一块网卡的代号,搞懂这个名字的逻辑,你就知道服务器怎么识别网络设备,也能在配置多网卡时少走弯路。
服务器上eth网口是什么意思:命名规则就是网卡的身份证
eth名称的完整含义
“eth”是Ethernet(以太网)的缩写,后面的数字代表网卡的枚举顺序,eth0是第一块被内核识别的网卡,eth1是第二块,以此类推,这个顺序由内核在启动时根据总线探测顺序分配,不一定是物理位置顺序,这是新手最容易踩的坑。
举个例子:一台物理服务器主板上有板载双网卡,又插了一张四口PCIe网卡,开机后系统可能把PCIe槽位的网卡识别为eth0,板载网卡反而成了eth1,别惊讶,内核的枚举顺序完全由硬件探测时序决定,跟你在机箱后面看到的物理网口位置没有必然对应关系。
为什么有些服务器不叫eth0而叫eno1或ens33
行业共识认为,这跟systemd的命名规范有关,CentOS 7、Ubuntu 16.04等新版本系统,默认采用基于固件/总线位置的命名方式。eno1表示板载(onboard)网卡的第一口,ens33表示PCIe总线上的第33号槽位,enp3s0表示总线3、插槽0上的网卡。
这两种命名各有优劣,老派的eth0简单好记,新命名则能让你从名字直接看出网卡插在哪条总线上,便于硬件排障,据Linux内核维护者公开邮件列表讨论,可预测命名是为了解决多网卡乱序分配的问题,但代价是名字不够直观。
| 命名格式 | 适用系统 | 说明 |
|---|---|---|
| eth0/eth1 | CentOS 6及更早 | 按内核枚举顺序分配 |
| eno1/eno2 | CentOS 7+/Ubuntu 16.04+ | 板载网卡,顺序固定 |
| ens33/ens37 | CentOS 7+/Ubuntu 16.04+ | PCIe槽位号,可预测 |
| enp3s0 | 大多数现代Linux | 总线/槽位/功能号组合 |
如何查看服务器eth网口对应的物理网卡
用ethtool定位物理网口
很多运维人员配置多网口服务器时,最头疼的问题就是:系统里的eth0到底对应机箱后面的哪一个网口,答案很简单,用ethtool命令就能让网口灯闪烁。
ethtool -p eth0 10
这条命令会让eth0对应的物理网口指示灯闪烁10秒,你站在机房看着灯亮的位置,就知道该插哪根网线了,这个方法适用于绝大多数主流服务器网卡,包括Intel、Broadcom和Mellanox。
查看网口速率和协商状态
判断eth网口是千兆还是万兆,可用:
ethtool eth0
输出中的Speed: 1000Mb/s就是当前协商速率,Link detected: yes代表网线已接通,Duplex: Full是全双工,排查服务器网口不通的故障时,这几项信息是第一步判断依据。
Linux服务器eth网口怎样配置IP地址
临时生效:给eth0配置IP
开发和测试环境常用,重启后失效:
ip addr add 192.168.1.100/24 dev eth0 ip link set eth0 up
永久生效:修改配置文件
不同系统的配置文件路径不同,CentOS 6以下使用/etc/sysconfig/network-scripts/ifcfg-eth0,Ubuntu使用/etc/network/interfaces,CentOS 7以上推荐直接用nmcli。
# CentOS 7/8 NetworkManager方案 nmcli con add type ethernet ifname eth0 con-name server-public nmcli con mod server-public ipv4.addresses 192.168.1.100/24 nmcli con mod server-public ipv4.gateway 192.168.1.1 nmcli con mod server-public ipv4.method manual nmcli con up server-public
这种方式完整覆盖了服务器eth网口配置IP的常见需求,比手工改配置文件更不容易出错。
多网口服务器eth0和eth1区别:如何实现bonding负载均衡
为什么需要多个eth口
生产环境的服务器通常至少配备双网口,行业惯用两种用途:一是做主备冗余,一块网卡物理损坏时另一块自动接管,业务不断线,二是

做流量负载均衡,用bonding技术把eth0和eth1聚合成一个逻辑网口。
bond配置实操
业界通用的做法是把两个物理网口绑定成一个bond0,模式选择mode=1(主备)或mode=4(LACP动态聚合)。
# 创建一个bond0接口,工作模式为主备 nmcli con add type bond ifname bond0 mode active-backup # 将eth0和eth1加入bond0 nmcli con add type ethernet ifname eth0 master bond0 nmcli con add type ethernet ifname eth1 master bond0 # 给bond0配置业务IP nmcli con mod bond0 ipv4.addresses 10.0.0.10/24 nmcli con up bond0
执行完再看系统网卡,你会看到bond0替代了eth0和eth1成为业务出口,负载分摊到两块物理网卡上,绝大多数主流厂商的服务器网卡驱动都支持这种Linux服务器多网卡bond配置模式,但建议先在测试环境验证交换机侧的LACP配置。
多网口场景下的路由策略
邦定之后,eth0和eth1不再单独承载流量,如果需要针对特定来源IP走不同出口,需要配置ip rule策略路由,例如让192.168.10.0/24段的访问走eth0所在的网关:
ip rule add from 192.168.10.0/24 table 100 ip route add default via 192.168.1.1 dev eth0 table 100
这种用法在企业服务器多网口路由设置中很常见,解决的是多个业务网段共用一台服务器的流量路径问题。
服务器eth网口的常见故障排查与修改名称
eth网口不见了或名称变成ethX
不少运维同行遇到过这种问题:网卡驱动升级后,eth0变成了eth1或ethX,原因是内核的可预测命名规则与企业自定义的udev规则起了冲突,老CentOS系统可通过/etc/udev/rules.d/70-persistent-net.rules文件直接固定名称,
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="00:15:17:xx:xx:xx", NAME="eth0"
这里ATTR{address}填写网卡的MAC地址,改完执行reboot生效,相当一部分服务器重启后网卡名称异常问题都出在这个文件的配置顺序上。
eth0能ping通网关但ping不通外网

排查路径优先级(按从业者的通用经验):
- 查看
ip route默认路由是否指向eth0对应网关。 - 检查
iptables -L有无拦截FORWARD链。 - 确认
/etc/resolv.conf的DNS配置是否正确。 - 用
traceroute定位丢包节点。
多数情况下,这类问题的根源不在eth网口本身,而是路由表优先级错乱或者防火墙规则影响服务器netfilter通信。
云服务器上的eth网口与物理机有什么不同
云主机的eth0是虚拟交换机接口的映射,不是真正的物理网卡,在简米云、酷番云等平台上你看到的eth0,本质是一个virtio-net设备,数据包经过宿主机虚拟交换机转发,这解释了为什么云主机里ethtool eth0看到的驱动名称是virtio_net而不是Intel或Broadcom。
这也带来一个实际影响:在云服务器上不要轻易修改eth0的MAC地址,修改后可能导致网络彻底不通,因为云平台的ARP表项绑定了虚拟网口的MAC与IP对应关系,手动改动会破坏这个绑定。
FAQ:关于服务器eth网口的三个高频问题
eth0和eno1到底能不能互相转换
可以,通过修改内核启动参数net.ifnames=0 biosdevname=0,RHEL/CentOS系列可以强制回到eth0命名方式,但行业共识是不建议这么干,因为可预测命名让自动化工具和日志排查更准确,适应新命名比修改系统默认行为更安全。
为什么我的服务器只有eth0没有eth1
可能原因有两种,一是硬件上确实只有一张单口网卡,二是第二块网卡没有被系统识别,使用lspci | grep Ethernet查看PCIe总线上有几块网卡,如果硬件存在但系统不识别,检查驱动是否加载:lsmod | grep eth。
改变eth网口的IP地址会不会导致服务中断
对于TCP长连接业务,改IP一定会中断现有连接,因为TCP四元组中的IP变了,对于HTTP等短连接业务,影响较小,但依赖该IP的白名单访问会立即失效,生产环境修改IP前,建议先用ip addr show备份完整网络配置,并在维护窗口执行,这是任何需求下都适用的安全操作顺序。

