最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux修改mac地址重啟后依然生效的方法步驟

 更新時間:2026年04月09日 09:42:46   作者:qing22222222  
本文介紹了使用shell腳本和u盤在新板上替換舊板mac地址的過程,包括獲取舊板mac地址并保存到u盤,以及識別u盤拔插自動執(zhí)行腳本以更改新板mac地址,文中詳細(xì)解釋了Netplan網(wǎng)絡(luò)配置工具的使用方法,并針對配置文件和mac地址備份進行了說明,需要的朋友可以參考下

需求描述:項目中需要用新的板子替換掉舊的板子。舊板已在生產(chǎn)環(huán)境中使用,且網(wǎng)絡(luò)已經(jīng)配置好。為了使新板的網(wǎng)絡(luò)配置跟舊板的一樣,需要將新板的eth0和eth1這兩個網(wǎng)口的mac地址替換成舊板的eth0和eth1兩個網(wǎng)口的mac地址,并且重啟后依然生效。

為了方便客戶操作,計劃通過shell腳本+u盤實現(xiàn)上述需求:

(1)在舊板插入u盤后,自動調(diào)用u盤中的腳本,獲取舊板上的mac地址并生成.yaml文件保存到u盤中
(2)然后在新板插入u盤,將yaml文件拷貝到/etc/netplan路徑下
(3)需要另寫一個程序:識別u盤的拔插,以及根據(jù)ini配置文件自動執(zhí)行u盤中的對應(yīng)的腳本

這樣在運行程序后,客戶只需要拔插u盤就能實現(xiàn)mac地址的更換

本文主要介紹(1)(2)兩步的實現(xiàn)過程

板子系統(tǒng)環(huán)境:ubuntu20.04

實現(xiàn)思路:需要先獲取舊板上的mac地址,然后在新板中通過修改YAML 配置文件來達到更換mac地址的目的

一、Netplan網(wǎng)絡(luò)配置

從 Ubuntu 17.10 版本開始引入Netplan,作為默認(rèn)的網(wǎng)絡(luò)配置管理工具。它通過簡單的 YAML 文件 來定義網(wǎng)絡(luò)設(shè)置,并交由不同的后端(如 systemd-networkd 或 NetworkManager)來管理實際的網(wǎng)絡(luò)連接。(在 Ubuntu 16.04 及更早版本中,默認(rèn)使用 /etc/network/interfaces 文件來配置網(wǎng)絡(luò))

YAML 配置文件

Netplan 使用 YAML 文件 來配置網(wǎng)絡(luò)接口。這些文件通常位于 /etc/netplan/ 目錄下,以 .yaml 作為文件擴展名。

出于安全考慮,在更換mac地址時需要先對原來的mac地址備份,需要了解以下信息:

(1)Netplan 沒有強制要求配置文件的名稱,只要求配置文件位于 /etc/netplan/ 目錄下,并且必須是 YAML 格式。
(2)Netplan 會在啟動時按文件名的字典順序讀取 /etc/netplan/ 目錄下的所有 YAML 配置文件,如果有多個 YAML 文件,后讀取的文件會覆蓋之前文件中的配置。

假設(shè)你在 /etc/netplan/ 目錄下有以下三個文件:

10-netplan.yaml
20-network-config.yaml
99-custom-settings.yaml

Netplan 會按順序讀取這些文件:

先讀取 10-netplan.yaml
然后讀取 20-network-config.yaml,如果文件中有和 10-netplan.yaml 中相同的配置項,后者會覆蓋前者。
最后,讀取 99-custom-settings.yaml,它會覆蓋前兩個文件中相同的配置項。

二、獲取舊板上的mac地址

實現(xiàn)腳本

