1. 程式人生 > 實用技巧 >基於Openwrt虛擬路由MAC地址

基於Openwrt虛擬路由MAC地址

上傳開發板執行程式

scp傳輸檔案

將生成好的可執行檔案放到開發板上,檔案傳輸方式 SCP。
scp 是 secure copy 的縮寫, scp 是 linux 系統下基於 ssh 登陸進行安全的遠端檔案拷貝命令。
基本用法為
scp 本地檔案 目標系統同戶名@目標IP地址:目標系統路徑,在回車之後輸入密碼,用法如圖所示。

虛擬機器網路相關設定

在使用本命令之前,要保證開發板與PC機處於同一網段之下,如果Linux使用的是虛擬機器,需進行如下設定:

  1. 點選虛擬機器的虛擬網路編輯器
  2. 新增如下橋接網路
  3. 點選虛擬機器選擇設定,選擇設定好的網路
  4. 重啟網路服務,獲得新的IP地址,可以嘗試使用以下命令:

service network-manager restart

Kali Linux(Debian),則需要用以下命令:

service networking restart

Centos 8,則需要用以下命令:

nmcli c reload

切換到串列埠控制檯,執行可執行檔案

如果工具鏈不對,生成的可執行檔案也是不能在開發板上執行的。

開機自啟動

啟動指令碼

啟動指令碼存放在開發板/etc/init.d/目錄中,將編寫好的指令碼檔案放置在該路徑下可實現開機自啟動。
實現有線埠自啟動指令碼如下,輸入ifconfig檢視自己需要更改的Wan口,在interface="eth0.2"更改埠名。

#MAC address changer script 
#MAKE SURE the OUI of the MAC address matches a client side wireless NIC vendor
#Place this script in /etc/init.d/                                             
                                                                               
START=94                          
STOP=20 
        
start() {
   interface="eth0.2"
                     
   current_mac=$(ifconfig ${interface} | grep "HWaddr" | awk '{print$5}')
   new_mac=$(dd if=/dev/random bs=1 count=3 2>/dev/null | hexdump -C | head -1 |
   if [ $? -eq 0 ]; then                                                        
      ifconfig $interface down                                                  
      ifconfig $interface hw ether $new_mac
      ifconfig $interface up               
         if [ $? -eq 0 ]; then             
            logger "MAC address successfully changed for $interface from $curren
            current_mac=$(ifconfig ${interface} | grep "HWaddr" | awk '{print$5}
            logger "New MAC address: $current_mac"                              
            exit 0                                                              
         else                                     
            logger "MAC address changing scriped failed"
            exit 1                                      
         fi                                             
   else           
      logger "Failed to generate MAC address. Perhaps you are missing certain sy
      exit 1                                                                    
   fi                                                                           
}           
     
stop() {
   echo "Stopping MAC changer script.."
}   

修改檔案許可權,啟用該檔案

$ chmod +x /etc/init.d/mac-change.sh
$ /etc/init.d/mac-change.sh enable

測試是否生效

$ /etc/init.d/mac-change.sh enabled && echo on
$ /etc/init.d/mac-change.sh start