【脚本】 【Linux】重命名网卡

发布时间:2026/10/22 7:22:23
【脚本】 【Linux】重命名网卡 nic_rename.sh#!/bin/bash# 按udev规则文件中的 MAC地址-网卡名 映射强制改名, 处理网卡枚举较晚或已被提前UP导致udev改名失败的情况RULES/etc/udev/rules.d/70-persistent-net.rules[-f$RULES]||exit0declare-AMAPwhileIFSread-rline||[-n$line];domac$(grep-oPATTR\{address\}\K[^]$line)name$(grep-oPNAME\K[^]$line)[-n$mac][-n$name]MAP[$mac]$namedone$RULES[${#MAP[]}-eq0]exit0# 改名前先down, 接口UP时内核拒绝改名, 经临时名避免名称冲突, 再恢复原状态fordevin/sys/class/net/*;dodev$(basename$dev)[$devlo]continuemac$(cat/sys/class/net/$dev/address2/dev/null)target${MAP[$mac]}[-z$target]continue[$dev$target]continue# 记录原 UP/DOWN 状态was_up0ifiplinkshow$dev|grep-q.*UP.*;thenwas_up1fiiplinkset$devdown2/dev/nullif!iplinkset$devnametmp_$target2/dev/null;thenlogger-tnic_rename$dev改名失败continuefiiplinksettmp_$targetname$target2/dev/nullif[$was_up-eq1];theniplinkset$targetupfilogger-tnic_rename$dev($mac) -$targetdone用法./nic_rename.sh。设置系统开机自启把文件nic_rename.sh放在目录/lib/ifupdown/下chmod x nic_rename.sh赋予可执行权限。创建服务文件/lib/systemd/system/nic_rename.service[Unit]DescriptionRename ethernet cards by MACAftersystemd-udev-trigger.service systemd-modules-load.service local-fs.targetBeforenetwork-pre.targetWantsnetwork-pre.target[Service]TypeoneshotRemainAfterExityesExecStart/lib/ifupdown/nic_rename.sh[Install]WantedBymulti-user.target启动服务systemctlenablenic_rename systemctl daemon-reload systemctl start nic_rename

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询