前言:看了我上一篇文章《NAT、PAT、DMZ、端口映射、端口轉發、UPNP》應該會對“運營商公網寬帶(ipv4)”有所了解,這篇文章來說下ipv4和ipv6網絡中的DDNS。
原理:一般家庭寬帶盡管申請了公網IP(ipv4),那這個IP也不是一直不變的,運營商還是會定期更換用戶的公網IP,同樣IPV6也是如此,會定期變更。所以這種情況下,如果家里有對外服務器,比如:web網站服務器、NAS、遠程桌面、智能家居、路由器等等,怎么才能做到在外面能夠一直訪問呢?首先想到的就是通過域名綁定,因為域名是一直不變的,這樣我們唯一需要解決的就是如何把變化的ip綁定到不變的域名上,DDNS就是一個很好的解決方案,本文通過阿里雲申請的域名,並在對外服務器上定時執行腳本(此腳本會檢測對外服務器IP是否變化,若變化則將新的IP綁定到阿里雲域名)來實現DDNS。
名詞解釋:
DDNS:
DDNS(Dynamic Domain Name Server,動態域名服務)是將用戶的動態IP地址映射到一個固定的域名解析服務上,用戶每次連接網絡的時候客戶端程序就會通過信息傳遞把該主機的動態IP地址傳送給位於服務商主機上的服務器程序,服務器程序負責提供DNS服務並實現動態域名解析。
如何實現:
提示:這里以centos7對外服務器做介紹,ipv6網絡設置需要運營商已開通ipv6且路由器做好ipv6啟用相關設置。
ipv4或ipv6網絡設置DDNS:
1.ipv4網絡中的對外服務器已經在路由器上做好了端口映射(映射方法如下截圖),此時外網用戶可以通過映射的公網IP+端口訪問服務器(如果是ipv6這一步省略)。
2.注冊阿里雲域名,添加A或AAAA記錄:
域名注冊這里不做詳細介紹,可以買個二手域名。接下來接入控制台:
鼠標划到最左側,隱藏的左邊欄就會自動彈出來,選擇倒數第二個“域名”,就可以進入我們剛剛注冊的域名管理頁面,中間就是你注冊的域名。但是這個時候還不能解析,你還需要完成實名認證。實名認證需要3-5個工作日,實際用不了那么久。認證完成之后我們就可以開始域名解析設置了。
點擊后面的管理,你可以修改域名信息,第四項就是實名認證,按照要求提交相應的信息,等待審核,3-5天后審核通過,你的域名就可以使用了。(好像.cn域名還必須備案才能解析,大家盡量不要注冊.cn)
回到我們域名管理頁,點擊域名列表右側的解析,進入解析設置頁面。
點擊添加記錄:
“記錄類型”:如果是公網IPV4則選A,如果是IPV6的話選AAAA
“主機記錄”:填寫你想要的域名地址,以后你訪問時候使用,我填個“myweb“,可以填自己喜歡的或者好記的。這樣我添加的域名就是:myweb.前面申請的域名,比如為:myweb.iptest.top
“解析線路”:默認
“記錄值”:需要填進去一個正確的IPV4或IPV6地址才可以提交,可以先隨便填一個,后面他會自動更新。
“”TTL值“:就是域名和ip對應關系在DNS服務器中存儲多久,默認10分鍾就好,后面腳本會根據設置自動更改。
設置完確定,A或AAAA記錄完成了。
3.獲取阿里雲域名的accesskeys
把鼠標放到最右上角你的頭像位置,自動彈出的窗口里面點選里面的accesskeys
會有一個提醒,選擇繼續使用(這里更推薦子用戶AccessKey(訪問控制台RAM)),創建accesskeys然后保存下來你的acesskeys,點擊顯示后會有一個短信驗證,然后就顯示出來了,保存下來備用。
警告:使用子用戶AccessKey,請分配 AliyunDNSReadOnlyAccess(只讀訪問雲解析(DNS)的權限) 和 AliyunDNSFullAccess(管理雲解析(DNS)的權限) 這兩個權限!推薦有動手能力的用戶使用子用戶AccessKey!如果不會操作或者圖省事,請使用全局AccessKey,但此時一定要注意!千萬不要泄露你的全局AccessKey或者將你的全局AccessKey發布到公網上!這樣等同於把你的號白送人,還可以名正言順的白嫖你的阿里雲賬號!如果發生泄露,請立刻刪除泄露的AccessKey!
4.下載DDNS自動更新腳本並執行配置
yum -y install curl openssl* bind-utils wget
wget -O /usr/sbin/AliDDNS-v2.0.sh https://ilemonrain.com/download/shell/AliDDNSv2.sh
chmod +x /usr/sbin/AliDDNS-v2.0.sh
/usr/sbin/AliDDNS-v2.0.sh
彈出啟動菜單:
在這里,我們輸入 1 (數字1) ,后按下回車,開始進入AliDDNS配置向導:
比如第二步中的“主機記錄”設置的域名為myweb.iptest.top,那么這里就輸入iptest.top
完成后按下回車鍵,繼續填寫二級域名:
同上面的范例,我們輸入 myweb ,之后按下回車鍵繼續:
如果使用的是免費版的阿里雲雲解析,此處可以填寫的數值范圍為:60086400;如果使用的是收費版(企業版)的阿里雲雲解析,此處可以填寫的數值范圍為:186400 (根據購買的產品類型決定)。填寫完成后,按下回車鍵繼續:
填入第三步中的accesskey ID,填寫完成后,按下回車鍵繼續:
填入第三步中的accesskey Secret,獲取AccessKey Secret屬於賬號高風險操作,請准備好用來接收阿里雲驗證碼的手機!填寫完成后,AliDDNS 2.0如果沒有激活專家模式,會直接進入執行流程;如果啟動了專家模式,以下參數請在你理解的基礎上填寫!否則請一律留空!
輸入獲取本機IP地址使用的命令。這里根據自己服務器情況設置,我的獲取ipv4地址和ipv6地址命令分別為:
#ipv4地址獲取
curl -s whatismyip.akamai.com
#ipv6地址獲取
ip a show ens33|grep ".*/64 scope global noprefixroute dynamic"|awk '{print $2}'|awk -F '/' '{print $1}'
輸入nslookup命令解析使用的DNS服務器。這里留空,直接回車!之后,會自動開始DDNS(測試)運行過程:
出現最后的 DDNS記錄更新成功 提示,即為DDNS記錄同步成功,稍后等待DNS解析生效,即可完成DDNS域名更換!
5.設置AliDDNS腳本Crontab定時任務(每五分鍾執行一次)
echo "*/5 * * * * /usr/sbin/AliDDNS-v2.0.sh run >/dev/null 2>&1 &" >> /etc/crontab
6.這樣DDNS就設置完了,以后就可以通過域名訪問家庭web服務器或者NAS、智能家居、路由器了。