以下内容轉載自百度經驗。
DDNS可以綁定動态IP到指定的域名。這對于需要遠端通路,而又不想申請靜态IP的家庭使用者是非常實用的功能。本文就以賺錢寶(以下簡稱盒子)為平台,花生殼(以下統稱為oray)為DDNS供應商,詳細解釋了如何在盒子上增加DDNS功能,同時又不影響盒子的挖礦功能。
基本思路:
1)安裝cron定時服務。
2)編寫DDNS代碼,實作IP檢測和更新。
3)使用定時服務重複執行DDNS代碼。
前期準備
1.首先你需要有個 oray 賬戶,同時添加一個免費 oray 域名。
2.你的盒子需要有root權限的賬戶
準備cron服務
1.運作終端軟體(SecureCRT,putty等)通過telnet或者ssh的方法登陸到賺錢寶。
登陸root權限的賬号。
2.cron服務就是普通所講的定時服務。很多玩家以為盒子沒有cron服務,其實盒子時有預裝的。我們先要準備運作cron服務所需要的相關目錄。分别運作以下指令:
mkdir /etc/cron/crontabs -p
ln -sf /etc/cron /var/spool/cron
mkdir /etc/cron.hourly -p
3.運作vi指令來編輯cron自啟動檔案
vi /etc/init.d/S90cron
按下字母“i",進入編輯模式,輸入圖中代碼代碼。千萬小心哦,代碼中不能有任何錯誤,包括大小寫都不可以改變。代碼輸入完後,按下“esc”鍵,進入指令模式。聽到電腦叮叮響後,鍵入“:wq”3個字元後回車。
4.運作chmod指令,給予自啟動檔案足夠的運作權限
chmod 777 /etc/init.d/S90cron
5.現在,運作指令crontab來編輯定時器設定檔案
crontab -u root -e
按下字母“i",進入編輯模式,輸入圖中代碼代碼。千萬小心哦,代碼中不能有任何錯誤,包括大小寫都不可以改變。
真正有用的是圖中有黃色下劃線的那行,意思就是在每個整點時來運作cron.hourly目錄下的oray.sh檔案。第一和第二行是注釋行,隻是簡單解釋了定時社會行的格式。
<a href="http://s5.51cto.com/wyfs02/M00/82/DF/wKioL1djhl-zaGCfAACHf5U6KQI905.jpg-wh_500x0-wm_3-wmp_4-s_614531812.jpg" target="_blank"></a>
代碼輸入完後,按下“esc”鍵,進入指令模式。聽到電腦叮叮響後,鍵入“:wq”3個字元後回車。
至此,定時服務已經準備完畢。
編寫DDNS代碼
1.運作 vi 指令來編輯oray.sh代碼檔案
vi /etc/cron.hourly/oray.sh
按下字母“i",進入編輯模式,輸入圖中代碼代碼。由于百度經驗不允許正文中出現URL位址,不幸的是我的代碼中就有URL位址。是以隻能把代碼以貼圖的方式展現出來,隻好麻煩各位看官自己慢慢碼字了。千萬小心哦,代碼中不能有任何錯誤,包括大小寫都不可以改變。
從第2到第4行,你需要分别寫入你的花生殼使用者名、密碼和域名。
這個代碼基本上在做2件事情:
1)調用 oray 的 checkip 來檢測你目前的動态IP。
2)判斷和上次檢測到的是否相同,如果不同就調用花生殼的IP更新代碼。
<a href="http://s4.51cto.com/wyfs02/M02/82/E0/wKiom1djhWiCIenKAADRzOBWTYk590.jpg" target="_blank"></a>
<a href="http://s4.51cto.com/wyfs02/M01/82/E0/wKiom1djhWizG1-PAAD1kGyPuIU451.jpg" target="_blank"></a>
2.運作 chmod 指令以賦予代碼執行權限
chmod 777 /etc/cron.hourly/oray.sh
3.重新開機盒子後,定時服務就會自己運作了。cron 定時服務會在每個小時的整點來運作我們的代碼 oray.sh。
代碼會在 /tmp 目錄下生成2個臨時檔案。
last_ip.txt:記錄着上次更新的IP位址。
curr_ip.txt:記錄着本次檢測到的IP位址。
你一旦過了整點,就可去 /tmp 目錄下檢視是否有 curr_ip.txt 和 last_ip.txt 檔案了。如果出現了這2個檔案,那麼恭喜你了,你已經成功地把盒子變成了花生寶了(我自己起的名字,oray 不是出了個花生棒麼)。
綁定多個域名
1.你隻要增加以下斜體字的指令行,當然,你還需正确格式化 URL1 這個變量。這裡我就不多解釋了,都是些很基本的程式設計概念。
if [ -f /tmp/last_ip.txt ]; then
old_ip=`cat /tmp/last_ip.txt | awk '{ print $2}'`
if [ "${old_ip}" == "${IP}" ]; then
exit
fi
fi
wget -O /tmp/last_ip.txt -q ${URL}
wget -O /tmp/last_ip.txt -q ${URL1}
2.第2個較簡單方法,你可以複制 oray.sh 到 oray1.sh。然後編輯 oray1.sh。當然,在定時服務的設定檔案中還需要增加一行:
0 * * * * sh /etc/cron.hourly/oray1.sh
用這種方法,我們的花生寶可以照顧很多個動态域名呢。
本文轉自Heartnight();部落格51CTO部落格,原文連結http://blog.51cto.com/181647568/1790263如需轉載請自行聯系原作者
tangjiashiertui