#!/bin/bash
#此腳本用于獲取當(dāng)前設(shè)備的mac地址,并生成對應(yīng)的/etc/netplan/01-network-manager-all.yaml文件.
# U 盤掛載路徑(程序里面已建立軟鏈接,也可以根據(jù)U盤的掛載點修改)
USB_PATH="/userdata/workspace/runningspace/Upgrade"
CONFIG_NAME="01-network-manager-all.yaml"
# 檢查 U 盤路徑是否存在
if [ ! -d "$USB_PATH" ]; then
    echo "錯誤: 未找到 U 盤掛載路徑 $USB_PATH"
    exit 1
fi
# 獲取 MAC 地址
MAC_ETH0=$(cat /sys/class/net/eth0/address)
MAC_ETH1=$(cat /sys/class/net/eth1/address)
echo "檢測到 eth0 MAC: $MAC_ETH0"
echo "檢測到 eth1 MAC: $MAC_ETH1"
# 生成 YAML 內(nèi)容
cat <<EOF > "${USB_PATH}/${CONFIG_NAME}"
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: true
      macaddress: $MAC_ETH0
      optional: true
    eth1:
      dhcp4: true
      macaddress: $MAC_ETH1
      optional: true
EOF
echo "配置文件已生成至: ${USB_PATH}/${CONFIG_NAME}"

腳本解析:

1、在ubuntu20.04中,可以通過/sys/class/net路徑下的文件獲取網(wǎng)卡的mac地址

2、讀取后生成相應(yīng)的YAML文件,保存到u盤中。這里有個地方需要注意:

renderer需要設(shè)置為networkd(不是NetworkManager),并且optional設(shè)置為True。這樣即使在沒接網(wǎng)線的情況下,Netplan配置也能生效。否則后續(xù)根據(jù)YAML文件更改mac地址時如果沒接網(wǎng)線就會更改失敗

三、更改新板上的mac地址

實現(xiàn)腳本

#!/bin/bash

#此腳本用于將另一臺設(shè)備的mac地址替換到當(dāng)前設(shè)備

# U 盤掛載路徑(程序里面已建立軟鏈接,也可以根據(jù)U盤的掛載點修改)
USB_PATH="/userdata/workspace/runningspace/Upgrade"

# 定義路徑
NETPLAN_DIR="/etc/netplan"
CONFIG_NAME="01-network-manager-all.yaml"
BACKUP_NAME="01-network-manager-all.yaml.bak"

# 檢查 U 盤中是否有目標(biāo)文件
if [ ! -f "${USB_PATH}/${CONFIG_NAME}" ]; then
    echo "錯誤: U 盤中不存在配置文件 ${CONFIG_NAME}"
    exit 1
fi

# 1. 備份原文件 (如果尚未備份)
if [ -f "${NETPLAN_DIR}/${CONFIG_NAME}" ]; then
    echo "正在備份原配置文件..."
    sudo cp "${NETPLAN_DIR}/${CONFIG_NAME}" "${NETPLAN_DIR}/${BACKUP_NAME}"
fi

# 2. 從 U 盤拷貝新配置
echo "正在從 U 盤應(yīng)用新配置..."
sudo cp "${USB_PATH}/${CONFIG_NAME}" "${NETPLAN_DIR}/${CONFIG_NAME}"

# 3. 設(shè)置權(quán)限(Netplan 對權(quán)限有嚴(yán)格要求,通常為 600 或 644)
sudo chmod 600 "${NETPLAN_DIR}/${CONFIG_NAME}"

# 4. 應(yīng)用 Netplan 配置
echo "正在應(yīng)用網(wǎng)絡(luò)配置..."
sudo netplan apply

if [ $? -eq 0 ]; then
    echo "MAC 地址永久修改成功!"
    ip link show eth0 | grep link/ether
    ip link show eth1 | grep link/ether
else
    echo "應(yīng)用失敗,請檢查 YAML 語法或硬件狀態(tài)。"
fi

