以下是使用 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
  }
}

上述脚本首先定义了两个变量dnsPrimarydnsBackup,分别表示主要 DNS 服务器和备用 DNS 服务器。接下来获取当前 DNS 服务器的配置并存储在currentDNS变量中。

然后,使用/ping命令来测试是否可以访问外部网络。如果无法访问,则输出相应的消息,并检查当前的 DNS 服务器配置是否为备用服务器。如果不是,则将 DNS 配置更改为备用服务器,并清空 DNS 缓存。

如果可以访问外部网络,则输出相应的消息,并检查当前的 DNS 服务器配置是否为主要服务器。如果不是,则将 DNS 配置更改为主要服务器,并清空 DNS 缓存。

请注意,这段脚本假定你的 RouterOS 设备已经配置了 DNS 服务器,并且可以使用/ping命令来测试外部网络的可访问性。如果你的设备没有配置 DNS 服务器或者无法使用/ping命令,请根据你的具体情况进行修改。

RouterOS 自动 DNS 切换脚本:优化网络连接

原文地址: https://www.cveoy.top/t/topic/bzIL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录