RouterOS 自动 DNS 切换脚本:优化网络连接
以下是使用 RouterOS 脚本来实现自动检测网络连接并切换 DNS 服务器的功能:
:local dnsPrimary '10.0.0.1'
:local dnsBackup '223.5.5.5,119.29.29.29,223.6.6.6'
:local currentDNS [/ip dns get [find] servers]
:if ([/ping 8.8.8.8 count=3] = 0) do={
:put 'Cannot access external network'
:if ($currentDNS != $dnsBackup) do={
:put 'Setting DNS to backup servers'
/ip dns set servers=$dnsBackup
/ip dns cache flush
}
} else={
:put 'Can access external network'
:if ($currentDNS != $dnsPrimary) do={
:put 'Setting DNS to primary server'
/ip dns set servers=$dnsPrimary
/ip dns cache flush
}
}
上述脚本首先定义了两个变量dnsPrimary和dnsBackup,分别表示主要 DNS 服务器和备用 DNS 服务器。接下来获取当前 DNS 服务器的配置并存储在currentDNS变量中。
然后,使用/ping命令来测试是否可以访问外部网络。如果无法访问,则输出相应的消息,并检查当前的 DNS 服务器配置是否为备用服务器。如果不是,则将 DNS 配置更改为备用服务器,并清空 DNS 缓存。
如果可以访问外部网络,则输出相应的消息,并检查当前的 DNS 服务器配置是否为主要服务器。如果不是,则将 DNS 配置更改为主要服务器,并清空 DNS 缓存。
请注意,这段脚本假定你的 RouterOS 设备已经配置了 DNS 服务器,并且可以使用/ping命令来测试外部网络的可访问性。如果你的设备没有配置 DNS 服务器或者无法使用/ping命令,请根据你的具体情况进行修改。
原文地址: https://www.cveoy.top/t/topic/bzIL 著作权归作者所有。请勿转载和采集!