this post was submitted on 29 Nov 2024
144 points (98.0% liked)

Selfhosted

40734 readers
587 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 3 weeks ago (2 children)

It may since have been fixed, but the Android client didn't handle IP changes well in my experience. From my understanding, it only checks DNS when it initially connects, and so if the public IP changes the connection just stops working. This might be fine if the public ip changes infrequently or if you frequently connect and disconnect rather than leave the client always on, but not so much otherwise.

Tailscale (and headscale) handles this gracefully, and you also get the nice NAT traversal features so no need to worry about CGNATs which are becoming more common.

[–] [email protected] 2 points 3 weeks ago (2 children)

From my understanding, it only checks DNS when it initially connects, and so if the public IP changes the connection just stops working.

This is pretty standard TCP network behavior for long duration connections. The client queries dns for the IP address, opens a socket, and leaves it open as long as needed.

One thing that would help here is some kind of keepalive feature, like a client to server TCP connect or SYN, or better yet a higher level protocol signal. Check your client to see if there is some tunable keepalive. It may be set so something long like 1h.

[–] [email protected] 4 points 3 weeks ago
[–] [email protected] 3 points 3 weeks ago

Wireguard does have a KeepAlive option, but I found it didn't seem to help in practice.

Could be bugs with the client, which is pretty barebones.

[–] WhyJiffie 2 points 3 weeks ago

that's how it works on desktop too regarding DNS, but when it receives a response from a new IP, it should send future traffic there as I know