查察网卡MAC地点
利用ip呼吁就能查察MAC地点了:
ip link show ${interface}
2: enp0s25: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether f0:de:f1:ad:1d:f0 brd ff:ff:ff:ff:ff:ff
个中 link/ether
后头那一串用 :
支解的6字节十六进制数就是网卡的MAC地点了,也就是 f0:de:f1:ad:1d:f0
手工修改MAC地点
利用ip呼吁也能修改MAC地点,可是需要root权限:
sudo ip link set dev ${interface} down
有的网络运营商大概会拒绝为不正确的 MAC 分派 IP 地点,因此推荐前三个字节用真实的MAC地点前缀,后三个字节可以随机变动。
sudo ip link set dev ${interface} address ${new_mac}
我们再查察一下网卡的MAC地点
ip link show ${interface}
2: enp0s25: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000 link/ether f0:de:f1:ff:ff:ff brd ff:ff:ff:ff:ff:ff
你会发明网卡已经被改成新的MAC地点了.
sudo ip link set dev ${interface} up
自动变动
systemd-networkd处事能通过 link
文件(底层物理网络设备设置)来配置MAC地点
我们通过 [Match]
小节来匹配某个网卡,然后通过 [Link]
小节来对网卡举办设置
Match小节
假如 “[Match]” 小节中的每一项都与某个网卡匹配, 那么视为该Link文件与该网卡匹配。若 “[Match]” 小节为空则暗示匹配任意网卡。
所有可用于匹配的选项如下:
MACAddress
匹配网卡的物理地点(MAC地点)
OriginalName
匹配网卡的”INTERFACE”属性值(网卡的内核名称)。 吸收一个空格脱离的匹配模式列表(利用shell气势气魄的通配符)。 不行用于匹配已经被用户空间改了名字的网卡。 应该小心利用此选项, 因为网卡的内核名称有大概是不不变的。
Path
匹配网卡的 “ID_PATH” 属性值(网卡的总线路径)。 吸收一个空格脱离的匹配模式列表(利用shell气势气魄的通配符)。
Driver
匹配网卡的 “DRIVER” 属性值(网卡的驱动名称)。 吸收一个空格脱离的匹配模式列表(利用shell气势气魄的通配符)。 留意,假如网卡的 “DRIVER” 属性不存在, 那么将利用 “ethtool -i” 呼吁中输出的驱动名称。
Type
匹配网卡的 “DEVTYPE” 属性值(网卡的设备范例)。 吸收一个空格脱离的匹配模式列表(利用shell气势气魄的通配符)。
Host
匹配主机的 hostname 或”machine ID”,拜见 systemd.unit(5) 中的 “ConditionHost=” 选项。
Virtualization
查抄是否运行于特定的虚拟情况中, 拜见 systemd.unit(5) 中的 “ConditionVirtualization=” 选项。
KernelCommandLine
查抄是否配置了(可能以”!”开头暗示未配置)特定的内核引导选项, 拜见 systemd.unit(5) 中的 “ConditionKernelCommandLine=” 选项。
Architecture
查抄是否运行于特定的硬件平台, 拜见 systemd.unit(5) 中的 “ConditionArchitecture=” 选项。
Link小节
Link小节可以对网卡举办多种设置,个中与修改MAC有关的选项有:
MACAddressPolicy
应该如何配置网卡的MAC地点:
假如内核利用了网卡硬件固有的MAC地点(绝大大都网卡都有), 那么啥也不做,直接利用内核的MAC地点。 不然,将会随机新生成一个 确保在多次启动之间保持牢靠稳定的MAC地点(针对给定的主板与网卡)。 自动生成MAC地点的特性 要求网卡必需存在 ID_NET_NAME_* 属性, 不然无法自动生成MAC地点。
假如内核利用了随机生成的MAC地点(而不是网卡硬件固有的MAC地点), 那么啥也不做,直接利用内核的MAC地点。 不然,将在网卡每次呈现的时候(一般在启动进程中)随机新生成一个MAC地点。 无论利用上述哪种方法生成的MAC地点, 都将配置 “unicast” 与 “locally administered” 位。
无条件的直接利用内核的MAC地点。
MACAddress
在未配置 “MACAddressPolicy=” 时所利用MAC地点。
别的,Link小节中,我们必需为某个网卡举办定名,因此必定会有 NamePolicy 可能 Name 选项