Windows-Wireguard-Watchdog,Wireguard服务端DDNS客户端自动重连

Windows-Wireguard-Watchdog

背景:Wireguard服务端是动态IP,Wireguard客户端配置的服务端地址是域名 Endpoint = xx.xxx.com:51820,写的DDNS脚本检测到IP变更会自动更新域名解析。每次宽带重拨IP就会变更,由于客户端重连使用的不是域名而是第一次连接时解析的域名对应的IP地址,导致一直连接不上服务端。

使用此PowerShell脚本,可以让你的Wireguard保持稳定的连接,服务端ip变更客户端仍可自动重新连接。

源码地址

https://gitee.com/dcssn_weiangongsi/windows-wireguard-watchdog

脚本流程

脚本主要执行了一下的步骤:

  1. 解析配置文件读取连接服务端的域名。
  2. 查询DNS服务器,获取A记录的IP地址。
  3. 循环获取查询DNS,如果IP变更,把原配置文件的Endpoint替换成新的IP,生成新的配置文件,然后重新启动Wireguard服务。
  4. 如果查询DNS服务器失3次,就停止Wireguard服务(防止因为Wireguard连接不上服务端导致查询DNS失败),然后再次执行第3步。

为什么要用新的IP生成配置文件?

Wireguard不会用我们配置的DNS获取IP,我们通过配置的DNS检测到IP变更,但是Wireguard解析域名可能检测不到变化,试过清除本地DNSClient缓存,不起作用,重启Wireguard服务他还是用原来的IP,导致连接失败。

安装步骤

让脚本以Windows服务方式运行 :

  1. 修改脚本中的Wireguard 以下几项配置

    # wireguard 配置文件
    $WireguardConfigFilePath = "C:\Users\admin\Desktop\company.conf" 
    # 检查IP变更时间间隔,秒
    $IntervalSeconds = 10
    # DNS服务器地址,不设置会从 wireguard 配置文件中读取DNS参数。我的域名是阿里的,39.96.153.52是dns9.hichina.com的ip,用这个IP能立即检测到域名解析的ip变更
    $DNS = "39.96.153.52" 
    
  2. 用powershell终端管理员执行

    .\nssm.exe install MyWireGuardService "powershell.exe" "-ExecutionPolicy Bypass -File C:\Users\admin\Desktop\keep_wireguard_alive.ps1"
    

    替换 C:\Users\admin\Desktop\keep_wireguard_alive.ps1 为你自己的脚本文件路径。

  3. 启动服务

    .\nssm.exe start MyWireGuardService
    

    现在脚本就作为Windows服务运行了,你可以打开Wireguard的UI查看日志,任务管理器查看Wireguard的进程。

关闭脚本服务

停止服务

.\nssm.exe stop MyWireGuardService

移除服务

.\nssm.exe remove MyWireGuardService

停止Wireguard服务

wireguard /uninstalltunnelservice companytemp

替换company为你的Wireguard 配置文件名(company.conf不包含扩展名),或者任务管理器停止服务

Wireguard客户端配置例子


[Interface]
PrivateKey = WCCQic09ih+u/Xr1v4FXDtXKpzgx9JLr59hRo2hX3E=
Address = 10.0.8.3/24
DNS = 114.114.114.114


[Peer]
PublicKey = H1QI7lFziAopeQfMm61ZMSNvxJeus1KGXZMKw/uoCY=
PresharedKey = l/B0jMWfDqpYD2UrK1H0uNlv4/qpthtPtLvt/QIDU8=
AllowedIPs = 0.0.0.0/0,::/0
PersistentKeepalive = 25
Endpoint = xxx.yyy.com:51820

创作不易,欢迎打赏

在这里插入图片描述
在这里插入图片描述
1分钱就可以
防火布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/443368.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VSCODE解决git合并过程中的冲突问题;error: failed to push some refs to

1:异常现象 推送有冲突的git修改到远端的时候,会有如下提示 git.exe push --progress “origin” master:master To http://gitlab.xxx.com/dujunqiu/test.git ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘…

00在linux环境下搭建stm32开发环境

文章目录 前言一、环境搭建1.arm-none-eabi-gcc2.openocd 三、创建stm32标准库工程1.创建工程目录2.修改stm32_flash.ld文件3.写makefile文件4.修改core_cm3.c5.写main函数并下载到板子上 最后 前言 我在那天终于说服自己将系统换成了linux系统了,当换成了linux系统…

博士推荐 | 薄膜、涂层技术和液晶材料/器件领域的博士

编辑 / 木子 审核 / 朝阳 伟骅英才 伟骅英才致力于以大数据、区块链、AI人工智能等前沿技术打造开放的人力资本生态,用科技解决职业领域问题,提升行业数字化服务水平,提供创新型的产业与人才一体化服务的人力资源解决方案和示范平台&#x…

tomcat通过service.bat install方式安装,内存不够了怎么办?

1.通过service.bat安装 安装命令再tomcat的bin目录下,执行命令 .\service.bat install Apache Tomcat 8.5 Tomcat8之后就会在服务里面有个tomcat服务 2. 如何增加tomcat内存呢? 通过service.bat安装肯定再service.bat中配置啊。 再service.bat文件中…

