Skip to content

fix: WireGuard handshake (51820, keepalive, IPv6 off) - #25

Open
dfosterj wants to merge 4 commits into
ProtonVPN:stablefrom
dfosterj:fix/wireguard-handshake
Open

fix: WireGuard handshake (51820, keepalive, IPv6 off)#25
dfosterj wants to merge 4 commits into
ProtonVPN:stablefrom
dfosterj:fix/wireguard-handshake

Conversation

@dfosterj

Copy link
Copy Markdown

Summary

  • Prefer WireGuard UDP 51820 when the server advertises it. udp[0] is 443; NetworkManager marks proton0 activated with no handshake, Local Agent times out, and the GTK app cycles.
  • Set persistent-keepalive 25 to match Proton’s exported nmcli profiles.
  • Disable IPv6 on the app-built NM profile. IPv6 DNS 2a07:b944::2:1 follows the kill-switch dummy default and blackholes Local Agent.

Verified on Arch / Proton VPN Flatpak 4.18.1 (python-proton-vpn-api-core 5.6.10):

  • Exported can (…:51820, IPv6 off, keepalive 25) pings 10.2.0.1.
  • App profile (…:443 + IPv6) is 100% loss to 10.2.0.1 while NM shows activated.
  • A runtime inject of these three changes made the Flatpak connect.

This belongs here, not in proton-vpn-gtk-app (UI only) or Flathub packaging.

Test plan

  • Connect WireGuard in the Linux app; nmcli connection show "ProtonVPN …" shows endpoint :51820, ipv6.method: disabled, keepalive 25
  • ping -c 2 -W 2 10.2.0.1 replies while Connected
  • Kill switch Off and On both reach Connected (no 10s Timeout loop)
  • Server that does not advertise 51820 still uses udp[0]

Made with Cursor

dfosterj and others added 4 commits September 11, 2026 16:03
NM activates proton0 with no handshake when the peer is :443.
Prefer 51820 when the server list includes it.

Co-authored-by: Cursor <cursoragent@cursor.com>
Match exported Proton nmcli profiles so NAT mappings stay open.

Co-authored-by: Cursor <cursoragent@cursor.com>
IPv6 DNS 2a07:b944::2:1 is routed via the kill-switch dummy.
Match working exported profiles that leave IPv6 off.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant