forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    查看: 1665|回复: 4

    为什么在路由器上使用wireguard时需要配置PersistentKeepalive参数

    [复制链接]

    76

    主题

    2144

    帖子

    9631

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    9631

    官方人员

    发表于 2022-6-8 16:24:07 | 显示全部楼层 |阅读模式
    最近遇到几个客户反馈wireguard的使用问题,有一个配置如下(敏感内容使用*号替代)
    1. [Interface]
    2. PrivateKey = ****************
    3. Address = *******************
    4. MTU = 1420
    5. DNS = *******************

    6. [Peer]
    7. PresharedKey = *******************
    8. PublicKey = *******************
    9. AllowedIPs = 0.0.0.0/0, ::/0
    10. Endpoint = *******************
    11. PersistentKeepalive = 0
    复制代码

    以上配置在windows环境下可以正常使用,但是将配置文件上传到路由器后无法正确建立连接,非常奇怪。
    后续经测试发现,如果将PersistentKeepalive参数设置为非零值即可正确建立连接。

    PersistentKeepalive参数的作用究竟是什么?官网解释如下

    简单来说,PersistentKeepalive是为了保证nat映射的有效性,在路由器中,如果nat映射失效,来自WAN口的数据将会被防火墙拒绝,从而导致wireguard无法正确建立连接,windows上不存在nat映射表,所以即使PersistentKeepalive设置为0 也可以正常建立连接
    路由器的nat映射表失效时间一般是30S,因此PersistentKeepalive一般设置为25,如果你的路由器nat映射表失效时间是10S,那么你需要根据实际情况调整PersistentKeepalive的值。

    了解了问题原因,解决起来就简单了,解决方法有二
    1. 在路由器上使用wireguard时,根据nat映射表失效时间强制添加PersistentKeepalive参数
    2. 在路由器WAN侧防火墙上打开wireguard的监听端口,特别注意,是客户端的监听端口,不是服务端,客户端的监听端一般是随机,可以使用wg命令查看,如图:

    将上图的端口在防火墙配置中打开后也可稳定建立连接





    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    1

    主题

    15

    帖子

    210

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    210

    官方人员

    发表于 2022-6-8 16:29:41 | 显示全部楼层
    路由器上设置往往比电脑设置多一点要求。这个wireguard开始设计的时候就没有考虑路由器。
    回复

    使用道具 举报

    2

    主题

    15

    帖子

    73

    积分

    注册会员

    Rank: 2

    积分
    73
    发表于 2023-1-12 00:22:44 | 显示全部楼层
    本帖最后由 parabear 于 2023-1-12 01:17 编辑

    学习了!这个太好了,一直用wireguard差不多两个月了,最近突然连不上了,4个wg设置都不行,大概是什么情况?会不会被墙了?下面的是一个wg配置的log。谢谢

    Wed Jan 11 12:14:08 2023 daemon.notice netifd: Interface 'wgclient' is now downWed Jan 11 12:14:08 2023 user.notice mwan3[11244]: Execute ifdown event on interface wgclient (unknown)Wed Jan 11 12:14:08 2023 user.notice firewall: Reloading firewall due to ifdown of wgclient ()Wed Jan 11 12:14:44 2023 daemon.notice netifd: Interface 'wgclient' is setting up nowWed Jan 11 12:14:49 2023 user.notice wireguard-debug: USER=root ifname=wgclient ACTION=REKEY-TIMEOUT SHLVL=1 HOME=/ HOTPLUG_TYPE=wireguard LOGNAME=root DEVICENAME= TERM=linux SUBSYSTEM=wireguard PATH=/usr/sbin:/usr/bin:/sbin:/bin PWD=/Wed Jan 11 12:14:50 2023 user.notice wgclient-up: env value:SHLVL=2 PWD=/Wed Jan 11 12:14:55 2023 user.notice wireguard-debug: USER=root ifname=wgclient ACTION=REKEY-TIMEOUT SHLVL=1 HOME=/ HOTPLUG_TYPE=wireguard LOGNAME=root DEVICENAME= TERM=linux SUBSYSTEM=wireguard PATH=/usr/sbin:/usr/bin:/sbin:/bin PWD=/Wed Jan 11 12:15:00 2023 user.notice wireguard-debug: USER=root ifname=wgclient ACTION=REKEY-TIMEOUT SHLVL=1 HOME=/ HOTPLUG_TYPE=wireguard LOGNAME=root DEVICENAME= TERM=linux SUBSYSTEM=wireguard PATH=/usr/sbin:/usr/bin:/sbin:/bin PWD=/Wed Jan 11 12:15:06 2023 user.notice wireguard-debug: USER=root ifname=wgclient ACTION=REKEY-TIMEOUT SHLVL=1 HOME=/ HOTPLUG_TYPE=wireguard LOGNAME=root DEVICENAME= TERM=linux SUBSYSTEM=wireguard PATH=/usr/sbin:/usr/bin:/sbin:/bin PWD=/Wed Jan 11 12:15:11 2023 user.notice wireguard-debug: USER=root ifname=wgclient ACTION=REKEY-TIMEOUT SHLVL=1 HOME=/ HOTPLUG_TYPE=wireguard LOGNAME=root DEVICENAME= TERM=linux SUBSYSTEM=wireguard PATH=/usr/sbin:/usr/bin:/sbin:/bin PWD=/Wed Jan 11 12:15:16 2023 user.notice wireguard-debug: USER=root ifname=wgclient ACTION=REKEY-TIMEOUT SHLVL=1 HOME=/ HOTPLUG_TYPE=wireguard LOGNAME=root DEVICENAME= TERM=linux SUBSYSTEM=wireguard PATH=/usr/sbin:/usr/bin:/sbin:/bin PWD=/
    回复

    使用道具 举报

    2

    主题

    15

    帖子

    73

    积分

    注册会员

    Rank: 2

    积分
    73
    发表于 2023-1-12 01:07:23 | 显示全部楼层
    MT2500和AXT1800路由器nat映射表失效时间是多少?
    回复

    使用道具 举报

    76

    主题

    2144

    帖子

    9631

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    9631

    官方人员

     楼主| 发表于 2023-1-12 09:17:13 | 显示全部楼层
    parabear 发表于 2023-1-12 01:07
    MT2500和AXT1800路由器nat映射表失效时间是多少?

    一般都是30S
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|gl-inet.cn ( 粤ICP备18130956号 )

    GMT+8, 2024-4-26 06:28 , Processed in 0.023494 second(s), 26 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表