DDNS是什么
對於DHCP方式獲得的IP,無論對於局域網內來說,還是外網來說,都會有使得IP地址每隔一段時間變化一次,如果想要通過恆定不變的地址訪問主機,就需要動態域名解析。用一句話說明原理是:把動態變化的IP地址綁定到固定不變的域名上,這樣便是以不變應萬變,只要記住域名就可以了。
什么時候需要用?
應用場景舉例:
1. 在公司局域網內,小明在自己的電腦上建立了一個FTP服務器用來共享文件。但他使用普通的上網賬號上網,主機接入局域網后需要認證賬號,隨機分配IP地址。每次斷線之后都會使得IP地址發生變化,這樣一來,小明需要時刻記錄下當前的IP地址,才能通過該地址訪問到FTP服務器。做動態域名解析后,主機IP綁定到小明自己的域名,一旦IP地址發生變化,更新域名解析內容,他依舊可以通過域名訪問到FTP服務器。
2. 阿傑辦理了電信寬帶后幸運地發現,獲得的IP可以從外網直接訪問(之所以說他幸運,是因為現在IPV4資源緊張,寬帶運營商都是做了一層NAT再后在給用戶分配內網IP,很多人實際公用一個出口IP. )。阿傑於是在自己的主機上搭了一個IP攝像頭,這樣無論在何地都可以通過網絡查看家里的情況。IP雖然是公網IP,但卻是動態分配的(公網靜態IP要10萬塊錢一年),每斷開一次就會變化一次。因此他可以選擇動態域名解析。
DDNS可以解決什么? 答:可以把變化的IP自動動態地映射到域名上,通過不變的域名訪問變化IP的主機;
DDNS不能解決什么?答:本身不能實現端口映射,因此如果主機在NAT網絡內部,而你又沒有權限在路由器上設置端口映射,那么DDNS就無解了,需要做反向代理或者端口穿透。
怎么做?
根據能力和預算有不同的做法:
不差錢可以直接去花生殼購買動態域名服務,隨便還能提供內網穿透的功能;
自己折騰可以使用DNSPod + 個人域名 + ArDNSPod腳本.
利用DNSPod實現動態域名解析
首先需要注冊一個域名,去騰訊雲注冊最為方便,因為DNSPod 2015年被騰訊收購后和騰訊雲的賬號打通了。
創建一條A記錄解析,IP地址暫時隨便填就行:
在 dnspod 的管理界面https://www.dnspod.cn/console/dashboard 創建API Token
創建成功后獲得ID和Token,
利用這兩個信息,就可以通過API修改域名解析值了,詳見說明:https://support.dnspod.cn/Kb/showarticle/tsid/227/
下載ArDNSPod客戶端
ArDNSPod是利用DNSPod實現動態解析的項目,github地址:ArDNSPod https://github.com/anrip/ArDNSPod
筆者重新作了一些修改,可以選擇要解析的IP類型,包括外網,內網,IPv6,見
https://github.com/imki911/ArDNSPod
將之前得到的ID和token寫入dns.conf 文件, 並指定要綁定的子域名↓
運行ddnspod.sh,就可以獲得IP地址,更新域名的解析值了(這里選擇的是解析LAN 地址)。
到域名控制台查看,已經更新了記錄值. 現在就可以通過域名ddns1.imki.club 訪問主機了。
IPV6解析
1. 在網頁管理界面中新建一條解析ipv6的AAAA記錄,可以先隨便亂填一個地址。
2. 在ddnspod.sh 開頭,IPtype值改為3,切換到 IPv6 解析。
3. 運行ifconfig,查看具有IPv6地址的網卡設備名,例如eth0等
4. ddnspod.sh 69行,將 eth0 替換成本機的網卡設備名。確保單獨運行該命令可以返回ipv6地址
ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'
5. 配置dns.conf文件,運行ddnspod.sh即可更新解析值。
自動更新解析
DDNS的第一個D含義在於動態,即IP地址變化之后自動更新域名記錄值,這可以通過把腳本設置為定時任務cron來實現。
————————————————
版權聲明:本文為CSDN博主「Gf_Shen」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/imkiimki/article/details/83794355
