使用DDNS搭建Wireguard服务器的一个小问题

使用DDNS搭建Wireguard服务器的一个小问题

最近使用家里闲置的树莓派搭建了一个Wireguard服务器。
家里电信宽带有动态公网IP,阿里云买个冷门域名也不需要多少钱,在树莓派上用python写个小脚本用来实现DDNS(网上攻略一大堆)。
搭建好服务器后在单位电脑和笔记本上还有家里电脑都装上Wireguard客户端,组建一个简单的VPN网络运行成功。实现不管在哪都能用笔记本远程控制单位和家里的电脑。

遇到的问题

因为用的动态域名搭建的服务器,家里的公网IP只要一变更,客户端就连不上了,必须得手动重启一下,虽然IP变更不是很频繁,但是也颇为麻烦。

解决方案

因为所有的Wireguard客户端用的都是Windows系统,想了一个比较方便的办法。
在所有客户端写一个批处理脚本比对阿里云上的域名解析地址和Wireguard中Endpoint地址,如果两个地址不一样就重启Wireguard Tunnel服务。实现自动重启Wireguard功能。
运行脚本后发现完美解决问题,只要把脚本加入开机启动让他自动运行就行了。

批处理脚本代码

@echo off
:start
for /f "skip=6 tokens=2" %%i in ('wg show wg0') do (
set tmp1=%%i
goto :next1
)
:next1
for /f "delims=:" %%i in ("%tmp1%") do (set ip1=%%i)
for /f "skip=45 tokens=2" %%i in ('aliyun alidns DescribeDomainRecords --DomainName aaa.com ') do (
set tmp2=%%i
goto next2
)
:next2
for /f delims^=^" %%i in ("%tmp2%") do (set ip2=%%i)
if %ip1% neq %ip2% (net stop "WireGuard Tunnel: wg0" && net start "WireGuard Tunnel: wg0")
timeout /T 10 /NOBREAK
goto start

脚本中用的aliyun命令行控制台直接在阿里云官网下,主要用来获取域名解析信息,因为会获取到很多不需要的东西,所以需要处理提取一下。
wg0网卡换成客户端相应的网卡名称就行。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值