DDNS翻译过来就是动态域名服务,他将用户的动态IP地址映射到一个固定的域名解析服务商,用户每次链接网络的时候客户端会通过信息传递把该主机的动态ip地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。
上面说的可能有些绕,实际上DDNS服务就是将用户的IP地址与固定的域名一一映射,即使用户ip变更,而DDNS服务也会随之将域名的解析变更为新的ip地址。再简单一点就是可以使用固定的域名来在外网找到你的电脑。
由于电信等提供的公网ip是动态变化的,通常一天或二天一换,如果想要固定的ip地址还需要交额外的费用。所以我们就需要建立DDNS服务来将域名与动态ip进行映射。
我们使用威联通提供的docker来部署DDNS服务,在威联通的ContainerStation中搜索aliddns找到chenhw2/aliyun-ddns-cli
这个容器。
在高级设置中的环境中设置以下参数:
然后运行该容器在控制台中看到以下内容,说明就映射成功了:
实际上这个容器的作用就是自动在阿里云控制后台生成了一个域名映射:
这个是自动完成的,并且会在ip地址变更的时候自动更新这条映射。
创建完成了DDNS服务以后,实际上还是无法在外网访问你的NAS,因为NAS是在光猫下的,其ip地址是192168这样的内网地址,而我们访问域名实际上是将请求发送给了外网地址也可以理解为发送给了光猫。而光猫本身不能处理这条请求,所以会将该请求抛弃。这个时候就需要另一个知识点就是端口映射,我自己的网络拓扑如下:
可以看到我的网络是两层结构,因为光猫只有一个千兆Lan口,所以我在下面有添加了一个提供多个千兆Lan口的路由器。而光猫下只是接了这个路由器而已。
光猫的网关是19216811,而路由器连接在光猫上那么他的ip地址是19216813。
而在光猫下的端口映射如下:
端口映射的意义就是如果外网的某个端口得到了请求,光猫会不加处理的将请求发送给映射的局域网ip:端口上。例如我上面的虚拟服务名称为nas的端口映射的意思是:外网的5000端口得到了一个请求,光猫将请求发送给内网的19216813:5000(也就是中间的路由器上)。
这时候我们依然无法看到我们的NAS,这就需要中间路由器继续进行映射将从光猫得到的请求转发给nas:
以上就完成了映射。
你也可以看到上面的映射中有一个22端口的ssh映射,同理如果防火墙没有放行也连接。
本文的前提条件:
具体步骤:linux系统下搭建DDNS服务
记住把 dhcp 和 bind, bind-utils 装上就行了。
配置:
一 生成密钥
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
这时当前目录下会生成Kdhcp_updater+xxx+xxxxxkey及private两个文件
# cat Kdhcp_updater+xxx+xxxxxkey
DHCP_UPDATER IN KEY 0 2 157 qSSpjerAuaPE/X3JJyxSww==
其中qSSpjerAuaPE/X3JJyxSww==下面要用到的。
参数说明:
上述dnssec-keygen命令的功能就是生成更新密钥,其中参数-a HMAC-MD5是指密钥的生成算法采用HMAC-MD5;参数-b 128是指密钥的位数为128位;参数-n USER DHCP_UPDATER是指密钥的用户为DHCP_UPDATER
二、DHCP的配置:
配置DHCP server 时很简单,可以参考 /usr/share/doc/dhcp-xxx/dhcpdconfsample来做。也可以先把这个文件cp 到 /etc/dhcpdconf,然后根据自己的需要做适当修改。下面贴出我的一个/etc/dhcpdconf,供大家参考:
ddns-update-style interim;
ignore client-updates;
max-lease-time 604800;
default-lease-time 86400;
key DHCP_UPDATER {
algorithm HMAC-MD5;
secret qSSpjerAuaPE/X3JJyxSww==;
};
zone shctocom {
primary 127001;
key DHCP_UPDATER;
}
zone 16023010in-addrarpa {
primary 127001;
key DHCP_UPDATER;
}
subnet 102301600 netmask 2552552550 {
range 1023016030 10230160230;
# --- default gateway
option routers 10230160254;
option subnet-mask 2552552550;
option broadcast-address 10230160255;
# --- option nis-domain "domainorg";
option domain-name "shctocom";
option domain-name-servers 1023012833,1023012834;
}
几个要注意的地方:
1 'ddns-update-style'
这个就是动态DNS的更新方式,有几个选项,我用的是interim,可以用 man dhcpdconf找到另外的几个选项。
2 'ignore client-updates'
这个选项是不允许客户机更新DNS记录。当然,也可能允许,但会有一点问题。
3 'key DHCP_UPDATER'
这个是更新DNS的KEY,是必须的。其中algorithm 后的是生成key的算法,key的生成是用 'dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER'。
4 'zone'
要更新的zone,如果是本机就是DNS server,primay 就写127001,要是其它机器是DNS server, 就写那台机器的IP。
别的都是一般DNS该有的了,要注意的是一定要有 range 那一行,不然就分不了IP啦。
配好以后,可以启动一下试试, service dhcpd start,如果没问题,把dhcpd改成开机就启动,chkconfig --level 2345 dhcpd on。
三、bind(named)的配置。
# rpm -qa | gerp bind
看有没有bind-xx及bind-chroot-xx理论上chroot可以提高安全性但设置时繁琐一点
# rpm -qa | gerp caching-name
看caching-nameserver是否也已经装了,这个不装的话就要自己写namedca等几个文件了
######################3namedconf参考范例:
// generated by named-bootconfpl
options {
directory "/var/named";
/
If there is a firewall between you and nameservers you want
to talk to, you might need to uncomment the query-source
directive below Previous versions of BIND always asked
questions using port 53, but BIND 81 uses an unprivileged
port by default
/
forward first;
forwarders { 202992248; 2029922467; 202106020; };
// query-source address port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127001 allow { localhost; } keys { rndckey; };
};
key DHCP_UPDATER {
algorithm HMAC-MD5;
secret qSSpjerAuaPE/X3JJyxSww==;
};
zone "" IN {
type hint;
file "namedca";
};
zone "localhost" IN {
type master;
file "localhostzone";
allow-update { none; };
};
zone "00127in-addrarpa" IN {
type master;
file "namedlocal";
allow-update { none; };
};
zone "16023010in-addrarpa" IN {
type master;
file "named16023010";
allow-update { key DHCP_UPDATER; };
};
zone "shctocom" IN {
type master;
file "namedshctocom";
allow-update { key DHCP_UPDATER; };
};
include "/etc/rndckey";
/var/named/
区域文件
$TTL 86400
$ORIGIN shctocom
@ IN SOA NS1shctocom rootNS1shctocom (
2007121001;
28800;
14400;
3600000;
86400);
IN NS NS1shctocom
IN MX 0 mailshctocom
mail IN A 1023012940
webserver IN A 1023012836
>
将设备接上显示器或者监视器,进主菜单→系统配置→网络配置,选择DDNS。
1、启用DDNS,将变为√。
2、选择DDNS类型为“EasyDDNS”。
3、服务器地址中输入EasyDDNS服务器的地址。
4、设备域名中设置自定义域名,可以使用字母,数字或连字符(-)命名,首字符必须是英文字母。
5、点击应用完成设置,设备将自动注册到EasyDDNS服务器。
1、首先打开浏览器,然后在网址栏输入19216811,然后按回车键确认打开,之后就会d出路由器登录界面;2、之后我们输入路由器登录用户名与密码,TP-Link路由器默认登录用户名与密码均为admin,输入完成后,点击底部的确认即可进入路由器设置了,如下图:
Ps:各品牌路由器默认登录地址、用户名与密码都会在路由器背面外壳的铭牌上标注,不了解的朋友不妨去看看。
3、进入路由器设置界面后,然后我们再点击左侧“网络参数”展开更多设置,之后即可看到“WAN口设置”选项了,我们再点击左侧的WAN口设置可以显示当前拨号连接的状态如下图:
路由器WAN口设置界面
4、如上图,在WAN口设置界面底部还有一个“高级设置”入口,我们点击进入即可进入到路由器DNS设置界面了,如下图:
5、如果我们要设置DNS地址,只需要勾选上“手动设置DNS服务器”,然后在DNS服务器与备用DNS服务器后面填写上需要设置的DNS地址即可,完成后,点击底部的保存,即可成为修改设置路由器DNS地址了。
路由器然后使用花生壳动态DDNS有以下几个步骤
步骤一:首先打开花生壳官网,注册一个花生壳账号。
步骤二:打开浏览器输入19216801进入路由器设置页面==特殊应用==选择DDNS
然后把对应刚刚注册的花生壳填入选项框内点确定就可以了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)