一文盘点linux中修改mac和ip地址的常见方法

 更新时间:2026年04月08日 09:20:48   作者:luoqice  
这篇文章主要为大家详细介绍了linux中修改mac和ip地址的一些常见方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下

在 Linux 系统中,你可以通过以下步骤修改 MAC 地址和 IP 地址。

查看MAC地址

三个常用命令

命令

ifconfig
ip link show
cat /sys/class/net/eth0/address

ifconfig 显示的内容举例

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe00:1  prefixlen 64  scopeid 0x20<link>
        ether 00:1a:2b:3c:4d:5e  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 12345678 (11.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12345  bytes 12345678 (11.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

关于 ifconfig 显示的字段的含义

1.网络端口的名称

  • eth0 、 eth1 (Ethernet Interfaces):eth0 、 eth1 等是传统的以太网接口名称。这些名称通常用于表示物理以太网卡。 eth0 通常表示系统中的第一个以太网卡, eth1 表示第二个以太网卡,依此类推。
  • lo 环回接口(Loopback Interface):lo 是环回接口(Loopback Interface)的简称。它是一个虚拟网络接口,用于在本机内部进行网络通信。
  • wlan0 、 wlan1 (Wireless Interfaces):wlan0 、 wlan1 等是无线网络接口名称。这些名称通常用于表示无线网卡。 wlan0 通常表示系统中的第一个无线网卡, wlan1 表示第二个无线网卡,依此类推。
  • ens33 、 ens34 等(Predictable Network Interface Names):从较新的Linux发行版(如Ubuntu 16.04及更高版本)开始,网络接口名称可能采用更可预测的命名方式。这种命名方式旨在解决传统命名方式(如 eth0 、 eth1 )在某些情况下可能会导致接口名称变化的问题。例如, ens33 、 ens34 等名称是基于设备的物理位置和硬件特性生成的。

2.mtu (Maximum Transmission Unit)

  • 含义:mtu 表示最大传输单元(Maximum Transmission Unit),是指在网络层上能够通过该接口传输的最大数据包大小(以字节为单位)。它决定了单个网络数据包可以携带的最大数据量。
  • 作用:如果数据包的大小超过MTU,数据包会被分片(分割成多个较小的数据包)发送。合适的MTU值可以提高网络传输效率,避免不必要的分片和重组。
  • 示例:在上面的例子中, mtu 1500 表示该接口的最大传输单元为1500字节。

3.inet (Internet Address)

  • 含义:inet 表示该接口的IPv4地址。这是接口在IPv4网络中的IP地址。
  • 作用:用于标识设备在网络中的位置,允许设备在IPv4网络中进行通信。
  • 示例:在上面的例子中, inet 192.168.1.100 表示该接口的IPv4地址为 192.168.1.100 。

4.netmask(Network Mask)

  • 含义:netmask 表示子网掩码(Network Mask)。子网掩码用于区分IP地址中的网络部分和主机部分。
  • 作用:子网掩码帮助设备确定哪些IP地址属于同一个子网,哪些属于不同的子网。这在路由决策中非常重要。
  • 示例:在上面的例子中, netmask 255.255.255.0 表示子网掩码为 255.255.255.0 。这意味着该接口所在的子网是 192.168.1.0/24 ,其中 192.168.1.0 是子网的网络地址, 255.255.255.0 表示子网掩码。

5.broadcast (Broadcast Address)

  • 含义:broadcast 表示广播地址(Broadcast Address)。广播地址用于将数据包发送到子网中的所有设备。
  • 作用:当设备需要向子网中的所有设备发送数据时,它会使用广播地址。例如,ARP(地址解析协议)请求通常会发送到广播地址。
  • 示例:在上面的例子中, broadcast 192.168.1.255 表示该接口的广播地址为 192.168.1.255 。这意味着任何发送到 192.168.1.255 的数据包都会被子网中的所有设备接收。

6.ether (Ethernet Address)

  • 含义:ether 表示该接口的以太网地址,也就是MAC地址(Media Access Control Address)。MAC地址是网络接口的唯一标识符,用于在局域网中识别设备。
  • 作用:MAC地址用于在以太网(Ethernet)层进行设备之间的通信。每个网络接口都有一个唯一的MAC地址,用于在物理网络中区分不同的设备。
  • 示例:在上面的例子中, ether 00:1a:2b:3c:4d:5e 表示该接口的MAC地址为 00:1a:2b:3c:4d:5e 。

7.txqueuelen (Transmit Queue Length)

  • 含义:txqueuelen 表示传输队列长度(Transmit Queue Length)。这是网络接口的传输队列可以容纳的最大数据包数量。
  • 作用:当网络接口的数据包发送速度超过网络的实际传输速度时,数据包会被暂存到传输队列中。 txqueuelen 值决定了队列的大小,较大的队列可以容纳更多的数据包,但可能会增加延迟。
  • 示例:在上面的例子中, txqueuelen 1000 表示该接口的传输队列长度为1000。

8.其他字段

  • flags
    • 含义:flags表示网络接口的状态标志。
    • 示例:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>表示该接口处于以下状态:
      • UP:接口已启用。
      • BROADCAST:接口支持广播。
      • RUNNING:接口正在运行。
      • MULTICAST:接口支持多播。
  • inet6
    • 含义:inet6表示该接口的IPv6地址。
    • 示例:inet6 fe80::a00:27ff:fe00:1表示该接口的IPv6地址为fe80::a00:27ff:fe00:1
  • prefixlen
    • 含义:prefixlen表示IPv6地址的前缀长度。
    • 示例:prefixlen 64表示IPv6地址的前缀长度为64位。
  • scopeid
    • 含义:scopeid表示IPv6地址的作用范围。
    • 示例:scopeid 0x20<link>表示该IPv6地址的作用范围是链路本地(Link-local)。
  • RX packets
    • 含义:RX packets表示接收的数据包数量。
    • 示例:RX packets 12345表示该接口接收了12345个数据包。
  • RX bytes
    • 含义:RX bytes表示接收的数据量(以字节为单位)。
    • 示例:RX bytes 12345678 (11.7 MiB)表示该接口接收了12345678字节的数据,相当于11.7 MiB。
  • RX errors
    • 含义:RX errors表示接收过程中发生的错误数量。
    • 示例:RX errors 0表示没有接收错误。
  • RX dropped
    • 含义:RX dropped表示接收过程中被丢弃的数据包数量。
    • 示例:RX dropped 0表示没有数据包被丢弃。
  • RX overruns
    • 含义:RX overruns表示接收队列溢出的次数。
    • 示例:RX overruns 0表示没有接收队列溢出。
  • RX frame
    • 含义:RX frame表示接收过程中帧对齐错误的数量。
    • 示例:RX frame 0表示没有帧对齐错误。
  • TX packets
    • 含义:TX packets表示发送的数据包数量。
    • 示例:TX packets 12345表示该接口发送了12345个数据包。
  • TX bytes
    • 含义:TX bytes表示发送的数据量(以字节为单位)。
    • 示例:TX bytes 12345678 (11.7 MiB)表示该接口发送了12345678字节的数据,相当于11.7 MiB。
  • TX errors
    • 含义:TX errors表示发送过程中发生的错误数量。
    • 示例:TX errors 0表示没有发送错误。
  • TX dropped
    • 含义:TX dropped表示发送过程中被丢弃的数据包数量。
    • 示例:TX dropped 0表示没有数据包被丢弃。
  • TX overruns
    • 含义:TX overruns表示发送队列溢出的次数。
    • 示例:TX overruns 0表示没有发送队列溢出。
  • TX carrier
    • 含义:TX carrier表示发送过程中检测到的载波丢失次数。
    • 示例:TX carrier 0表示没有载波丢失。
  • TX collisions
    • 含义:TX collisions表示发送过程中发生的碰撞次数。
    • 示例:TX collisions 0表示没有碰撞。

修改 MAC 地址

修改 MAC 地址通常需要管理员权限。以下是修改 MAC 地址的几种方法:

方法一:使用ip命令

关闭网络接口

sudo ip link set dev eth0 down

其中 eth0 是你要修改 MAC 地址的网络接口名称。

修改 MAC 地址

sudo ip link set dev eth0 address 00:11:22:33:44:55

这里 00:11:22:33:44:55 是你要设置的新 MAC 地址。

重新启用网络接口

sudo ip link set dev eth0 up

方法二:使用ifconfig命令(旧方法)

关闭网络接口

sudo ifconfig eth0 down

修改 MAC 地址

sudo ifconfig eth0 hw ether 00:11:22:33:44:55

重新启用网络接口

sudo ifconfig eth0 up

方法三:修改配置文件(永久修改)

如果你想永久修改 MAC 地址,可以修改网络接口的配置文件。一般来说,这些文件位于 /etc/network/interfaces 或 /etc/sysconfig/network-scripts/ 目录下,具体路径取决于你的 Linux 发行版。

例如,在 Debian/Ubuntu 系统中,可以编辑 /etc/network/interfaces 文件:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    hwaddress ether 00:11:22:33:44:55

修改 IP 地址

修改 IP 地址的步骤与修改 MAC 地址类似,也需要管理员权限。

方法一:使用ip命令

关闭网络接口

sudo ip link set dev eth0 down

修改 IP 地址

sudo ip addr add 192.168.1.100/24 dev eth0

这里 192.168.1.100 是你要设置的新 IP 地址,/24 是子网掩码。

重新启用网络接口

sudo ip link set dev eth0 up

方法二:使用ifconfig命令(旧方法)

关闭网络接口

sudo ifconfig eth0 down

修改 IP 地址

sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0

重新启用网络接口

sudo ifconfig eth0 up

方法三:修改配置文件(永久修改)

如果你想永久修改 IP 地址,可以修改网络接口的配置文件,例如在 Debian/Ubuntu 系统中,编辑 /etc/network/interfaces 文件:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1

在 CentOS/RHEL 系统中,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 文件:

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

总结

  • 修改 MAC 地址和 IP 地址都需要管理员权限。
  • 修改 MAC 地址可以使用 ip 或 ifconfig 命令,也可以通过修改配置文件实现。
  • 修改 IP 地址可以使用 ip 或 ifconfig 命令,也可以通过修改配置文件实现。

到此这篇关于一文盘点linux中修改mac和ip地址的常见方法的文章就介绍到这了,更多相关linux修改mac和ip地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解在Linux中搭建一个FTP服务器

    详解在Linux中搭建一个FTP服务器

    本篇文章主要介绍了在Linux中搭建一个FTP服务器 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux磁盘开机挂载的实现步骤

    Linux磁盘开机挂载的实现步骤

    在Linux系统中,通过修改/etc/fstab文件,可以实现磁盘开机自动挂载,文章详细介绍了挂载和开机自动挂载的基本概念,以及实现步骤,需要的朋友可以参考下
    2025-12-12
  • Linux 创建修改删除用户和组的方法

    Linux 创建修改删除用户和组的方法

    这篇文章主要介绍了Linux 创建修改删除用户和组的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • linux进程D状态的解决思路分享

    linux进程D状态的解决思路分享

    在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如何使用`dmsetup`工具暂停和恢复LVM卷的IO操作,从而使得进程从D状态恢复到R状态
    2025-02-02
  • linux 后台日志 mysql 错误异常的解释(推荐)

    linux 后台日志 mysql 错误异常的解释(推荐)

    下面小编就为大家带来一篇linux 后台日志 mysql 错误异常的解释(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • Linux中虚拟机宕机之后解决办法

    Linux中虚拟机宕机之后解决办法

    这篇文章主要介绍了Linux中虚拟机宕机之后解决办法的相关资料,这里提供详细的解决步骤来说明宕机该如何解决,需要的朋友可以参考下
    2017-08-08
  • Linux实现驱动模块传参过程解析

    Linux实现驱动模块传参过程解析

    这篇文章主要介绍了Linux实现驱动模块传参过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Linux用户与组管理的用法解读

    Linux用户与组管理的用法解读

    这篇文章主要介绍了Linux用户与组管理的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-08-08
  • 详解Linux文本编辑器Vim

    详解Linux文本编辑器Vim

    这篇文章主要介绍了Linux文本编辑器Vim,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Linux基线检查与安全加固方式

    Linux基线检查与安全加固方式

    本文详细介绍了Linux安全加固的多个方面,包括账户管理、口令策略、SSH安全设置等,首先,对于账户管理,介绍了口令锁定策略、口令生存期、口令复杂度、密码重用限制以及禁止存在空密码账户等方面的检查和加固操作,其次,在服务管理方面
    2024-10-10

最新评论