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

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

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

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

來源:公眾號【魚鷹談單片機(jī)】,ID ??:emOsprey

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

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

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

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

手機(jī)注冊好之后,你就可以申請一個免費域名了。

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

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

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

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

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

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

這里我們可以使用 crontab 實現(xià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,可以對比一下 https://www.ip138.com/ 的 ip 查詢結(jié)果 。

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

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

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

這里我們定時 10 分鐘更新一次。

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

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

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

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

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

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

注意事項

1、因為我們需要登錄公云服務(wù)器更新我們的寬帶 IP,因此不要輕易更換密碼(因為更換了密碼,樹莓派無法登錄公云,也就意味著無法更新 IP,當(dāng)你使用域名登錄時,就無法通過公云查詢到 IP 了)

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

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

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

3、注意更換 SSH 常用登錄端口 22 為其他端口號,防止被黑客暴力破解。更保險的方式是,關(guān)閉 ssh 密碼登錄方式,只能通過私鑰方式登錄,防止被掃描端口號,從而被暴力破解。可以參考連接:https://zhuanlan.zhihu.com/p/89872671

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

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
KSZ8567RTXI 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下載ECAD模型
$10.98 查看
AFBR-5715APZ 1 Foxconn Transceiver, 830nm Min, 860nm Max, 1250Mbps(Tx), LC Connector, Panel Mount, ROHS COMPLIANT
暫無數(shù)據(jù) 查看
HFBR-1412TZ 1 Foxconn Transmitter, 792nm Min, 865nm Max, 5Mbps, ST Connector, DIP, Panel Mount, Through Hole Mount, ROHS COMPLIANT PACKAGE
$24 查看

相關(guān)推薦

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

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