閱讀562 返回首頁    go iPhone_iPad_Mac_手機_平板_蘋果apple


Mac OS 10.12.3如何添加永久靜態路由

我電腦是2016年底最新的MAC BOOK PRO,現在係統版本是10.12.3

因為工作原因需要在設置電腦IP為172.16.10.27,通過這個IP連接到其他網段。需要在MAC OS上設置兩條靜態路由。

sudo route add 172.16.0.0/16 172.16.10.89

sudo route add 172.16.11.0/24 172.16.10.82

在終端添加這兩條路由沒問題。但是每次重啟係統都要重新添加。在網上查詢了,那些在/system/Library/StartupItems/AddRoutes/下添 加AdaRoutes和StartupParameters.plist兩個文件實現開機啟動自動添加路由的方法根本不適用此版本的Mac OS。

以下是兩個文件的內容:

BaoYe:AddRoutes root# ls -l

total 16

-rwxrwxrwx  1 root  wheel  334 Mar 24 13:25 AddRoutes

-rwxrwxrwx  1 root  wheel  173 Mar 24 11:13 StartupParameters.plist

BaoYe:AddRoutes root# more AddRoutes

#!/bin/sh

# Set up static routing tables

. /etc/rc.common

StartService ()

{

sudo route -nv add 172.16.0.0/16 172.16.10.89

sudo route -nv add 172.16.11.0/24 172.16.10.82

}

StopService ()

{

        return 0

}

RestartService ()

{

        return 0

}

RunService "$1"

 

BaoYe:AddRoutes root#  more StartupParameters.plist

{

        Description     = "Add static routing tables";

        Provides        = ("AddRoutes");

        Requires        = ("Network");

        OrderPreference = "None";

}

 

網上介紹的方法都是類似的這些,我的電腦啟動的時候不是以root用戶啟動,而是以我自己的用戶啟動,這開機自動添加默認路由的方法根本不生效。

一開始懷疑是sudo route -nv add 172.16.0.0/16 172.16.10.89需要輸入密碼的原因,用了expect更改腳本中這兩條語句為以下內容還是不能生效。

{

sudo route -nv add 172.16.0.0/16 172.16.10.89

expect "Password:"

send "*****密碼 "

sudo route -nv add 172.16.11.0/24 172.16.10.82

expect "Password:"

send "*****密碼 "

}

 

哪位好心的大神幫幫我呀?



已不建議使用StartupItems。就你目前的敘述來說,可以用下麵的方法:

 

1. 創建目錄

mkdir -p /usr/local/bin

 

2. 創建第一個文件,添加路由的腳本, 把它保存到/usr/local/bin/addroute.sh。其中添加了一個日誌語句(logger),如不需要可以刪除.

#!/bin/bash

route add 172.16.0.0/16 172.16.10.89

route add 172.16.11.0/24 172.16.10.82

logger -i "addRoute: Done with error code: $?"

 

3. 創建第二個文件,純文本文件,把它保存為:/Library/LaunchDaemons/org.mylocalmachine.addroute.plist

這一步需要管理員權限才能保存。使用你編輯腳本的編輯器,直接把下邊內容複製到你的編輯器裏保存即可。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

  <key>Disabled</key>

  <false/>

  <key>KeepAlive</key>

  <false/>

  <key>Label</key>

  <string>org.mylocalmachine.addroute</string>

  <key>Program</key>

  <string>/usr/local/bin/addroute.sh</string>

  <key>RunAtLoad</key>

  <true/>

</dict>

</plist>

 

3. 運行下麵命令以修正權限:

sudo chmod 755 /usr/local/bin/addroute.sh

sudo chmod 644 /Library/LaunchDaemons/org.mylocalmachine.addroute.plist

sudo chown root:wheel /usr/local/bin/addroute.sh/Library/LaunchDaemons/org.mylocalmachine.addroute.plist

 

4. 如需要全部卸載/刪除,就是把上麵前兩步的文件都刪除就可以了。

 

每次重新啟動都會自動添加路由了。

 

如果有問題,確認每個文件的文件名路徑和權限都正確.



最後更新:2017-05-11 01:20:38

  上一篇:go mac連接電源自動開機 衝不進去電
  下一篇:go Macbook pro不充電開不了機