Document gluetun unhealthy caused by stale WireGuard endpoint IP

Note re-resolving provider endpoints and PersistentKeepalive when the
tunnel sets up but healthchecks fail with DNS i/o timeouts.
This commit is contained in:
tim 2026-07-22 11:15:35 -07:00
parent 90f3cf62c5
commit b55754ee49
2 changed files with 7 additions and 1 deletions

View file

@ -80,7 +80,8 @@ Images are from **GHCR** (`ghcr.io/all-hands-ai/...`); the old `docker.all-hands
### Manual config (once) ### Manual config (once)
**qBittorrent** — temp password in `docker logs qbittorrent`; user `admin`. **qBittorrent** — temp password in `docker logs qbittorrent`; user `admin`.
Advanced → Network interface: `tun0`. Advanced → Network interface: `tun0`.
Depends on **gluetun** healthy. If gluetun is unhealthy with `lookup … i/o timeout`, WireGuard is not passing traffic — usually a **stale Endpoint IP** in `wireguard/wg0.conf`. Re-resolve the provider hostname (`dig +short …`), update `Endpoint`, add `PersistentKeepalive = 25`, then `docker compose up -d gluetun --force-recreate`.
Default save path + categories (WebUI): Default save path + categories (WebUI):

View file

@ -23,5 +23,10 @@
# something like `Endpoint = se3.vpn.example.org:51820`, resolve it first: # something like `Endpoint = se3.vpn.example.org:51820`, resolve it first:
# dig +short se3.vpn.example.org # dig +short se3.vpn.example.org
# and paste the IP back into the file. # and paste the IP back into the file.
# Re-check if gluetun goes unhealthy with "i/o timeout" — provider DNS
# may have moved to a new IP (common with multi-A hostnames).
#
# 3. Optional but recommended behind NAT:
# PersistentKeepalive = 25
# #
# Keep AllowedIPs = 0.0.0.0/0 as-is; gluetun handles the routing itself. # Keep AllowedIPs = 0.0.0.0/0 as-is; gluetun handles the routing itself.