通過公網(wǎng)IPv6地址實(shí)現(xiàn)遠(yuǎn)程訪問專欄系列文章:
- 《使用公網(wǎng)IPv6遠(yuǎn)程訪問內(nèi)網(wǎng)設(shè)備》
- 《DDNS動(dòng)態(tài)域名解析IPv6地址》
付費(fèi)提示!
由于本文教程中需要使用域名和域名解析服務(wù),因此存在付費(fèi)內(nèi)容。域名可自行在阿里云、騰訊云、華為云等云服務(wù)提供商進(jìn)行購(gòu)買,域名解析服務(wù)則可以自行選擇使用云服務(wù)提供商所提供的免費(fèi)解析服務(wù),也可以將域名托管至第三方服務(wù)提供商,例如大名鼎鼎的Cloudflare。
根據(jù)不同的頂級(jí)域名,域名價(jià)格從幾塊錢到上百元不等,可自行選擇。
一、前言
在上一篇文章《使用公網(wǎng)IPv6遠(yuǎn)程訪問內(nèi)網(wǎng)設(shè)備》的文末,我們提到了使用IPv6地址進(jìn)行遠(yuǎn)程訪問幾個(gè)缺陷:
- IPv6 地址很長(zhǎng),不方便記憶;
- 公網(wǎng) IPv6 地址并非固定不變,在一定情況下,地址發(fā)生變更,如果不能及時(shí)獲取地址,則無(wú)法進(jìn)行遠(yuǎn)程訪問
- 部分網(wǎng)絡(luò)無(wú)IPv6的Internet訪問權(quán)限,比如公司內(nèi)網(wǎng)等,則無(wú)法訪問任何IPv6地址
這三個(gè)缺陷,從解決方案的角度來看,我們可以將其分為兩類,缺陷1、2分為一類,缺陷3分為第二類。本文我們就來詳細(xì)介紹一下,如何解決第一類問題,IPv6地址難以記憶且不定時(shí)更新。
二、方案簡(jiǎn)介
折騰過IPv4的朋友應(yīng)該也遇到過這類問題,雖然IPv4地址相對(duì)簡(jiǎn)短,更好記憶,但是一串毫無(wú)意義的數(shù)字,總歸還是難以記憶。解決方案的思路和IPv4相同,都是通過申請(qǐng)域名和設(shè)置域名的DNS解析服務(wù),將簡(jiǎn)單好記的域名綁定到自己的公網(wǎng)IP上,后續(xù)可直接通過域名進(jìn)行訪問無(wú)需再記憶IP地址,僅需記住自定義的域名即可。域名有多方便記憶應(yīng)該所有人都有所體會(huì),例如百度(baidu.com)、淘寶(taobao.com)等。
對(duì)于IP不斷更新變化的問題,不論是IPv4還是IPv6都存在,解決思路并不復(fù)雜,簡(jiǎn)單來說,我們?cè)诒镜囟〞r(shí)獲取光貓或者路由器通過撥號(hào)獲取的IP地址,即WAN口地址,并與上一次獲取記錄進(jìn)行比較判斷,如果IP發(fā)生變化,則通知用戶重新設(shè)置DNS解析,或者通過DNS服務(wù)的API接口,自動(dòng)進(jìn)行設(shè)置。自動(dòng)設(shè)置的過程實(shí)際上就是文章的標(biāo)題,DDNS解析IP地址。
我們來看一下 Wiki 對(duì) DDNS 的解釋:
動(dòng)態(tài)DNS(英語(yǔ):Dynamic DNS,簡(jiǎn)稱DDNS)是域名系統(tǒng)(DNS)中的一種自動(dòng)更新名稱服務(wù)器(Name server)內(nèi)容的技術(shù)。根據(jù)互聯(lián)網(wǎng)的域名訂立規(guī)則,域名必須跟從固定的IP地址。但動(dòng)態(tài)DNS系統(tǒng)為動(dòng)態(tài)網(wǎng)域提供一個(gè)固定的名稱服務(wù)器(Name server),透過即時(shí)更新,使外界用戶能夠連上動(dòng)態(tài)用戶的網(wǎng)址。
這個(gè)術(shù)語(yǔ)被用來描述兩種不同的概念。在互聯(lián)網(wǎng)的管理層面來說,動(dòng)態(tài)DNS更新是指創(chuàng)建一個(gè)DNS系統(tǒng),能夠自動(dòng)更新傳統(tǒng)的DNS記錄,而不需要手動(dòng)編輯。這個(gè)機(jī)制在RFC 2136中被解釋,利用TSIG機(jī)制來提供安全性?!猈iki百科
OK,話不多說,下面開始逐步進(jìn)行詳細(xì)的說明和介紹
三、詳細(xì)操作步驟
因?yàn)樽髡弑救耸褂玫氖球v訊云,所以接下來的教程中,將全部按照騰訊云進(jìn)行示范,對(duì)于其他的域名提供商,整理流程大同小異,也可參考進(jìn)行。
3.1、申請(qǐng)域名
這里我們選擇了 “.top” 這個(gè)頂級(jí)域名,并二級(jí)域名自定義輸入了 “ipv6test”,那么最終我們所申請(qǐng)的域名就是 “ipv6test.top”。
什么是 “頂級(jí)域名” 和 “二級(jí)域名” 請(qǐng)自行百度或者Google搜索,這里不展開贅述了。
域名購(gòu)買的過程中有坑點(diǎn),需要單獨(dú)注意下,上圖中已經(jīng)標(biāo)明了,這里再簡(jiǎn)單說明一下:
- 將域名添加到購(gòu)物車之后,會(huì)彈出 “DNS解析(專業(yè)版)” 和 “SSL證書” 這兩個(gè)購(gòu)買項(xiàng), 我們確實(shí)需要使用 DNS 解析服務(wù),但是免費(fèi)版本已經(jīng)足夠使用,無(wú)需再單獨(dú)購(gòu)買專業(yè)版;而 “SSL證書” 我們可以從第三方進(jìn)行免費(fèi)申請(qǐng),根本不需要這個(gè)
- 點(diǎn)擊查詢后展示的域名價(jià)格是 “首年價(jià)格”,折扣力度比較大,但是!??!后續(xù)每年的續(xù)費(fèi)價(jià)格則會(huì)恢復(fù)原價(jià),導(dǎo)致續(xù)費(fèi)價(jià)格會(huì)比首年價(jià)格貴好幾倍!??!如果不想每年重新購(gòu)買域名,那么最好直接買一個(gè)續(xù)費(fèi)價(jià)格也相對(duì)比便宜的域名。(富哥們不需要在意這個(gè))
現(xiàn)在購(gòu)買域名需要實(shí)名審核,在結(jié)算界面會(huì)需要?jiǎng)?chuàng)建一個(gè)個(gè)人信息模板,按要求填寫后,購(gòu)買成功即可。作者之前已經(jīng)注冊(cè)了域名,因此這里不再重復(fù)注冊(cè)了。
3.2、添加DNS解析記錄
完成域名注冊(cè)后,和上面的第一步一樣,通過云產(chǎn)品中的域名注冊(cè),回到我的域名界面,原本的空列表中會(huì)顯示你剛剛注冊(cè)的域名,剛剛注冊(cè)完成的,可能服務(wù)狀態(tài)會(huì)顯示 “實(shí)名認(rèn)證審核中”,這個(gè)審核時(shí)長(zhǎng)補(bǔ)丁。如果實(shí)名信息是之前已經(jīng)認(rèn)證過的,很快就能通過審核,最終如下圖所示:
當(dāng)服務(wù)狀態(tài)顯示為正常時(shí),我們點(diǎn)擊后邊的解析按鈕,進(jìn)行 DNS 解析記錄設(shè)置。
在點(diǎn)擊"添加記錄"按鈕之后,出現(xiàn)一條空白的解析記錄,一共有5項(xiàng)待填充內(nèi)容,分別是:
- 主機(jī)記錄
- 記錄類型
- 線路類型
- 記錄值
- TTL
一般來說,我們只需要填寫其中的主機(jī)記錄、記錄類型和記錄值三項(xiàng)就行,線路類型和TTL保持默認(rèn)即可。
3.2.1、主機(jī)記錄
鼠標(biāo)點(diǎn)擊對(duì)應(yīng)的填充框,下面都會(huì)有對(duì)應(yīng)提示,先來看看主機(jī)記錄:
用通俗的語(yǔ)言來說,主機(jī)記錄就是域名的前綴,通常指三級(jí)及以上的域名(騰訊云的提示中描述的時(shí)二級(jí)域名,這個(gè)描述和計(jì)算機(jī)網(wǎng)絡(luò)中的標(biāo)準(zhǔn)定義有差異,本文將按照標(biāo)準(zhǔn)定義進(jìn)行描述),比如作者申請(qǐng)注冊(cè)的域名為 “testdomaim.xyz”,我想添加一條解析記錄到 “ipv6.testdomain.xyz”,那么主機(jī)記錄這里就需要填寫 “ipv6”;要是還想添加一個(gè)域名叫 “ipv4.testdomain.xyz”,那么主機(jī)記錄就填 “ipv4”。因?yàn)槲覀冏?cè)申請(qǐng)了一個(gè)二級(jí)域名,那么這個(gè)二級(jí)域名之上的三級(jí)域名,四級(jí)域名都可以自行設(shè)置分配。
主機(jī)記錄中有兩個(gè)特殊的值:“@” 和 “*”?!癅” 用于直接解析我們申請(qǐng)的二級(jí)域名,也就是 “testdomain.xyz”,當(dāng)你直接訪問這個(gè)域名時(shí),DNS服務(wù)器將會(huì)查詢主機(jī)記錄為 “@” 的解析記錄?!?” 則用于泛解析,故名思意,解析泛域名,意味著所有的三級(jí)域名都將通過這條解析記錄進(jìn)行查詢。當(dāng)設(shè)置了 “*” 泛解析后,再單獨(dú)設(shè)置某個(gè)三級(jí)域名解析記錄,將會(huì)出現(xiàn)訪問錯(cuò)誤的情況。
3.2.2、記錄類型
記錄類型只能點(diǎn)擊下方提示的條目進(jìn)行自動(dòng)填充,由于我們這次需要指定的 IP 地址為 IPv6 類型,因此這里我們選擇 “AAAA” 記錄類型。
3.2.3、記錄值
簡(jiǎn)單來說,待訪問的終端 IP 地址。通過上一步的教程,我們將電腦的 IPv6 地址填入即可(請(qǐng)先確認(rèn)地址有效,通過 mstsc 直接填入 IPv6 地址進(jìn)行連接測(cè)試)。
完成以上三項(xiàng)內(nèi)容填寫后,點(diǎn)擊保存,我們就完成了 “ipv6.testdomain.xyz” 這個(gè)域名到我們電腦的 IPv6 地址解析記錄添加。如下圖所示:
打開CMD,進(jìn)行 ping 連接測(cè)試 ping -6 ipv6.testdomain.xyz
:
顯示正常 ping 通,說明解析服務(wù)已經(jīng)正常生效了。然后我們?cè)偈褂?mstsc 進(jìn)行遠(yuǎn)程方式試試:
也能正常進(jìn)行遠(yuǎn)程連接了。至此我們已經(jīng)完成了通過域名解析到IPv6地址,并進(jìn)行遠(yuǎn)程訪問的所有設(shè)置。接下來我們進(jìn)行 DDNS 動(dòng)態(tài)域名解析的相關(guān)設(shè)置。
3.3、DDNS設(shè)置
由于我的路由器 openwrt 固件中自帶 DDNS 插件,因此下文將以路由器中的插件 “動(dòng)態(tài) DNS” 進(jìn)行配置說明。
這里推薦一個(gè)多平臺(tái)(win、linux、macos等)可用,且支持docker運(yùn)行的開源 DDNS 服務(wù):“ddns-go”,可以直接前往 github 倉(cāng)庫(kù)查看其使用說明。整體使用和下文配置大同小異,可相互參考借鑒。
openwrt 中的 “動(dòng)態(tài) DNS” 界面如下:
可以看到我已經(jīng)添加了一條配置,下面我們將詳細(xì)介紹如何通過 “動(dòng)態(tài) DNS” 插件完成對(duì)騰訊云域名的動(dòng)態(tài)解析設(shè)置。
點(diǎn)擊添加按鈕后,進(jìn)入詳細(xì)配置:
由于不同 DNS 服務(wù)提供商所需要填充的設(shè)置也不同,因此進(jìn)入以后我們先選擇 “DDNS 服務(wù)提供商”,由于我們是通過騰訊云注冊(cè)的,騰訊云提供的默認(rèn)服務(wù)商為 DNSPOD,因此這里我們選擇 “dnspod.cn”:
點(diǎn)擊更改提供者之后,就能看到詳細(xì)的配置項(xiàng)了:
其中 dsnpod 的用戶 id 和 token,可前往 DNSPOD 控制臺(tái)進(jìn)行創(chuàng)建。
將此處獲取的 id 和 token 填入到插件配置中,填充完成后點(diǎn)擊右下角 “保存&應(yīng)用” 完成配置創(chuàng)建。然后點(diǎn)擊下圖中的啟動(dòng)按鈕,即可啟動(dòng) DDNS 服務(wù):
我們?cè)邳c(diǎn)擊修改按鈕進(jìn)入配置界面,點(diǎn)擊上方的"日志查看器",點(diǎn)擊"讀取/重新讀取日志文件",查看下方日志內(nèi)容:
可以看到服務(wù)已經(jīng)可以正常查詢指定域名的 DNS 解析記錄和本地 IPv6 地址。若日志中出現(xiàn)了 "warning " 和 “error” 等級(jí)的日志內(nèi)容,則說明有配置不正確,需要根據(jù)日志提示進(jìn)行排查和修改。
DDNS 服務(wù)會(huì)每隔幾分鐘輪詢 DNS 解析記錄和本地 IP,如果本地 IP 發(fā)生變更,則會(huì)調(diào)用 DNSPod 的 API 接口,將新的 IP 地址注冊(cè)到 DNSPod 中,修改對(duì)應(yīng)域名的解析記錄,完美解決了 IP 地址不定時(shí)更新的問題。
3.4、端口轉(zhuǎn)發(fā)
注意!?。?/font>
如果 DDNS 服務(wù)直接運(yùn)行在期望訪問的遠(yuǎn)程主機(jī)上,則不需要進(jìn)行此章節(jié)的設(shè)置!
本來配置 DDNS 解析本地 IPv6 地址的過程在上一章節(jié)就完全結(jié)束了,但是由于作者是通過路由器獲取的 IPv6 地址,直接訪問域名的話,實(shí)際上訪問的是路由器。因此如果需要遠(yuǎn)程訪問路由器下的某臺(tái)電腦,則還需要在路由器的防火墻中,設(shè)置端口轉(zhuǎn)發(fā),將流量轉(zhuǎn)發(fā)到指定的子網(wǎng)設(shè)備中。
openwrt 防火墻的端口轉(zhuǎn)發(fā)僅支持 IPv4 to IPv4。我們現(xiàn)在需要進(jìn)行 IPv6 向 IPv4 進(jìn)行轉(zhuǎn)發(fā),因此還需借助另一個(gè)插件 “Socat”,來完成 IPv6 流量向 IPv4 地址的轉(zhuǎn)發(fā)。
點(diǎn)擊插件界面的 “添加” 按鈕,按下圖所示完成配置后,點(diǎn)擊 “保存&應(yīng)用”,即可完成最后的端口轉(zhuǎn)發(fā)設(shè)置。
四、總結(jié)
在本文中,我們注冊(cè)申請(qǐng)了一個(gè)二級(jí)域名,并通過設(shè)置域名的 DNS 解析記錄,使得可以通過域名來對(duì)內(nèi)網(wǎng)下的windows主機(jī)進(jìn)行遠(yuǎn)程訪問。完全自定義的二級(jí)和三級(jí)域名,可以是具備標(biāo)識(shí)意義的名稱,完美解決了 IP 地址難以記憶的問題。
我們又通過 DDNS 服務(wù)插件完成了當(dāng) IP 地址變更時(shí),自動(dòng)更新對(duì)應(yīng)域名的 DNS 解析記錄,確保 IP 變更時(shí),域名仍然能正確指向我們的終端設(shè)備。
通過《使用公網(wǎng)IPv6遠(yuǎn)程訪問內(nèi)網(wǎng)設(shè)備》和本文的所有配置,一般家用場(chǎng)景下已經(jīng)能完美通過公網(wǎng) IPv6 地址進(jìn)行遠(yuǎn)程訪問內(nèi)網(wǎng)設(shè)備了。當(dāng)然還有進(jìn)階的玩法,比如通過 DNSPod 提供的泛解析和路由器的端口轉(zhuǎn)發(fā),我們可以用不同的三級(jí)域名來訪問家中的不同服務(wù),再加上 Nginx 反向代理,實(shí)現(xiàn)全服務(wù)的 https 訪問。
后續(xù)有時(shí)間,也許會(huì)補(bǔ)上 DDNS 泛解析和 Nginx 反向代理,實(shí)現(xiàn)內(nèi)網(wǎng)服務(wù)的 https 外網(wǎng)訪問。
當(dāng)前專題系列還有一個(gè)問題尚未解決,要能夠解析 IPv6 的域名,則當(dāng)前網(wǎng)路需要能訪問 IPv6 網(wǎng)絡(luò),但是部分網(wǎng)絡(luò)環(huán)境下,這是個(gè)不可解決的難題,比如公司內(nèi)網(wǎng)為了網(wǎng)絡(luò)安全,往往會(huì)關(guān)閉 IPv6 網(wǎng)絡(luò),此時(shí)即使我們有正確的域名和解析記錄,我們也無(wú)法完成遠(yuǎn)程訪問。文章來源:http://www.zghlxwxcb.cn/news/detail-498785.html
限于篇幅原因,我們將在下一篇文章中來解決這一難題,敬請(qǐng)期待~文章來源地址http://www.zghlxwxcb.cn/news/detail-498785.html
到了這里,關(guān)于DDNS動(dòng)態(tài)域名解析IPv6地址的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!