威联通NAS折腾日记(5)-使用阿里云DDNS服务
疫情期间一直在家,NAS基本上都是在家中使用。外网访问的问题就没怎么管它。这次要去北京一趟,外网访问就被提上了日程。由于我用的是电信的宽带,提前已经申请了公网ip,并且已经在阿里云上申请了自己的域名。当然你也可以使用威联通官方提供的myqnapcloud云服务,或者使用花生壳等内网穿透工具。
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地址是192.168这样的内网地址,而我们访问域名实际上是将请求发送给了外网地址也可以理解为发送给了光猫。而光猫本身不能处理这条请求,所以会将该请求抛弃。这个时候就需要另一个知识点就是端口映射,我自己的网络拓扑如下:
可以看到我的网络是两层结构,因为光猫只有一个千兆Lan口,所以我在下面有添加了一个提供多个千兆Lan口的路由器。而光猫下只是接了这个路由器而已。
光猫的网关是192.168.1.1,而路由器连接在光猫上那么他的ip地址是192.168.1.3。
而在光猫下的端口映射如下:
端口映射的意义就是如果外网的某个端口得到了请求,光猫会不加处理的将请求发送给映射的局域网ip:端口上。例如我上面的虚拟服务名称为nas的端口映射的意思是:外网的5000端口得到了一个请求,光猫将请求发送给内网的192.168.1.3:5000(也就是中间的路由器上)。
这时候我们依然无法看到我们的NAS,这就需要中间路由器继续进行映射将从光猫得到的请求转发给nas:
以上就完成了映射。
你也可以看到上面的映射中有一个22端口的ssh映射,同理如果防火墙没有放行也连接。
本文的前提条件:
具体步骤:
docker | 使用阿里云加速器快速拉取docker镜像
本文介绍使用阿里云加速器快速拉取docker镜像的方法,以此避免拉取过程中的可能出现的网络太慢的问题。
登录阿里云官网,打开容器镜像服务控制台(如果找不到,可以在产品与服务中搜索一下),点击左侧镜像加速器栏目就可以看到了。
直接编辑配置文件 /etc/docker/daemon.json
需要根据不同的操作系统进行配置,例如Ubuntu 12.04 14.04的配置文件的位置在 /etc/default/docker。
你只需要在这个配置文件里,添加加速器的配置项,然后重启Docker就可以了。
其他操作系统的配置方法,可以参考 这篇文章 。
阿里云ECS服务器安装docker详细步骤
环境:ECS服务器,务必使用CentOS 7 以上版本,64位系统推荐是CentOS 7.8
安装步骤:
一:安装docker所需的环境
1.安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置yum源 使用国内的:yum-config-manager --add-repo
3.查看docker版本:yum list docker-ce --showduplicates | sort -r
二:安装docker
注意:不使用1.13.1版本,该版本在jenkins使用docker命令时会说找不到配置文件
1.安装docker:yum -y install docker-ce-20.10.10-3.el7
2.查看docker版本:docker -v
3.启动docker:systemctl start docker
4.查看docker 启动状态:systemctl status docker
5.检查安装结果:docker info
运行Docker守护进程:systemctl start docker
停止Docker守护进程:systemctl stop docker
重启Docker守护进程:systemctl restart docker
6.查看容器:docker ps
7.停止容器:docker stop 容器id
三:修改镜像仓库:
vim /etc/docker/daemon.json
添加如下内容:
{
\"debug\":true,\"experimental\":true,\"registry-mirrors\":[\"\",\"\",\"\"]
}
8.查看信息:docker info
仅供个人学习使用,如有不足请指出。
愿景:愿天下所有程序员能早日财富自由,永不搬砖!
群辉用docker公网ip可以访问,但是阿里云dnns不起效果
解决方法如下:
进入群晖之后,点击右上方的输入图标,输入阿里云dDNS然后点击添加即可
自建动态DNS(DDNS)服务器
1.首先得有自己的一个域名,可以参考freenom免费顶级域名
2.使用Cloudxns接替管理
3.拥有自己VPS
1.安装Docker
可以参考
或者按照以下安装
使用脚本自动安装
curl -sSL | sh
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 安装在系统中。
阿里云的安装脚本
curl -sSL | sh
DaoCloud 的安装脚本
curl -sSL | sh
2.安装动态域名客户端
这里使用zwh8800的客户端
首先,拉取镜像:
docker pull zwh8800/cloudxns-ddns
然后,编写一个很简单的配置文件,文件名必须为 cloudxns-ddns.gcfg,把它放到某个文件夹中(如/home/zzz/cloudxns-ddns/config,下面以此为例子)
[CloudXNS]
APIKey=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"
SecureKey=\"xxxxxxxxxxxxxx\"
[Domain]
Data=\"home.lengzzz.com\"
Data=\"haha.lengzzz.com\"
上面 APIKey 是你在 CloudXNS 申请的 key,填进去即可。下面是你想要动态的域名,可以写很多。
然后,启动镜像即可。
docker run --name cloudxns-ddns -d -v /home/zzz/cloudxns-ddns/log:/app/log -v /home/zzz/cloudxns-ddns/config:/app/config zwh8800/cloudxns-ddns
依葫芦画瓢就可以运行了
为防止后台停止运行加入restart参数
docker run --name cloudxns-ddns --restart=always -d -v /home/zzz/cloudxns-ddns/log:/app/log -v /home/zzz/cloudxns-ddns/config:/app/config zwh8800/cloudxns-ddns