NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

MikroTik RouterOS 配置国内DDNS服务

[复制链接]
2240 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
虽然RouterOS 加入了cloud功能,但最近在配置RB2011的时候发现不好使,更新域名后无法正确解析到我的IP地址,虽然在cloud的public address中显示了正确的公网ip地址,但解析分配的域名时老是错误,在官网论坛也有人反映这个问题,但没有结果所以放弃了cloud。最近发现cloud服务又恢复正常,但考虑到安全起见还是找一个第三方备份DDNS服务。

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

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

如设置更新密码为:0123456789

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

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

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

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

注意:上面的url内容包含了?,在terminal的CLI命令行无法执行,需要添加到/system script脚本执行测试

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

  1. :global ddnsnic "pppoe-out1"
  2. :global ddnslastip
  3. :global ddnsip [ /ip address get [/ip address find dynamic=yes interface=$ddnsnic ] address ]
  4. :if ( [:typeof $ddnslastip]="nothing" ) do={ :global ddnslastip 0.0.0.0/0 }

  5. :if ( [:typeof $ddnsip]="nothing" ) do={
  6.       :log info ("DDNS: No ip address present on " . $ddnsnic . ", please check.")
  7.   } else={
  8.       :if ($ddnsip != $ddnslastip) do={
  9.       :log info "DDNS: Sending UPDATE!"
  10.       :log info [ /tool fetch url="http://members.3322.org/dyndns/update?system=dyndns&hostname=xxxx.f3322.org"  mode=http user=root password=0123456789
  11.       :global ddnslastip $ddnsip
  12.     } else={
  13.      :log info "DDNS: No change"
  14.      }
  15. }
复制代码

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表