Mikrotik RouterOS-脚本-花生壳动态域名解析

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

花生壳官方提供给用户的“如何在ROS中设置花生壳ddns(公网版)”错漏百出,根本无法使用。

为了解决此问题还特意学习了“Mikrotik RouterOS的脚本语法”。

现在把测试好的代码和设置过程、调试方法贴出来供各位博友参阅,以免浪费时间。

1、step1

开启NTP协议并修改时区:

1
2
/system  ntp client  set  enabled= yes  server-dns-names=1.centos.pool.ntp.org
/system  clock  set  time -zone-name=Asia /Shanghai

检测路由是否与动态域名服务器通讯正常:

1
/ping  ddns.oray.com

2、step2

修改脚本前,先组装一个URL测试:

1
/tool  fetch url= "http://ddns.oray.com/ph/update\?hostname=example.oicp.net&myip=119.128.4.27"  mode=http user= "example"  password= "pwd"

直接粘贴到路由上测试:

wKiom1YYhG-gXtnAAADDe6UGBoM574.jpg

DNS查询是否可以正常更新DNS解析:

wKioL1YYhIiyOz0gAACO9izsoZM127.jpg

尝更新一个错误的IP给花生壳DDNS服务器试试:

wKioL1YYhIiAIJhNAADMhjbFBF8499.jpg

DNS查询是否可以更新掉之前正确的DNS解析:

wKiom1YYhG7TYQ_YAACD2b5Y_aw370.jpg

可以看到DNS解析出来的是一个错误的IP地址。

3、step3

写脚本前,先查看当前路由的PPPOE接口名称:

wKioL1YYhi6ANH_YAADTKNalAAo119.jpg

可以看到正确的接口名称为“ChinaNet”

根据正确的接口名字修改脚本等信息:

1
2
3
4
5
6
7
8
9
10
11
{
: local  ipaddr;
: local  server  "http://ddns.oray.com" ;
: local  domain  "example.oicp.net" ;
: local  users  "example" ;
: local  paswd  "pwd" ;
: set  ipaddr [ /ip  address get [ /ip  address  find  interface=ChinaNet] address];
: set  ipaddr [:pick $ipaddr 0 ([:len $ipaddr] -3)];
: local  par  "/ph/update\?&hostname=$domain&myip=$ipaddr" ;
/tool  fetch url=($server . $par) mode=http user=$ users  password=$paswd;
}

以上需要修改的参数:

server    //固定为http://ddns.oray.com

domain    //你向花生壳申请的域名

users    //登录花生壳的用户名

paswd    //登录花生壳的密码

interface    //上面查询出来的虚拟接口名称

把代码直接粘贴到路由上测试:

wKioL1YYhInD65wHAAG2DOxY3_w159.jpg

DNS查询是否能把错误的IP更新掉:

wKiom1YYhG_BSPX7AACFt_r_j6Y887.jpg

可以看到脚本成功地找到了本路由PPPOE接口的当前IP,并成功提交给了花生壳服务器。

4、step4

以下将设置脚本和定时任务,使脚本可以自动执行:

“/System/Scripts”设置目录,单击【+】按钮

wKiom1YYidPCvLLbAAEpSknXTCE541.jpg

如上图所示:

“On Event”增加通过测试的脚本代码。

单击【OK】按钮退出。

“/System/Scheduler”设置目录,单击【+】按钮

wKioL1YYignznmJWAAEBXyp038k050.jpg

如上图所示:

Interval设置为“30”分钟

“On Event”增加“:execute peanutddns”脚本调用语句。

注:更新的版本已经不支持“:execute scriptName”语句,请直接写脚本名称“peanutddns”

单击【OK】按钮退出。

5、step5

检测是否已经正常工作:

再次尝试更新一个错误IP给花生壳的DDNS服务器:

wKioL1YYhIiAIJhNAADMhjbFBF8499.jpg

wKiom1YYhG7TYQ_YAACD2b5Y_aw370.jpg

等待脚本执行:

wKiom1YYiojjtYxKAADajEyC4W8837.jpg

如上图所示:

等待“Run Count”执行加“1”后表示已经更新过DNS。

wKiom1YYhG_BSPX7AACFt_r_j6Y887.jpg

如上图所示:

错误的DNS被重新更新,证明脚本运行正常。









本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1701464,如需转载请自行联系原作者

目录
相关文章
|
28天前
|
缓存 网络协议 安全
【计算巢】DNS 解析过程详解:域名如何转换为 IP 地址
【5月更文挑战第31天】DNS(域名系统)将人类可读的域名转换为IP地址,涉及本地DNS缓存、层次化DNS服务器系统,包括根DNS、顶级域名DNS和权威DNS。当查询域名时,通过DNS服务器间的交互找到对应IP并返回给浏览器。Python示例展示了DNS查询过程。尽管DNS面临安全挑战,如欺骗和缓存中毒,采取安全措施可确保其稳定性和安全性。它是互联网的重要基础,连接域名与IP,支持便捷的网络访问。
|
2天前
|
域名解析 缓存 网络协议
域名解析后清除dns缓存
域名解析后清除dns缓存
10 4
|
11天前
|
域名解析 缓存 网络协议
DNS域名原理介绍
DNS域名原理介绍
30 4
|
18天前
|
运维 网络协议 JavaScript
Serverless 应用引擎产品使用合集之绑定自定义域名是否要确定解析设置
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
23天前
|
域名解析 Docker 容器
使用docker+ddns 实现动态域名解析
使用docker+ddns 实现动态域名解析
85 7
|
2天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
11 0
|
2天前
|
缓存 监控 安全
深入解析Elasticsearch中脚本原理
深入解析Elasticsearch中脚本原理
|
29天前
|
域名解析 网络协议 安全
【域名解析DNS专栏】未来趋势:DNS解析技术的新发展与挑战
【5月更文挑战第30天】随着AI和物联网的发展,DNS解析正向智能化和安全增强迈进,利用大数据和DNSSEC保障速度与安全。同时,匿名解析技术将提升用户隐私保护。然而,面对复杂网络环境、性能与延迟挑战及国际标准兼容性问题,DNS技术需不断创新以应对未来挑战。Python示例展示了DNSSEC验证查询。DNS解析的持续进化对互联网的稳定和隐私至关重要。
|
29天前
|
域名解析 负载均衡 网络协议
【域名解析DNS专栏】从DNS解析看全球互联网基础设施布局
【5月更文挑战第30天】本文探讨了DNS解析在全球互联网基础设施布局中的关键作用。DNS负责将域名转换为IP地址,其高效、可靠的运行依赖于全球分布式、负载均衡且具有冗余备份的服务器网络。通过Python代码示例展示了DNS查询过程,强调DNS服务对用户体验的影响,指出合理布局互联网基础设施的重要性。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多