by Devin Yang

建立於: 5年前 ( 更新: 5年前 )

我家使用HiNet光世代撥接上網,光世代一固定七浮動IP。

前一陣子有換了台Wifi,D-Link DIR-882,說真的覺的這台又貴又爛@@,
不確定是不是我買到機王,時常當機,再來,他所提供的DDNS功能了,
設定好了,似乎沒在更新,不是很好用。



重點是,上面的FAQ說明看起來還不是免費的,六個月後就要收費嗎?
Registering your D-Link product will allow you to continue using dynamic DNS with your D-Link registered product without interruption for the period specified for the product, which is generally up to six months.
 
所以我嚐試Google了幾家免費DDNS服務的公司,大至上,說是免費其實還是要錢,
例如花一次費用,啟動他們的更新工具點,
簡單說,就是會給你一些不便,你要完整功能,還是要花錢,阿偶就不想花錢在DDNS上。

(註: 還是有一些,據說是真免費的,但我沒再多試了,您可自行Goolge。)

於是,讓我想到了,我家有一台Synology的NAS,他不也是有提供DDNS的功能嗎? 就想來試試。

先來說說我的環境,我家的NAS是撥接Hi-Net PPPOE的一固定IP,
而我的Nas主要執行就是您現在看到的這個網站。

個人用戶,沒啥預算玩AWS或GCP,用這台Nas自架網站,
個人網站寫寫文章用,然後執行D-Laravel的docker環境:),
用docker能跑大量服務,用VM只能跑幾台吧。

如何用Synaloge NAS跑D-Laravel,您可以參考我這篇chowner的文章。
https://www.ccc.tc/article/d-laravel-chowner

另外,我用Nas裝了一台VM,用於建立線上會議系統。


這台VM是在內網透過Wifi Router設定DMZ,進來的,我想讓這台浮動IP的VM能有固定的域名。


但問題來了,Synalogy的DDNS看起來是只能用NAS的IP,
他本意是要讓我們在任何地方能用域名存取到自己的NAS。

我Nas已是固定IP啦,不需要DDNS服務,但我的VM需要:p。

好家在,設定上完全不難,隨便Google一下,不到到一分鐘 ,就發現Synalogy NAS設定檔放在/etc/ddns.conf,
而且,更新設定檔上的IP就能更新DDNS的A記錄,所以馬上想到,
那我就寫隻bash定時更新設定檔的IP不就搞定了。

/etc/ddns.conf內容如下: (已調整實際內容,下方只是示意)
#If you want to change DDNS Name, remember to change upnpd.c
#  , remember to consider updating problem.
[Synology]
	hostname=dodoro.myDS.me
	passwd=############
	net=MANUAL
	status=service_ddns_normal
	ip=36.229.6.29
	service=true
	username=myemail@example.corp
	enable_heartbeat=yes
	provider=Synology
	ipv6=2001:b011:380c:1a4a:11:32ff:fe24:99ed

然後,這是我寫的簡易bash,用於進行動態域名IP更新/etc/ddns.conf的IP。
#!/bin/bash
old_ip=`grep -Eo "([0-9]{1,3}[\.]){3}[0-9]{1,3}" /etc/ddns.conf`
#echo ${ip}
new_ip=`ssh e-course curl -s ip.ccc.tc`

sed -i "s/ip=${old_ip}/ip=${new_ip}/g" /etc/ddns.conf
這支bash,主要執行以下幾件事情。
一、取得ddns.conf設定檔的舊IP位置,old_ip即是目前ddns設定的ip。
二、透過ssh連到我的VM上,執行curl -s ip.ccc.tc,用curl取得我的VM外網IP(透過OpenSSH公鑰驗證連到VM)。
ip.ccc.tc是我自架用來取得外網ip用的,您應該能用ifconfig.co做到一樣的效果。
三、再來用sed命令更新ddns.conf中的IP為最新的位置。就搞定。

最後、放到nas的任務排程每五分鐘檢測一次。


最後呢,這裡再提供一個小技巧,如果自己有域名,我可以設定cname,
我們就能使用自己的域名連到浮動IP的電腦啦,下方,我用host指令,查詢e-course.app的位置。
host -t a e-course.app
e-course.app is an alias for dodoro.myds.me.
dodoro.myds.me has address 36.229.6.29

到本文為止,運行起來相當滿意,再也不會打域名,結果連不到主機的情況囉。:)


 

Tags: ddns Synology dns

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


Synology,haproxy

用HAProxy移除Sysnolgy Mail Station的/mail路徑

本文就DSM7的版本做說明。Synology Nas的套件中心提供兩種Mail Server,一種為Synology Mail Server,另一個為Synology MailPlus。對我來說Synology MailPlus好處,他可以在登入入口中,輕鬆指定域名,但限制最多五個帳號,多的就要買授權了。那如果使用Synoloyg Mail Server,則不會有帳號數的限制,但是他並沒有整合登入入口,如果安裝了Mail Station的webmail,會在網址的目錄多一個/mail的路徑,雖然不礙事,但我就是不喜歡。

dns

清除MacOS DNS快取方式

如何清除各種不同版本的MacOS DNS 快取的指令

synology,日誌中心,rsyslog,syslog

用Synology日誌中心集中查看主機的Log

本文介紹,我用我如何用Synology日誌中心記錄我家主機的所有日誌。在Synolog的日誌中心,我們可以透過他的UI進行搜尋功能。這樣我們能集中查看我們的Log,像是Linux主機的排程執行狀況。還能透過指令發送訊錄到日誌中心,我們隨時能反查Linux主機每日的日常備份任務,備份成功或失敗等。