如何在 MikroTik RouterOS 上使用 DNS 更新 WireGuard 对等端点地址

更新 2022-12-30:更新了代码,现在使用变量

假设你的对等方注释是 peer1,正确的端点 DNS 记录是 peer1.mydomain.com,你可以使用此 RouterOS 脚本根据 DNS 记录更新端点:

update_wireguard_endpoint.rsc
local PEERCOMMENT
local DOMAIN

set PEERCOMMENT "peer1"
set DOMAIN "peer1.mydomain.com"

if ([interface wireguard peers get number=[find comment=$PEERCOMMENT] value-name=endpoint-address] != [/resolve $DOMAIN]) do={
    interface wireguard peers set number=[find comment=$PEERCOMMENT] endpoint-address=[/resolve $DOMAIN]
}

修改变量以适应你的 Wireguard 配置:将 PEERCOMMENT 设置为应更新的对等方的注释,将 DOMAIN 设置为应用于更新对等方 IP 地址的 DNS 域名

之后,在System -> Scripts中将其添加为新脚本,然后在System -> Scheduler下添加调度程序以例如每 30 秒运行该脚本

脚本设置

MikroTik RouterOS script settings for WireGuard DNS endpoint update

调度程序设置

MikroTik RouterOS scheduler settings for WireGuard DNS endpoint update

可能使过程更容易理解的相关文章:


Check out similar posts by category: MikroTik, Wireguard