虽然RouterOS 加入了cloud功能,但最近在配置RB2011的时候发现不好使,更新域名后无法正确解析到我的IP地址,虽然在cloud的public address中显示了正确的公网ip地址,但解析分配的域名时老是错误,在官网论坛也有人反映这个问题,但没有结果所以放弃了cloud。

RouterOS早期的DDNS推荐是changeip是国外网站,使用上有些不方便,所以最近找了下国内的DDNS站点pubyun.com的ddns域名更新,此类更新有所不同,使用的是http协议进行更新,所以需要使用fetch功能更新,首先申请了一个DDNS域名,当然申请的是免费域名,根据网站提供的更新说明做了一个DDNS动态更新的脚本,大致配置如下。

在pubyun.com站点选择DDNS二级域名是f3322.org,申请完成后,需要设置更新密码,这个很关键。

如更新密码为:0123456789

如果是windows电脑可以下载客户端更新软件,同时pubyun.com站点在客户端下载页面提供了linux更新方法,使用lynx通过通过http 方式更新,如下:

lynx -mime_header -auth=用户名:密码 "http://members.3322.net/dyndns/update?system=dyndns&hostname=域名"

RouterOS没有提供lynx,但提供了fetch功能,假设我的域名是"xxxx.f332.org",用户名root,密码0123456789,使用fetch更新脚本如下:

/tool fetch url="http://members.3322.net/dyndns/update?system=dyndns&hostname=xxxx.f3322.org"  mode=http user=root password=0123456789

在script先新建脚本内容如下:

:global ddnsnic "pppoe-out1"

:global ddnslastip

:global ddnsip [ /ip address get [/ip address find dynamic=yes interface=$ddnsnic ] address ]

:if ( [:typeof $ddnslastip]="nothing" ) do={ :global ddnslastip 0.0.0.0/0 }

:if ( [:typeof $ddnsip]="nothing" ) do={

:log info ("DDNS: No ip address present on " . $ddnsnic . ", please check.")

} else={

:if ($ddnsip != $ddnslastip) do={

:log info "DDNS: Sending UPDATE!"

:log info [ /tool fetch url="http://members.3322.org/dyndns/update?system=dyndns&hostname=xxxx.f3322.org"  mode=http user=root password=0123456789

:global ddnslastip $ddnsip

} else={

:log info "DDNS: No change"

}

}

剩下的操作就是放到计划任务中周期执行

上面的方法老是测试不通过,经过龚总的指点,更正如下:

:global str "dyndns/update\?system=dyndns&hostname=longii.f3322.net" (这里写入你注册的免费DDNS,我是longii.f3322.net)
 
:global ddnsnic "pppoe-out1"  (这里写入你外网接口的接口名)
 
:global ddnslastip
 
:global ddnsip [ /ip address get [/ip address find interface=$ddnsnic ] address ]
 
 :if ( [:typeof $ddnslastip]="nothing" ) do={ :global ddnslastip 0.0.0.0/0 }
 
 :if ( [:typeof $ddnsip]="nothing" ) do={
 
   :log info ("DDNS: No ip address present on " . $ddnsnic . ", please check.")
 
 } else={
 
   :if ($ddnsip != $ddnslastip) do={
 
    :log info [ /tool fetch   user=root password=xxx(写入你自己的密码) mode=http  address="members.3322.net" src-path=$str dst-path=log.txt ]
 
    :log info ("DDNS: Sending UPDATE OK!" . $ddnsip )
 
    :global ddnslastip $ddnsip
 
   } else={
 
     :log info "DDNS: No change"
 
 }
 
 }

测试了下ROS输出的path=log.txt 老不是当前的IP返回。不晓得为啥。不过看LOG是正确的。大家注意下。

关于RouterOS 国内DDNS服务的更多相关文章

  1. 前端 CDNJS 库及 Google Fonts、Ajax 和 Gravatar 国内加速服务

    由于某些众所周知的原因,好多开源的 JS 库采用的国外 CDN 托管方式在国内访问速度不如人意.所以我们特意制作了这个公益项目,托管了 CDNJS 的所有开源 JS 库以及反代了 Google Fon ...

  2. 动态IP下群晖搭建DDNS服务

    转载地址:https://www.zimrilink.com/share/dsm_aliddns_server.html 通过阿里云API(php)搭建出DDNS动态域名解析服务器;不同的是本文的方法 ...

  3. 永久免费云服务器搭建国内Moon服务加速ZeroTier

    ZeroTier One本身的服务器都在国外访问速度很慢.可以通过搭建国内Moon服务加速解决连接慢的问题. 但是需要有固定外网IP的服务器,可以注册sanfengyun账号申请免费云服务器. 下面是 ...

  4. ROS使用国内的DDNS服务

    未测试.转载余松老师的作品 虽然RouterOS 加入了cloud功能,但最近在配置RB2011的时候发现不好使,更新域名后无法正确解析到我的IP地址,虽然在cloud的public address中 ...

  5. 阿里与ShopRunner达成协议 联手在国内推出服务

    阿里巴巴集团与美国在线零售商 ShopRunner 达成协议,将帮助后者在中国大陆销售商品和履行订单交付产品. ShopRunner 首席战略官菲奥娜·迪亚斯(Fiona Dias)周三接受媒体采访时 ...

  6. Linux架设DDNS服务器之自动更新脚本

    问题描述:客户端是动态IP,每次连网之后要nsupdate下才可以把客户端的hostname 与IP映射更新到DNS Server上 命令如下: nsupdate -k K*****.key > ...

  7. 基于nodejs的阿里云DDNS服务,支持多网卡绑定

    前段几天写的,自用. 想着也许有和我一样需求的同学,所以开源发出来了. 提供阿里云的DDNS设置,支持多网卡多域名绑定. 特性 支持阿里云DDNS设置 支持针对多个线路多个网卡单独设置域名 支持IPv ...

  8. 国内网站常用的一些 CDN 公共库加速服务

    CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用.与将JS库存放在服务器单机上相比,CDN公共库更加稳定.高速.一 般的CDN公共库都会包含全球所有最流行的开源JavaScri ...

  9. 盘点国内网站常用的一些 CDN 公共库加速服务

    CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直接调用.与将JS库存放在服务器单机上相比,CDN公共库更加稳定.高速.一 般的CDN公共库都会包含全球所有最流行的开源JavaScri ...

随机推荐

  1. [Pytorch]Pytorch加载预训练模型(转)

    转自:https://blog.csdn.net/Vivianyzw/article/details/81061765 东风的地方 1. 直接加载预训练模型 在训练的时候可能需要中断一下,然后继续训练 ...

  2. Angel 实现FFM 一、对于Angel 和分布式机器学习的简单了解

    Angel是腾讯开源的一个分布式机器学习框架.是一个PS模式的分布式机器学习框架. https://github.com/Angel-ML/angel   这是github地址. 我了解的分布式机器学 ...

  3. Rails 5 Test Prescriptions 第3章Test-Driven Rails

    本章,你将扩大你的模型测试,测试整个Rails栈的逻辑(从请求到回复,使用端到端测试). 使用Capybara来帮助写end-to-end 测试. 好的测试风格,包括端到端测试,大量目标明确的单元测试 ...

  4. 【MySQL】经典数据库SQL语句编写练习题——SQL语句扫盲

    [MySQL]数据库原理复习——SQL语言 对基本的SQL语句编写的练习题,其中的题目的答案可能会有多种书写方式. 1.题目1 1.1 关系模式 学生student:SNO:学号,SNAME:姓名,A ...

  5. 51nod1289 stack

    1289 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动 ...

  6. UVALive-2966 King's Quest(强连通+二分图匹配)

    题目大意:有n个男孩和和n个女孩,已只每个男孩喜欢的女孩.一个男孩只能娶一个女孩.一个女孩只能嫁一个男孩并且男孩只娶自己喜欢的女孩,现在已知一种他们的结婚方案,现在要求找出每个男孩可以娶的女孩(娶完之 ...

  7. xtrabackup备份之增量备份(二)

    测试了差不多一周的xtrabackup,本篇主要聊一下xtrabackup的增量备份.我一开始不是很了解,为什么每周都需要做全备份,每天都需要做增量备份,现在想想这个和技术无关.但是有一个新问题,如果 ...

  8. Java LRU的实现

    最近在leetcode上做题的时,看到了一道有关LRU Cache的题目,正好我当初面试阿里巴巴的时候问到的.主要采用linkedHashMap来实现. package edu.test.algori ...

  9. BootStrap--scroll

    滚动侦测 滚动侦测基本使用方法为: <body data-spy="scroll"> <nav class="navbar navbar-default ...

  10. JDK5的新特性:泛型、可变参数、静态导入

    数组可以在创建的时候就指定存放的数据类型,这样放入不同类型的时候就会发生编译错误. 而集合却可以存储多种不同类型,这样的话如果是遍历的时候在集合中装了好多不同的数据类型的时候,十分容易发生类型转换错误 ...