天天看點

O-2-3 賺錢寶增加DDNS功能

以下内容轉載自百度經驗。

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