到此這篇關(guān)于Linux修改mac地址重啟后依然生效的方法步驟的文章就介紹到這了,更多相關(guān)Linux修改mac地址重啟有效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Ubuntu忘記密碼重置的詳細(xì)教程

    Ubuntu忘記密碼重置的詳細(xì)教程

    虛擬機裝了Ubuntu,太久沒有用導(dǎo)致密碼忘記了,自己搗鼓了下,成功修改原賬戶密碼,所以本文記錄了一下Ubuntu忘記密碼重置的詳細(xì)教程,感興趣的小伙伴跟著小編一起來看看吧
    2025-03-03
  • CentOS 6.5上的Tomcat啟動報錯問題解決方法

    CentOS 6.5上的Tomcat啟動報錯問題解決方法

    最近在搭建虛擬機環(huán)境,裝的是CentOSQL 6.5版本,然后裝的OpenJDK1.7,在Apache下載了一個純凈的Tomcat放到虛擬機上啟動報錯了
    2016-08-08
  • Linux解決RocketMQ中NameServer啟動問題的方法詳解

    Linux解決RocketMQ中NameServer啟動問題的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Linux解決RocketMQ中NameServer啟動問題的方法,文中通過圖片和示例代碼進行了詳細(xì)講解,需要的小伙伴可以參考下
    2023-08-08
  • 阿里云Centos7安裝LNMP+wordpress

    阿里云Centos7安裝LNMP+wordpress

    這篇文章主要介紹了阿里云Centos7安裝LNMP+wordpress的方法和步奏,十分的簡潔明了,推薦給大家,有需要的小伙伴可以參考下
    2016-04-04
  • 超詳細(xì)講解Linux DHCP服務(wù)

    超詳細(xì)講解Linux DHCP服務(wù)

    這篇文章主要介紹了Linux DHCP 服務(wù),它可以避免IP地址沖突,提高了IP地址的利用率等優(yōu)點。感興趣的小伙伴一起來學(xué)習(xí)吧
    2021-08-08
  • linux系統(tǒng)用戶管理與grep正則表達式示例教程

    linux系統(tǒng)用戶管理與grep正則表達式示例教程

    這篇文章主要給大家介紹了關(guān)于linux系統(tǒng)用戶管理與grep正則表達式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Linux創(chuàng)建用戶組并分配用戶權(quán)限方式

    Linux創(chuàng)建用戶組并分配用戶權(quán)限方式

    這篇文章主要介紹了Linux創(chuàng)建用戶組并分配用戶權(quán)限方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-11-11
  • 在Windows的Apache服務(wù)器上配置對PHP和CGI的支持

    在Windows的Apache服務(wù)器上配置對PHP和CGI的支持

    這篇文章主要介紹了在Windows的Apache服務(wù)器上配置對PHP和CGI的支持,其中CGI腳本文中演示的為Perl示例,需要的朋友可以參考下
    2015-07-07
  • Centos7修改主機名hostname的三種方法

    Centos7修改主機名hostname的三種方法

    今天小編就為大家分享一篇關(guān)于Centos7修改主機名hostname的三種方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 詳解ubuntu 16.04 LTS 降級安裝gcc 4.8

    詳解ubuntu 16.04 LTS 降級安裝gcc 4.8

    本篇文章主要介紹了ubuntu 16.04 LTS 降級安裝gcc 4.8 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論

略阳县| 和硕县| 开平市| 溧阳市| 渝中区| 双柏县| 和硕县| 乌拉特前旗| 邻水| 汾阳市| 拉萨市| 普陀区| 凤庆县| 苏州市| 白朗县| 荆门市| 和林格尔县| 南漳县| 庄河市| 阳东县| 陈巴尔虎旗| 临夏市| 东乌珠穆沁旗| 城固县| 昌江| 维西| 芜湖县| 嘉善县| 莆田市| 百色市| 阳原县| 英超| 东丽区| 皋兰县| 荔浦县| 清远市| 东台市| 溧水县| 永平县| 桓台县| 长海县|