WireGuard 能通过命令行控制吗?如何确保 wg 常时保持连接?

37 天前
 LeeReamond

目前使用 WG 组了个异地网。

遇到的问题是,WG 架在 Windows 机器上,windows 为了使用方便装的都是企业版而不是 LTSC 版,7*24 开机的话隔一段时间就会自动更新,目前已经遇到过一两次是因为自动更新重启后,wg 第一时间不能自动组网,导致连接在重启后没能恢复的情况。

想实现的效果是写个第三方程序监控 WG 网卡连接的状态,如果没连接的话就发送打开连接的命令这样?不知道有没有办法实现

1216 次点击
所在节点    问与答
13 条回复
moefishtang
37 天前
我这里好像安装完启用配置文件后开机就自动连接了
我是使用官方提供的 MSI 安装包安装的
https://www.wireguard.com/install/
moefishtang
37 天前
@moefishtang Linux 的话用 systemctl enable wg-quick@你的配置文件名 就可以,很方便
dcsuibian
37 天前
Windows 开启 Hyper-V ,然后里面装个 Debian ,上面再装个 WireGuard 。我是这么干的。
thinkm
37 天前
我每次开机 WG 都是自动连接
LeeReamond
37 天前
@thinkm 大部分时候是这个行为,但有时会故障,推测是因为当时网络处在非连接状态,WG 似乎不会守护
PhaSelEza
37 天前
Wireguard 的 Peer 有保活选项,比如:

PersistentKeepalive = 20
ysc3839
37 天前
@moefishtang Linux 系统如果用的是 NetworkManager ,推荐直接在 NetworkManager 里面加个 WireGuard 配置。
MADBOB
37 天前
Win 用 tunsafe 呢?
LeeReamond
37 天前
@PhaSelEza 他这个看起来是调默认握手间隔的。如果连接在断开状态,这个有用?
PhaSelEza
37 天前
@LeeReamond 不知和你的场景是否一致:WireGuard 一段时间无流量会断开,此时如果客户端没有公网地址,则服务器无法主动访问客户端,要等客户端产生流量、建立新的链接,才能双向通讯。

Linux 下 wg-quick 是不会主动建立链接的,直到产生客户端到服务端的流量。

因此,我在客户端配置了“PersistentKeepalive = 20”这个选项,时刻保证链接存活、服务器能够随时访问客户端。
lysShub
37 天前
把自动更新关了不就行了
COW
37 天前
@LeeReamond 用 nssm 套一层呢,可以启动前前置命令检查网络。
LeeReamond
36 天前
@PhaSelEza 不是同一个场景,我也暂未遇到客户端无动作导致连接中断的情况,我的情况是服务端重启。

另外连接不会自动保活这个不像是现代软件的行为,传输层协议都有自动保活呢。

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

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

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

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

© 2021 V2EX