蓝桥杯python常用内置函数

一、 abs() #返回数字的绝对值 例: 二、 all() #判断给定的可迭代参数中的所有元素是否都为True,若是则返回True,反之返回False 例: 三、 any() #判断给定的可迭代参数是否都为False,全为False则返回False&am…

论文的引用书写方法

前置操作 1、全选文献 2、在开始选项卡 段落功能区 选择编号功能 3、设置编号格式 [1] 论文的引用 1、光标放在需要引用论文的地方 2、选择引用选项卡 点击交叉引用 3、引用类型为编号项 引用内容为段落编号 选择需要的第几条参考文献

应对高并发的软件架构之道

在去年年终总结的时候,我提出了这样的困惑,究竟什么是真正的技术能力,是对于各种底层技术的钻研吗?钻研是好事,但实践下来,深入钻研并不在实际工作中有用,且钻研的越深,忘得越快&…

Android开发中View绘制流程、局限性及优化方案分析

一、引言 在Android开发中,View的绘制流程是一个核心概念。了解和掌握View的绘制流程,可以帮助我们编写出更高效、更流畅的UI组件和自定义View。然而,View的绘制流程也存在一定的局限性,如果不加以优化,可能会导致应用…

美食网页成品 HTML美食网页设计制作 前端美食网页开发 热门美食特产网页制作中国传统特色小吃-臭豆腐 6页面 美食主题 HTML5 带设计说明

美食网页成品 HTML美食网页设计制作 前端美食网页开发 热门美食特产网页制作 中国传统特色小吃-臭豆腐 6页面 美食主题 HTML5 带设计说明 http://www.yuanle.net.cn/anli/30/4138.html

【AI视野·今日NLP 自然语言处理论文速览 第八十四期】Thu, 7 Mar 2024

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 7 Mar 2024 Totally 52 papers 👉上期速览✈更多精彩请移步主页 Daily Computation and Language Papers The Heuristic Core: Understanding Subnetwork Generalization in Pretrained Language Models Authors Adith…

一招鲜吃遍天之Haproxy集群

四层: LVS:Linux Virtual Server Nginx: HAProxy:High Availability Proxy 七层: HAProxy Nginx 硬件: F5 F5 | 多云安全和应用交付 Netscaler NetScaler: Application Delivery at Scale Array 北京华耀科技…

最新:Selenium操作已经打开的Chrome(免登录)

最近重新尝试了一下,之前写的博客内容。重新捋了一下思路。 目的就是,selenium在需要登录的网站面前,可能就显得有些乏力,因此是不是有一种东西,可以操作它打开我们之前打开过的网站,这样就不用登录了。 …

北漂程序员整理阿里云服务器地域机房所在城市表

2024年最新阿里云服务器地域分布表,地域指数据中心所在的地理区域,通常按照数据中心所在的城市划分,例如华北2(北京)地域表示数据中心所在的城市是北京。阿里云地域分为四部分即中国、亚太其他国家、欧洲与美洲和中东&…

创建数据表

Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 如果要进行数据表的创建 create table 表名称 (列名称 类型 [DEFAULT 默认值 ] ,列名称 类型 [DEFAULT 默认值 ] ,列名称 类型 [DEFAULT 默认值 ] ,...列名称 类型 [DEFAULT 默认值 ] )…

鸿蒙应用开发学习:使用视频播放(Video)组件播放视频和音频文件

一、前言 播放音视频是手机的重要功能之一,近期我学习了在鸿蒙系统应用开发中实现音视频的播放功能,应用中使用到了视频播放(Video)组件,ohos.file.picker(选择器)。特撰此文分享一下我的学习经历。 二、参考资料 本…

详解Linux例行性工作

例行性工作(计划任务) 场景: 生活中,我们有太多场景需要使用到闹钟,比如早上7点起床,下午4点开会,晚上8点购物,等等。再Linux系统里,我们同样也有类似的需求。比如我们…

创新企业成长模型:嘉绩咨询深化招商教育与系统策划

在当今企业发展与市场拓展的竞争激烈背景下,嘉绩咨询已凸显其在招商体系孵化领域的领先地位。集团不仅在招商教育、招商落地支持、陪跑孵化及渠道商学院搭建等业务领域提供全面的服务,同时构筑了与众不同的企业成长循环模型。 嘉绩咨询秉承其"教育策…

四、DMSP/OLS等夜间灯光数据贫困地区识别——相对误差相关折线图制作

一、前言 前文对于MPI和灯光指数拟合、误差分析,本文重点介绍地理加权分析,但是在此之前给大家介绍一下专业表格制作,其实专业的软件有很多像Orgin、棱镜等,到我们熟知的Excel,其实各有千秋,Excel入手容易…

软件杯 交通目标检测-行人车辆检测流量计数 - 软件杯

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…

mtk平台ATF介绍

1、链接地址 uboot ATF 2、工具链 ARM 64位平台需要aarch64工具链,可以在staging_dir/toolchain- aarch64_xxxxx中找到。另外dtc工具来为ATF编译.dts文件,一般在 Ubuntu中的device-tree-compiler包,编译后的u-boot/kernel源代码树中的脚本…