由于家里宽带的 ip 经常变动所以我 endpoint 写的是域名,这就导致了 Windows 和 Android 的客户端连接时间长了就连不上了,他们又不会自动重新链接,需要手动断开一次,很麻烦。
iOS 上我用的 surge 作为客户端就没问题,请问有没有什么办法可以解决?
1
XiLingHost 2022-06-30 09:06:23 +08:00 1
Windows 上我是靠计划任务实现的
写一个 ps1 脚本 ```powershell $profileName = "" $servicesName = "WireGuardTunnel`$$profileName" $log = wireguard.exe /dumplog | Select-String -Pattern $profileName | Select-Object -Last 10 | Select-String -Pattern retrying if ($log.Length -gt 3) { Write-Output $log Stop-Service $servicesName Start-Sleep -Seconds 5 Start-Service $servicesName } ``` 然后让它 5 分钟跑一次 |
2
villivateur 2022-06-30 09:07:58 +08:00 5
|
3
0o0O0o0O0o 2022-06-30 09:08:12 +08:00 via iPhone
Linux 上配置 PersistentKeepalive 是可以自动重连的
|
4
y830CAa5nink4rUQ 2022-06-30 09:13:37 +08:00
@0o0O0o0O0o 我发现 PersistentKeepalive 无效,我最终的方法是弄个 cronjob 每隔几分钟 ping 一次服务器。
|
5
0o0O0o0O0o 2022-06-30 09:15:48 +08:00 via iPhone
|
6
madao2015 2022-06-30 09:21:18 +08:00
只能检测 ddns 变化然后定时重启了
|
7
Awes0me OP |
8
bjfane 2022-06-30 09:58:12 +08:00
PersistentKeepalive 好使 也没断过,想用就用,但是没发现 ip 变化,ip 变化帝都好像是大概两周 1 次,还好,也配置了 ddns ,
|
9
zhixiao 2022-06-30 10:00:05 +08:00
我这 ip 已经快 1 个月没变了。。。其实 ip 变化的也不频繁,断了手动连一下就是了
|
11
Stendan 2022-06-30 10:46:43 +08:00
```
git clone https://git.zx2c4.com/wireguard-tools /usr/share/wireguard-tools ``` ``` # nano /etc/systemd/system/wireguard_reresolve-dns.service [Unit] Description=Reresolve DNS of all WireGuard endpoints Wants=network-online.target After=network-online.target [Service] Type=oneshot ExecStart=/bin/sh -c 'for i in /etc/wireguard/*.conf; do /usr/share/wireguard-tools/contrib/reresolve-dns/reresolve-dns.sh "$i"; done' ``` ``` # nano /etc/systemd/system/wireguard_reresolve-dns.timer [Unit] Description=Periodically reresolve DNS of all WireGuard endpoints [Timer] OnCalendar=*:*:0/30 [Install] WantedBy=timers.target ``` ``` systemctl enable wireguard_reresolve-dns.service wireguard_reresolve-dns.timer --now ``` |
13
billytom 2022-06-30 11:19:26 +08:00 via iPhone
@Stendan 请收下我的膝盖,正要找这个。顺便向大神请教,譬如我有个服务器 A ,装的 WG 算主节点吧,还有公司电脑 1 ,家中 ooenwrt 软路由及下面 nat 的几台设备,能否通过 wg 把他们整成个大内网类似 SD-Wan ,我之前试过了,访问服务器 A 没问题,访问 1 和 2 都没问题,但 2 下的 nat 设备就无法访问
|
14
Stendan 2022-06-30 11:30:09 +08:00
@billytom noob 一枚~~ 你描述的可能是这个问题?
运行在 NAT 路由器后面的内网服务器,默认是不能被外部网络直接访问的。例如,假设我们有一个 HTTP 服务运行在内网机器 192.168.1.2 ,NAT 路由器的地址是 192.168.1.1 ,并通过另一张有公网 IP 123.123.123.123 的网卡连接到了外部网络。要使得外网机器可以访问 192.168.1.2 的服务,需要执行: ``` # redirect http traffic to 192.168.1.2: $> iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j DNAT --to 192.168.1.2 ``` 然后,就可以通过公网 IP 123.123.123.123 的 80 端口访问 192.168.1.2 的 HTTP 服务了。 |
15
Stendan 2022-06-30 11:30:51 +08:00
|
17
m4d3bug 2022-06-30 13:06:51 +08:00 via Android
好奇楼主的为什么下载量大就频繁了,full mesh 组网?
|
19
heiher 2022-06-30 20:20:56 +08:00
Linux 上内核实现的 wireguard ,内核 API 只接受 AF_INET 或 AF_INET6 的 endpoint 地址,所以域名是在用户态由 wg 配置工具在配置时刻解析的,那么 DDNS 的话,解析记录更新内核也无法感知。还需要用户态的 daemon 监测并更新配置。
|
20
hanguofu 2022-06-30 22:58:39 +08:00
顺便问问: 有没有检查本地 IP 地址变化的 LINUX 脚本啊 ? 谢谢~
|
21
billytom 2022-07-01 00:00:42 +08:00
|
22
nxuu 2022-12-13 22:06:15 +08:00
家宽的公网 ip 变化 你在光猫设置 一般是一周变化一次。如果是用路由器 就根据路由器的设置来变化了。不会频繁变化的。
|
23
kenvix 2023-08-13 20:54:53 +08:00 1
补一个 openwrt 的,直接在 luci 面板的计划任务里面添加:
* * * * * /usr/bin/wireguard_watchdog |
24
jueti 2023-08-23 11:52:34 +08:00
广东电信是两天变一次 IP
|
25
TashinV 19 天前 via iPhone
翻一下,请问 OP 这种 ip 地址变化,但是 wireguard 客户端 endpotin 又是写的域名,这样的情况,使用 surge 作为 wireguard 客户端,哪怕 ip 地址变化了也可以使用域名连接上吗?
|