mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-07 05:09:18 -05:00
[GH-ISSUE #2749] iOS client connects, but any private site resource causes endless registering / no LAN access in Docker self-host setup #8995
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Mathdbn on GitHub (Mar 31, 2026).
Original GitHub issue: https://github.com/fosrl/pangolin/issues/2749
Describe the Bug
Summary
I am self-hosting Pangolin in Docker with the standard Pangolin-style architecture:
pangolingerbiltraefiknewtTraefik runs with:
network_mode: service:gerbilThe setup is hosted on Docker/Portainer on a single host.
Public access works:
But as soon as I assign any private site resource to the iOS client, the client stops working correctly.
Environment
1.16.21.10.480/tcp443/tcp51820/udp21820/udpNetworking layout
Docker host LAN IP:
192.168.1.99Example LAN resources tested:
192.168.1.254192.168.1.200Expected behavior
Actual behavior
If no private site resource is assigned:
No site connected)If I assign one private site resource:
RegisteringThis happens even after:
newtsite entirelyImportant observation
The problem is not tied to one single host.
I first suspected
192.168.1.254, but the same problem happens with another LAN target like192.168.1.200.So the pattern seems to be:
Logs
Pangolin
I repeatedly get logs like:
@Mathdbn commented on GitHub (Mar 31, 2026):
The issue was not related to open ports, but to the internal subnet used by Gerbil.
By default, Pangolin uses the subnet 100.89.137.0/20, which belongs to the CGNAT address space. While this range is intended to avoid conflicts with common private networks (192.168.x.x, 10.x.x.x, etc.), the documentation also states that you should change it if it conflicts with your network environment.
In my case, the VPN worked fine over Wi-Fi but failed on 4G/5G. This strongly suggests a routing conflict with the mobile network, which also relies on CGNAT. Since the ports (51820/udp and 21820/udp) were correctly opened and reachable, the issue was not network exposure but the internal tunnel addressing.
The fix was to update the Pangolin configuration (config.yml) in the gerbil section, replacing: subnet_group: "100.89.137.0/20"
with a non-conflicting private range: subnet_group: "10.250.0.0/16"
Final working configuration:
gerbil:
start_port: 51820
clients_start_port: 21820
base_endpoint: "xx.xx.comr"
subnet_group: "10.250.0.0/16"
block_size: 24
site_block_size: 30
Summary:
• The problem was caused by a subnet conflict in Pangolin’s internal VPN network.
• The fix is to change subnet_group in config.yml to a range that does not overlap with your environment.
• This resolves issues where the VPN works on Wi-Fi but fails on mobile networks.
@latiche commented on GitHub (Apr 14, 2026):
I have the same issue (client stuck on "Registering" when adding private resource)
I thought it would be a similar cause since I am also testing on LTE network with CGNAT so I updated the gerbil section as you did
Unfortunately, that was not enough to solve the issue for me
edit : I am having this issue : https://github.com/fosrl/olm/issues/108
For reference, if you change the subnet, you either have to recreate all sites / resources, or update database
here is what I did (docker) :