wireguard ddns ip 变更后客户端要手动断开重连很烦

288 天前
 8675bc86

MAC/Linux 下有没有比较好的方法,目前已知运营线变更公网 ip 时间不确定,从自己写的变更通知来看,有时候几天变更,有时候一天变更几次。

1465 次点击
所在节点    宽带症候群
10 条回复
cq65617875
288 天前
写个脚本做检测呗,不通了就重置服务
maybeonly
288 天前
写个脚本就好了,检查域名,如果有变化就重联
手敲一段,请自行调试修改
domain=ddns.yourdomain.com
lastip=
while [ ture ]
do
newip=$(dig "${domain}" +short A | grep -E '^[0-9\.]+$' | head -1)
# v6: $(dig "${domain}" +short AAAA | grep -E '^[0-9a-f\:\.]+$' | head -1)
if [ "${newip}" != "${lastip}" ]
then
if [ -n "${lastip}" ]
then
# reconnect here
fi
lastip="${newip}"
fi
sleep 60
done
或者呢
用 openvpn 之类的比较笨重的东西让他给你做。
Baymaxbowen
288 天前
win11 环境重连都不行,必须重新编辑一下 conf 文件
haffner
288 天前
PersistentKeepalive = 25
一直用得挺好啊,无需手动断开重连,还是说我理解错楼主想表达的意思了?
gaju
288 天前
@maybeonly 鄙人写不出这样的脚本,就写了个定时每晚重启,稳定运行半年了。
lcdtyph
288 天前
linux 下 wireguard-tools 里有一个 reresolve-dns.sh 脚本就是用来动态更新域名 endpoint 的,你可以把它加在 crontab 里定时运行就行了,唯一参数是 wireguard interface 对应的配置文件
macOS 下也可以用这个脚本,但是可能得改改,我没在 mac 上用过

如果找不到的话可以直接去官方 repo 下载 https://git.zx2c4.com/wireguard-tools/tree/contrib/reresolve-dns/reresolve-dns.sh
里面还有一些别的很趁手的脚本

windows 下我就不知道了
8675bc86
288 天前
@lcdtyph 嗯,估计只能这么搞了。
esile
288 天前
@haffner ddns 这种不行,必须断开重连才能解析到新 ip 上面去的
yuchenr
288 天前
用 networkmanager 呢
yuchenr
288 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/972017

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX