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

需要登入才可留言!

类似文章


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的路径,虽然不碍事,但我就是不喜欢。

Synology,NAS

命令行方式移除Synology NAS Block的IP

有些情况,可能造成自己的IP被Synology NAS锁住了,像是邮件主机架在Synology NAS上,结果邮件密码设置错误。或是Synology在内网,未正确设置好真实IP的forward header,不管什么原因,我们想透过命令行的方式去移除被锁住的IP。

docker,Synology

如何修改Synolog Nas上Docker的日志日志驱动

我的Synolog Nas上,默认跑了一个奇怪的logging driver叫db,如何修改为正常使的json-file呢? 在Synolog的Nas他的Daemon config file较特殊,放在/var/packages/Docker/etc/目录下, 叫dockerd.json。