RouterOS利用DDNS自动更新Wiregurad Peer的endpoint,默认是解析ipv6,如果需要ipv4的话,把第三行的type=ipv6删除即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
:local peerName "Peer名称"
:local hostDomain "对端域名位置"
:global newEndpoint [:resolve $hostDomain type=ipv6]
:global oldEndpoint

:if ($newEndpoint != "") do={
:if ($newEndpoint != $oldEndpoint) do={
:local peerId [/interface/wireguard/peers find where name=$peerName]
:if ($peerId != "") do={
/interface/wireguard/peers set $peerId endpoint-address=$newEndpoint
:log info ("WireGuard peer " . $peerName . " endpoint-address updated to " . $newEndpoint)
:set $oldEndpoint $newEndpoint
} else={
:log warning ("WireGuard peer " . $peerName . " not found.")
}
}
} else={
:log warning ("Failed to resolve host: " . $hostDomain)
}