没有固定IP的情况下,想要提供外网访问,那么DDNS是必不可少的一个设置。

DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地址映射到一个固定的域名解析服务。需要注意的是,不是域名是动态的,而是IP是动态的。

提供DDNS域名服务的有很多,但是能长期稳定提供服务的不多。一个互联网服务要想长期稳定的发展下去,那么盈利一定要有。如果不是从这个服务获取利润,那么必须有其他服务为它买单,否则迟早要关门。


DDS是什么原理呢?可以看下图:

说白了很简单,有一个客户端,定期向某个服务器发送一个更新包。服务器收到这个包之后,解析一下客户端的IP(TCP包中包含IP源地址),然后将一个动态域名绑定到这个IP即可。然后其他人访问这个域名时,域名解析就会返回刚才绑定的IP。

当然,实际当中服务器处理流程要复杂一些,比如服务器需要验证一下这个更新包是否合法等等。

一般的路由器,都有带DDNS更新功能。路由器会提供一些DDNS服务商列表,然后你填写一下对应的用户名密码等等信息,就可以使用这个功能了。

聪明的你看了上面实现流程,就会发现,客户端和服务端基本上不是同一家公司做得。这样子有好处也有坏处:

好处:客户端服务端不关联,客户端的实现可以五花八门,应用程序啊,脚本啊,路由器啊,各种情况可能都可以,只要到达服务端的IP包符合服务器的要求即可。

但是好处也是坏处的由来:由于客户端服务端不关联,所以服务端一旦变更了数据格式或者参数等,你的客户端就需要同步更新。另外服务端由于需要验证用户,所以你必须自己去注册一个账号密码才行。

文章开头提到的,DDNS服务商需要保证流量,保证利润能持续运营下去,他会对注册的账号有一些限制。比如

  1. 每隔一段时间需要登录一下网站
  2. 有免费时间期限,比如一年之类的

另外国内的网站,比如花生壳等,注册时需要手机号等等,都比较麻烦。

那么,有没有省心省力的DDNS服务提供商呢?


这次,我们来介绍Mikrotik的ROS(RouterOS)提供的DDNS服务。

Mikrotik的RouterOS,这个应该不用我介绍了,大名鼎鼎。我是强力推荐!能用ROS的情况下尽量用。好处太多了:功能全,配置项简单明了,拥有完整的文档库,网上有大量的经验介绍等等。(自然,E文好一点的话,配置起来更不在话下。另外弄懂ROS是如何配置的,一生受用,只要TCP/IP不倒。)

要使用Mikrotik的DDNS,需要一个前提条件,那就是需要有一个跑着RouterOS的路由器....

什么?一台跑着RouterOS的路由器.........!!!

买新硬件?那是不可能的。关注我这个专栏的人都知道,我有一个FreeBSD虚拟主机。可以跑各种虚拟机。那么这次我们也用它来跑ROS吧。


首先建立一台虚拟机:

root@nas:~ # vm create ddns

修改虚拟机配置如下:

root@nas:/zones/vm/ddns # cat ddns.conf
loader="grub"
cpu=1
memory="128M"
network0_type="virtio-net"
network0_switch="v6plus"
disk0_type="virtio-blk"
disk0_name="chr-6.44.5.img"
grub_run0="linux /boot/vmlinuz-64 crashkernel=16M"
grub_run1="initrd /boot/initrd.rgz"

因为我们只是使用DDNS功能,所以虚拟机的配置按照最小的配置。

接下来我们去这个链接下载RouterOS的CHR镜像。

MikroTik​www.mikrotik.com

下载并解压。

root@nas:/zones/vm/ddns # fetch https://download.mikrotik.com/routeros/6.44.5/chr-6.44.5.img.zip
chr-6.44.5.img.zip                                      32 MB  477 kBps 01m09s
root@nas:/zones/vm/ddns # unzip chr-6.44.5.img.zip
Archive:  chr-6.44.5.img.zipextracting: chr-6.44.5.img  

启动虚拟机!

root@vmhost240:/zones/vm/ddns # vm start ddns
Starting ddns* found guest in /zones/vm/ddns* booting...
root@vmhost240:/zones/vm/ddns # vm list
NAME   DATASTORE  LOADER  CPU  MEMORY  VNC            AUTOSTART  STATE
ddns   default    grub    1    128M    -              No         Running (34477)  21.7%

可以看到虚拟机正在运行。

接下来就是配置了。

RouterOS的配置方式可以有很多,网页配置,winbox等。在这里推荐winbox,因为RouterOS没有正确配置的情况下,可以通过MAC地址进行链接!比如下图,可以直接通过MAC连接。

跑起来我们马上看看ip/cloud这个DDNS服务!

咦?免费License不能用!.... 好吧,我先试用60天看看。

system/license里面先试用CHR的P1 License。

然后再打开ip/cloud

完成之后,直接就可以访问DNS Name里面的域名了。我们访问看看,我家里的apache缺省页面显示出来了!

完成!

另外觉得域名不好记得,可以设置一下CNAME,转换成自己好记的域名。


