Yes, CGNAT can block inbound self-hosted access because your router does not control the public IPv4 address receiving the connection.
A port-forwarding rule only translates traffic that reaches the WAN interface of the router where the rule exists. Under carrier-grade NAT, the ISP places another translation layer upstream and shares one public IPv4 address across multiple customers, so unsolicited inbound packets stop before reaching the home router. The correct decision is to prove whether the router owns a public endpoint, then choose a real public address, native IPv6, outbound tunnel, relay, or overlay VPN instead of repeatedly editing a forward that cannot receive traffic.
Compare the Router WAN Address With the Public IPv4 Address
Open the home router’s status page and record its WAN IPv4 address. From a device on the same connection, compare that value with the address reported by an external public-IP service.
A CGNAT explainer for self-hosters notes that a router may receive an address from the shared 100.64.0.0/10 range while the outside internet sees a different shared public address. Private ranges such as 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 also indicate another NAT layer.
If the WAN and public addresses match, ordinary CGNAT is less likely and the next test belongs in the forward, firewall, service, or return path. If they differ, identify whether the upstream layer is your own modem/router or an ISP-controlled network.
Understand Why the Home Router Forward Cannot See the Packet
A forward on the home router maps one external port on that router’s WAN address to an internal server. It cannot create a mapping on an upstream carrier router that the customer cannot configure.
A Super User self-hosting case shows a router with a 100.70.x.x WAN address and a different public address, leaving the web server unreachable despite local forwarding. The core problem is that the ISP owns the outer translation.
Do not respond by placing the NAS in a DMZ, enabling every UPnP mapping, or disabling the host firewall. Those changes widen exposure inside the home boundary but do not create a carrier-side inbound mapping.
Rule Out Double NAT You Can Control
Trace the physical path from the ISP modem or gateway to the router where the forwarding rule is configured. A provider gateway in router mode can create the same WAN/public mismatch as CGNAT, but you may be able to bridge it or forward through both devices.
A self-hosting guide explains that port forwarding works only when your router holds the public address. This is the architectural boundary that separates a local double-NAT repair from an ISP limitation.
If the upstream device is yours, place it in bridge or passthrough mode, forward the same narrow port through both layers, or move the public-facing service to the first router. If the upstream network is carrier-controlled, stop treating it as a configurable home gateway.
Test Whether Native IPv6 Provides a Reachable Alternative
Check whether the ISP delegates a global IPv6 prefix and whether the home server receives a stable global address. IPv6 can make the server directly addressable without IPv4 port translation, but the firewall must explicitly allow only the intended service.
Test the exact hostname and port from an external IPv6 network. A published AAAA record is not enough if the router blocks inbound IPv6, the prefix changes, or the application listens only on IPv4.
Use IPv6 only when DNS updates, firewall policy, TLS, application binding, and prefix changes are controlled. Do not assume “no NAT” means “no security boundary”; globally routable services still require least-privilege filtering and authentication.
Choose an Outbound Tunnel, Relay, or Overlay VPN When Needed
When a public address is unavailable, create a connection that starts outbound from the home network. A tunnel provider, VPS relay, or overlay VPN can maintain state through CGNAT and provide a reachable endpoint elsewhere.
A GL.iNet community discussion describes using a home-router client tunnel that connects to a VPS so the external server can reach the home network through an outbound tunnel rather than relying on a carrier-side forward.
Choose the method by workload: private file access usually fits an authenticated overlay VPN, public web apps may fit a controlled HTTPS tunnel or reverse proxy, and protocols requiring arbitrary inbound ports may need a VPS with explicit forwarding.
Verify the Replacement Path From Outside the Home
Test from mobile data or another external network after the alternative path is configured. Confirm DNS, authentication, TLS, application access, and the actual file or app workflow rather than checking only whether a tunnel status page says connected.
The ZimaSpace comparison of VPN, tunnels, and port forwarding helps match the workaround to private access, public application delivery, and maintenance risk.
The decision is complete when you can explain who owns the public endpoint, where inbound traffic terminates, and how the home server authenticates it. If the ISP later provides a public address, remove obsolete relay or tunnel rules before reintroducing direct forwarding.
Support & Tips
More to Read

How to Reduce Plex Database Contention on a Busy Docker Host
A Plex configuration guide for busy hosts that treats the database as local application state and reduces I/O contention without inventing a shared DB...

How to Prevent Duplicate Plex Scans and Imports
A prevention guide for duplicate Plex scans and imports that removes overlapping triggers instead of disabling library updates entirely.

How to Recover Plex After Its App-Data Volume Fills Up
A recovery ladder for full Plex app-data volumes that protects the database first and avoids deleting unknown files just to make the service start.

