1. 查看mac地址
1.1 三个常用命令
- 命令
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
1.2 关于 ifconfig 显示的字段的含义
1.2.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 等名称是基于设备的物理位置和硬件特性生成的。
1.2.2 mtu (maximum transmission unit)
- 含义
mtu 表示最大传输单元(maximum transmission unit),是指在网络层上能够通过该接口传输的最大数据包大小(以字节为单位)。它决定了单个网络数据包可以携带的最大数据量。 - 作用
如果数据包的大小超过mtu,数据包会被分片(分割成多个较小的数据包)发送。合适的mtu值可以提高网络传输效率,避免不必要的分片和重组。 - 示例
在上面的例子中, mtu 1500 表示该接口的最大传输单元为1500字节。
1.2.3 inet (internet address)
- 含义
inet 表示该接口的ipv4地址。这是接口在ipv4网络中的ip地址。 - 作用
用于标识设备在网络中的位置,允许设备在ipv4网络中进行通信。 - 示例
在上面的例子中, inet 192.168.1.100 表示该接口的ipv4地址为 192.168.1.100 。
1.2.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 表示子网掩码。
1.2.5 broadcast (broadcast address)
- 含义
broadcast 表示广播地址(broadcast address)。广播地址用于将数据包发送到子网中的所有设备。 - 作用
当设备需要向子网中的所有设备发送数据时,它会使用广播地址。例如,arp(地址解析协议)请求通常会发送到广播地址。 - 示例
在上面的例子中, broadcast 192.168.1.255 表示该接口的广播地址为 192.168.1.255 。这意味着任何发送到 192.168.1.255 的数据包都会被子网中的所有设备接收。
1.2.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 。
1.2.7 txqueuelen (transmit queue length)
- 含义
txqueuelen 表示传输队列长度(transmit queue length)。这是网络接口的传输队列可以容纳的最大数据包数量。 - 作用
当网络接口的数据包发送速度超过网络的实际传输速度时,数据包会被暂存到传输队列中。 txqueuelen 值决定了队列的大小,较大的队列可以容纳更多的数据包,但可能会增加延迟。 - 示例
在上面的例子中, txqueuelen 1000 表示该接口的传输队列长度为1000。
1.2.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表示没有碰撞。
- 含义:
2. 修改 mac 地址
2.1 方法一:使用ifconfig命令
ifconfig是一个传统的网络配置工具,适用于较旧版本的linux系统。以下是使用ifconfig命令修改mac地址的步骤:
- 查看当前mac地址
- 首先,查看当前网络接口的mac地址:
ifconfig eth0
- 关闭网络接口
- 在修改mac地址之前,需要先关闭网络接口:
sudo ifconfig eth0 down
- 修改mac地址
- 使用
ifconfig命令修改mac地址:
- 使用
sudo ifconfig eth0 hw ether 00:1a:2b:3c:4d:5f
其中`00:1a:2b:3c:4d:5f`是新的mac地址,你可以根据需要替换为其他有效的mac地址。
- 启用网络接口
- 修改完成后,重新启用网络接口:
sudo ifconfig eth0 up
- 验证修改结果
- 再次使用
ifconfig命令查看网络接口的mac地址,确认修改是否成功:
- 再次使用
ifconfig eth0
如果修改成功,输出中的`hwaddr`应该显示为新的mac地址。
2.2 方法二:使用ip命令
ip命令是一个更现代的网络配置工具,适用于较新版本的linux系统。以下是使用ip命令修改mac地址的步骤:
- 查看当前mac地址
- 首先,查看当前网络接口的mac地址:
ip link show eth0
输出中`link/ether`后面的部分就是当前的mac地址。
- 关闭网络接口
- 在修改mac地址之前,需要先关闭网络接口:
sudo ip link set eth0 down
- 修改mac地址
- 使用
ip命令修改mac地址:
- 使用
sudo ip link set eth0 address 00:1a:2b:3c:4d:5f
其中`00:1a:2b:3c:4d:5f`是新的mac地址,你可以根据需要替换为其他有效的mac地址。
- 启用网络接口
- 修改完成后,重新启用网络接口:
sudo ip link set eth0 up
- 验证修改结果
- 再次使用
ip命令查看网络接口的mac地址,确认修改是否成功:
- 再次使用
ip link show eth0
如果修改成功,输出中的`link/ether`应该显示为新的mac地址。
2.3 方法三:通过修改网络配置文件(适用于需要永久修改的情况)
如果你希望修改后的mac地址在系统重启后仍然有效,可以通过修改网络配置文件来实现。以下是基于不同linux发行版的步骤:
对于基于debian的系统(如ubuntu)
- 编辑网络配置文件
- 编辑
/etc/network/interfaces文件:
- 编辑
sudo nano /etc/network/interfaces
- 添加或修改
hwaddress行- 在对应的网络接口配置部分添加或修改
hwaddress行:
- 在对应的网络接口配置部分添加或修改
iface eth0 inet dhcp
hwaddress ether 00:1a:2b:3c:4d:5f
- 重启网络服务
- 重启网络服务以使配置生效:
sudo /etc/init.d/networking restart
对于基于red hat的系统(如centos)
- 编辑网络配置文件
- 编辑
/etc/sysconfig/network-scripts/ifcfg-eth0文件:
- 编辑
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
- 添加或修改
hwaddr行- 在文件中添加或修改
hwaddr行:
- 在文件中添加或修改
hwaddr=00:1a:2b:3c:4d:5f
- 重启网络服务
- 重启网络服务以使配置生效:
sudo systemctl restart network
注意事项
- 选择合适的mac地址:确保你选择的mac地址是有效的,并且不会与网络中的其他设备冲突。
- 网络连接中断:修改mac地址可能会导致网络连接暂时中断,因此建议在修改前确保重要数据已经保存。
- 系统重启后生效:如果你通过修改配置文件来设置mac地址,需要重启网络服务或系统才能使更改生效。
- 权限问题:修改网络接口的mac地址通常需要管理员权限,因此需要使用
sudo来执行相关命令。
通过以上方法,你可以修改linux系统中的mac地址。
以上就是linux查看和修改mac地址的方法大全的详细内容,更多关于linux查看和修改mac地址的资料请关注代码网其它相关文章!
发表评论