总结一下:Mikrotik CHR的DDNS开启起来非常简单,只需要点一下即可!不过遗憾的是,需要有License。P1的CHR License官方45刀,某宝150RMB左右吧....

ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!相关推荐

  1. 用 XHR + curl.exe 制作 ddns 客户端札记

    九月的第一天,重要的是开学了,莘莘学子们返回校园,而我下面说的,则是次要的,呵呵. 是这样的,想换掉旧的 ddns 服务商,打算试试一个海外的.作为一站长,使用 ddns 是司空见惯的事情. 没想到服 ...

  2. Linux下DDNS客户端的使用

    <ARM Linux开发-warewin 2G/3G无线传输(DTU)和路由器-笔记> 8.3.1.DDNS原理 动态DNS又名DDNS,它的主要功能是实现固定域名到动态IP地址之间的解析 ...

  3. ESXI安装Mikrotik RouterOS(ROS)软路由部署指南(附授权镜像下载)

    一.什么是RouterOS(ROS),ROS优点与缺点 RouterOS(简称ROS)是一种路由操作系统,基于Linux开发,兼容x86 PC的路由软件,是目前功能较强.应用较广的软路由系统,适用于中 ...

  4. 萌新必看——10种客户端存储哪家强,一文读尽!

    转载请注明出处: 葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 数据持久 数据持久指将内存中的数据模型转化为存储模型,和将存储模型转化为内存中的数据模型这一过程的统称.在 ...

  5. 玩转软路由 篇三: 虚拟机ESXI中Mikrotik RouterOS(ROS)的安装设置教程

    目录 一.ROS和管理工具WinBox下载 二.虚拟机Esxi的网络配置 1. 虚拟机Esxi的安装. 2. 网卡直通. 3. 虚拟交换机 三. 创建ROS虚拟机 1.   选择创建类型 2.   上 ...

  6. agx 安装ros opencv_玩转软路由 篇二:虚拟机ESXI中Mikrotik RouterOS(ROS)的安装设置_路由器...

    2020-10-31 21:42:223点赞26收藏0评论 本文来自#千兆网络有什么用#征稿活动,不断提速的网络给你的生活带来了什么变化?快来参与活动,聊聊你玩转互联网,高速网上冲浪的经历!>点 ...

  7. DDNS 的工作原理及其在 Linux 上的实现--转

    http://www.ibm.com/developerworks/cn/linux/1305_wanghz_ddns/index.html DDNS (Dynamic DNS) 扩展了 DNS 将客 ...

  8. linux查域名对应的ip 系统调用,DDNS 的工作原理及其在 Linux 上的实现

    DDNS 工作原理的分析 DDNS 的实现最根本的一点是当主机的 IP 地址发生变化的时候,实现 DNS 映射信息的及时更新,应用程序需要及时地获得这一信息,主要的方法可分为两大类: 一类是轮询机制, ...

  9. 私有云方案——利用阿里云云解析实现DDNS

    各位都是程序员,工作中是不是遇到个类似情况.在家里研究的一些开源代码或写的一些demo或试验代码,在工作中正好需要参考一下,但是在家里的电脑上. 虽然这些都可以用云盘/网盘之类的来完成,源代码也可以托 ...

最新文章

  1. Java String split 使用详解、split 方法存在的一些坑
  2. linux双系统 删一个,双系统删除linux
  3. c语言malloc面试题,c语言面试最必考的十道试题,求职必看!!!
  4. 在数据库中, 不用max()/min()找出一个列中最大/最小值的记录
  5. TensorFlow 2.0深度强化学习指南
  6. 云南大学计算机网络期中考试刘春花,实验九基于CRC编码的检错程序的实现.doc...
  7. Windbg分析高内存占用问题
  8. Python 异常(Exception)
  9. M1 Mac 档案的临时暂存区工具: Yoink
  10. 66. 查询分页数据
  11. Markdown编辑器语法之代码高亮、标记和文字颜色
  12. 百词斩不复习_不背单词,墨墨背单词和百词斩哪个好啊?
  13. 第一步:文献阅读与翻译
  14. linux单引号作用,linux中单引号、双引号、反引号的作用
  15. wp8.1 java_WP8.1系统升级到Win10 Mobile正式版的方法
  16. Java集合类ArrayList线程不安全验证和解决
  17. MacTeX添加.sty文件
  18. 如何防止工具(八门神器)进行内存修改(转)
  19. AGV移动机器人无人叉车控制器设计
  20. IOS苹果手机下载DNF韩服手游手机版ios版下载

热门文章

  1. Docker中搭建FastDFS文件系统(多图)
  2. Android 下拉式抽屉折叠动画
  3. js 树形json转以叶子结点为基准的扁平结构
  4. docker中centos遇到sudo: command not found
  5. 西电继续教育计算机试题答案,西安电子科技大学网络与继续教育学院微机原理试题...
  6. GCC10.1.0最新版编译
  7. SQLServer 生成当前日期备份
  8. mysql 使用索引_mysql使用索引的注意事项
  9. NLayerAppV3--.net Core2实现的DDD分层架构
  10. Python3 循环