Guide
18 min readAug 11, 2026

Homelab Behind CGNAT: Remote Access & Public Services

Reach a homelab behind CGNAT, choose private access or a public entry point, map the ports you need, and verify the complete connection path.

Quick Answer

A homelab still works behind CGNAT, but your ISP’s shared IPv4 blocks unsolicited inbound traffic before it reaches your router. Use a private mesh connection for your own devices. For public websites, game servers, or several services, create an outbound tunnel to a VPS with a public IP. If one or 2–15 incoming ports are enough, use a VPN that explicitly supports port forwarding.

Homelab behind CGNAT: what actually breaks

CGNAT changes the public edge of your network, not the homelab itself. Separate what already works from the single path that needs replacing.

Local services keep working

Proxmox, Home Assistant, NAS shares, dashboards, containers, and backups remain reachable on your LAN. CGNAT does not change local addressing.

Outbound traffic keeps working

Updates, DNS, cloud backups, and an outbound WireGuard or reverse tunnel can cross CGNAT because the connection starts inside your network.

New inbound sessions stop upstream

A router port-forward rule cannot control the ISP’s shared NAT. Public users need a new reachable entry point that sends traffic back through your outbound tunnel.

Three checks, one answer

How to check whether your homelab is behind CGNAT

Confirm the upstream path before changing firewall rules or buying a service. A mismatch tells you where normal router port forwarding stops being enough.

1

Read the router WAN IPv4

Open the router status page and copy its WAN, Internet, or upstream IPv4 address. Ignore the homelab device’s private LAN address.

2

Read the public IPv4

Use NAT Checker from the same connection and note the IPv4 seen by the internet. Disconnect any privacy VPN first.

3

Compare and classify the path

Matching public addresses usually mean direct router NAT. A 100.64.0.0/10 WAN address strongly signals CGNAT. Different addresses mean upstream NAT; rule out a second router.

Follow the complete CGNAT check

Choose private remote access or a public homelab

The right solution depends on who must connect and how many protocols your stack exposes. Start with the smallest public surface that delivers the result.

Your goalBest entry pointPort modelBest for
Private homelab remote accessPrivate mesh connectionNo public portsAdmin panels, NAS, SSH, RDP, Home Assistant
One public serviceProton VPN port forwardingOne assigned incoming portA single configurable TCP or UDP listener
A few public servicesPureVPN port forwarding2–15 selected portsSeveral known application and game ports
Public homelab or changing stackVPS plus outbound tunnelFull TCP/UDP firewall controlWebsites, reverse proxy, many services, stable endpoint

Best main solution: a VPS gateway for homelab CGNAT

A small public server gives the homelab a stable front door. Your home node starts an encrypted tunnel outward, the VPS accepts internet traffic, and firewall or reverse-proxy rules send each service through that tunnel.

Remote user
VPS public IP
Outbound tunnel
Homelab service
Best all-round gateway
New users get $300

Vultr

Vultr supplies a public IPv4, root access, and an inbound firewall, so one small instance can terminate WireGuard and route a reverse proxy, game server, or any custom TCP/UDP service. The benefit is one stable public entry for a stack that can grow without changing products. Vultr’s provisioning documentation confirms public IPv4 is enabled by default and firewall groups can filter incoming traffic.

Best APAC route option

DMIT

DMIT combines full root access with routes built around Los Angeles, Hong Kong, and Tokyo, which makes the same VPS gateway pattern attractive when homelab users or services sit around Asia-Pacific. DMIT lists VPN, proxy, and relay nodes as supported workloads and publishes a full-refund window for qualifying new VMs used for no more than three days and 30 GB.

VPN port forwarding for a small homelab

A port-forwarding VPN is a compact alternative when an application can listen on the port assigned by the provider. Match the product to the number of incoming ports rather than buying a generic VPN plan.

Best for exactly one port

Proton VPN

Proton VPN assigns one incoming port and carries it through the encrypted tunnel, so a configurable app can become reachable without changing the ISP connection. That is the cleanest value when one listener is the whole job. Proton documents the supported P2P servers, platforms, assigned-port workflow, and 30-day refund window.

Only pick for 2–15 ports

PureVPN

PureVPN lets you choose several incoming mappings instead of redesigning a homelab around one port. That advantage keeps a small game server, media service, and management endpoint on separate ports while crossing CGNAT through one subscription. Its official add-on guide documents up to 15 selected ports and its refund page publishes a 31-day guarantee.

How to set up a home server with CGNAT

The configuration changes by tunnel software, but the connection logic stays the same. Build it in this order so every failure has one obvious boundary.

  1. 1

    Confirm CGNAT and record the target service

    Compare WAN and public IPv4 addresses. On the homelab, record the service’s private IP, listening port, and TCP or UDP protocol.

  2. 2

    Classify the audience and port count

    Keep admin-only services private. For public access, choose one VPN port, 2–15 VPN ports, or a VPS gateway with full firewall control.

  3. 3

    Create an outbound encrypted tunnel

    Connect the home node to the VPN exit or VPS using the provider app, WireGuard, or a maintained reverse-tunnel service. Enable automatic restart.

  4. 4

    Map the public listener to the homelab service

    Match protocol and port at the public gateway, tunnel rule, host firewall, container boundary, and application listener. Use a reverse proxy for multiple HTTP services.

  5. 5

    Test from outside and save the result

    Connect from mobile data or another network, confirm the service response, then record the public hostname, port, protocol, and renewal or reconnect behavior.

Verify every hop before opening more ports

A public port is useful only when every hop behind it is alive. Test from the service outward, then make one external connection.

App listening locally

Host firewall allows it

Tunnel mapping is active

Public port is allowed

External client connects

Troubleshoot a port that still looks closed

Homelab CGNAT troubleshooting by symptom

SymptomCheck firstMost useful next move
Service fails on the LANLocal IP, listener, container bind, application logFix the service before testing any public path.
Public test times outVPS/VPN listener, public firewall, tunnel statusConfirm the gateway receives packets, then follow the mapping inward.
Connection is refusedProtocol, exact port, and active application listenerStart the service or correct the destination port.
It breaks after reconnectChanged VPN port, tunnel service, dynamic DNS, startup orderAutomate tunnel restart and update mappings when the assigned port changes.
Remote access is slowDirect vs relayed path, VPS region, home upload, MTUMove the gateway closer, tune MTU, and measure the home uplink separately.

Publish the service, not the whole homelab

  • Allow only required TCP or UDP ports at the public gateway and host firewall.
  • Keep hypervisors, router panels, databases, and storage administration on private remote access.
  • Put public web apps behind TLS and strong authentication; add MFA where the application supports it.
  • Patch the gateway and home service, protect SSH with keys, and review logs for repeated probes.

Need the full CGNAT method comparison?

Compare public IPv4, IPv6, mesh access, VPN port forwarding, and VPS routes in one guide.

Homelab CGNAT questions

Official sources

Feature and network claims on this page were checked against standards and provider documentation.

Share this article