加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

動(dòng)態(tài)域名服務(wù) DDNS,YYDS(四)

2023/12/08
2418
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

來(lái)源:公眾號(hào)【魚鷹談單片機(jī)】,ID ??:emOsprey

前面的筆記《如何像訪問(wèn)百度一樣訪問(wèn)家里的服務(wù)器?(三)》已經(jīng)通過(guò)公網(wǎng) IP +?橋接,完成了基本功能,已經(jīng)可以通過(guò)公網(wǎng) IP?在全國(guó)各地訪問(wèn)家里的服務(wù)器了。

但是有個(gè)麻煩的地方是,雖然運(yùn)營(yíng)商給我的是公網(wǎng) IP,但卻是動(dòng)態(tài)的,兩三天就更換一次,因此我們需要一種服務(wù),實(shí)時(shí)告訴我們家里寬帶的當(dāng)前 IP 是多少才能訪問(wèn)。

我們可以讓家里的服務(wù)器主動(dòng)發(fā)郵件的方式告訴我們當(dāng)前的 IP,但是樹莓派操作了一番,還挺麻煩的,沒(méi)成功,因此我們可以借由第三方免費(fèi)的 DDNS 服務(wù)實(shí)時(shí)更新 IP。這樣我們可以直接通過(guò)固定域名訪問(wèn)家里的服務(wù)器,我們只要記住域名即可。

這里魚鷹選擇的是公云:https://www.pubyun.com/products/dyndns/

手機(jī)注冊(cè)好之后,你就可以申請(qǐng)一個(gè)免費(fèi)域名了。

可以看到我已經(jīng)新建了一個(gè)域名,如?embedded_osprey.f3322.net,前面的?embedded_osprey 主機(jī)名可以自己設(shè)定,后面的 .f3322.net?是固定的,畢竟用的是別人的免費(fèi)服務(wù)。

現(xiàn)在我們只是有個(gè)域名,但是并沒(méi)有告訴它這個(gè)域名指向的地址是多少,因此我們需要一個(gè)客戶端告訴公云的服務(wù)器我們現(xiàn)在的 IP。

目前客戶端只支持 window,當(dāng)然Linux 的話不需要客戶端,直接用命令即可(需安裝 lynx,一般都有)。

我使用的是樹莓派,因此直接使用命令行形式即可。

本來(lái)只要執(zhí)行一次命令即可上傳 IP,但是因?yàn)槲覀兊?IP 是動(dòng)態(tài)的,因此我們需要定時(shí)執(zhí)行這條命令,讓他更新當(dāng)前公網(wǎng) IP。

有點(diǎn)類似定時(shí)發(fā)郵件告訴 公云 服務(wù)器自己的 IP,以便更新 IP。

這里我們可以使用 crontab 實(shí)現(xiàn)定時(shí)功能。

首先寫一個(gè)非常簡(jiǎn)單的更新腳本 update_ddns.sh(這里根據(jù)需要填寫公云網(wǎng)站的用戶名和密碼,自定義域名等信息,如上圖顯示):

#!/bin/bashipaddr=`lynx?-mime_header?-auth=username:password?"http://members.3322.net/dyndns/update?system=dyndns&hostname=xxxx.f3322.net"?| tail??-n?1?|?awk?'{print?$2}'`
date=`date?"+%y-%m-%d?%H:%M"`echo?$date?$ipaddr

將腳本存放到合適位置,如?/usr/local/bin/,并給腳本可執(zhí)行權(quán)限:

 sudo chmod +x /usr/local/bin/update_ddns.sh

現(xiàn)在可以嘗試一下執(zhí)行腳本,正常情況下,應(yīng)該能輸出當(dāng)前公網(wǎng) IP,可以對(duì)比一下 https://www.ip138.com/ 的 ip 查詢結(jié)果 。

正常命令執(zhí)行結(jié)果如下:

確認(rèn)腳本工作無(wú)誤后,即可加入定時(shí)器中定時(shí)執(zhí)行(可以使用 nano 編輯器,操作更簡(jiǎn)單),如圖:

*/10 *  * * *   root    /usr/local/bin/update_ddns.sh

這里我們定時(shí) 10 分鐘更新一次。

