by Devin Yang

建立于: 4年前 ( 更新: 4年前 )

我家使用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

需要登入才可留言!

类似文章


git,Synology

关於gitlab的docker设置分享

我朋友想研究gitlab的操作,我说用docker image不用十分钟就装起来了, 我家的Synology Nas上也有gitlab包可以直接安装。 结果,不是安装失败,就是修复中,或是已启动了不能用。@@ 还被朋友呛...

ddns,pppoe

真正免费DDNS服务

如果您需要使用DDNS,网络上太多家都是假免费的DDNS,真的可以试试这家,真正免费又好设置。https://www.duckdns.org/DDNS又称为动态DNS,可以让我们的浮动IP取得一个域名。这样就能透过域名来访问我们浮动IP的主机。

synology,日誌中心,rsyslog,syslog

用Synology日志中心集中查看主机的Log

本文介绍,我用我如何用Synology日志中心日志我家主机的所有日志。在Synolog的日志中心,我们可以透过他的UI进行搜寻功能。这样我们能集中查看我们的Log,像是Linux主机的调度运行状况。还能透过命令发送讯录到日志中心,我们随时能反查Linux主机每日的日常备份任务,备份成功或失败等。