總結(jié)下來(lái)就是,樹莓派定時(shí)執(zhí)行登錄公云服務(wù)器并更新域名 IP 的任務(wù),這樣公云的服務(wù)器就一直更新著我們最新的 IP 地址,當(dāng)我們使用域名登錄時(shí),會(huì)查詢到公云的服務(wù)器,從而就可以知道最新的 IP,最終登錄我們家里的服務(wù)器樹莓派了。

我們可以使用如下方式查詢域名所所對(duì)應(yīng)的 IP 是否正常:

當(dāng)我們通過(guò) nslookup 查詢?cè)O(shè)定域名的 IP 地址,和家里的寬帶IP是一致的話,證明我們的域名成功了。

此時(shí)我們可以在全國(guó)任何一個(gè)地方通過(guò)域名直接訪問(wèn)服務(wù)器了。類似訪問(wèn)百度一樣,YYDS??!

http://osprey.f3322.net:20080/

大家可以嘗試使用瀏覽器訪問(wèn)上面網(wǎng)頁(yè),看看是否能訪問(wèn)魚鷹搭建的簡(jiǎn)單網(wǎng)頁(yè)(大佬輕踩,不要攻擊咱的服務(wù)器哈,不值得)

注意事項(xiàng)

1、因?yàn)槲覀冃枰卿浌品?wù)器更新我們的寬帶 IP,因此不要輕易更換密碼(因?yàn)楦鼡Q了密碼,樹莓派無(wú)法登錄公云,也就意味著無(wú)法更新 IP,當(dāng)你使用域名登錄時(shí),就無(wú)法通過(guò)公云查詢到 IP 了)

2、因?yàn)槲覀儗?duì)公云服務(wù)器非常依賴,萬(wàn)一公云服務(wù)器出現(xiàn)問(wèn)題,那我們自己的服務(wù)器可能就登錄不了,因此需要有備選方案。

1)通過(guò)郵件之類的方式在 IP 更新后主動(dòng)將最新 IP 發(fā)到我們的郵箱,這樣我們可以在域名訪問(wèn)出現(xiàn)問(wèn)題的情況下,仍然可以通過(guò) IP 訪問(wèn)。

2)使用可以遠(yuǎn)程查看路由器 IP 的路由器。比如 tp-link 手機(jī)客戶端,可以隨時(shí)在手機(jī)查看當(dāng)前的路由器 IP 地址,相當(dāng)方便。

3、注意更換 SSH 常用登錄端口 22 為其他端口號(hào),防止被黑客暴力破解。更保險(xiǎn)的方式是,關(guān)閉 ssh 密碼登錄方式,只能通過(guò)私鑰方式登錄,防止被掃描端口號(hào),從而被暴力破解??梢詤⒖歼B接:https://zhuanlan.zhihu.com/p/89872671

到此,個(gè)人服務(wù)器算是搭建好了,目前魚鷹主要當(dāng)云盤使用,后期可能會(huì)為其他聯(lián)網(wǎng)設(shè)備做內(nèi)網(wǎng)穿透服務(wù),或者搭建調(diào)試日志服務(wù)器,亦或者個(gè)人網(wǎng)頁(yè)等等,后期有時(shí)間也可能會(huì)繼續(xù)更新這個(gè)系列,歡迎繼續(xù)關(guān)注。

總之,個(gè)人服務(wù)器,YYDS!??!

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
FM24CL64B-GTR 1 Cypress Semiconductor Memory Circuit, 8KX8, CMOS, PDSO8, SOIC-8
$3.16 查看
FODM8801CR2V 1 onsemi OptoHiT™ Series, High-Temperature Phototransistor, 2500-REEL

ECAD模型

下載ECAD模型
$2.13 查看
SST39VF3201C-70-4I-EKE 1 Microchip Technology Inc FLASH 2.7V PROM, PDSO48, 12 X 20 MM, ROHS COMPLIANT, MO-142DD, TSOP1-48
$3.14 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

六年開發(fā)經(jīng)驗(yàn),豐富的KEIL調(diào)試經(jīng)驗(yàn),STM32使用經(jīng)驗(yàn),C語(yǔ)言運(yùn)用經(jīng)驗(yàn)。