What is CGNAT and how to get around it
If your public IP starts with 100.64, or friends can't connect to your server, your ISP is probably putting you behind CGNAT — sharing one public IP among many customers. Here is what that means and the real ways around it.
The IPv4 shortage, pushed onto you
Carrier-Grade NAT (CGNAT) is how ISPs cope with the exhaustion of IPv4 addresses. Instead of giving every customer a unique public IP, the ISP puts hundreds or thousands of subscribers behind a single shared public address and translates their connections at a big carrier-grade router. It is the same idea as the NAT in your home router, but one layer up and shared across many households. For ordinary browsing you never notice — outbound connections work fine. The problem is inbound.
Because you share a public IP with strangers, you do not truly own a reachable address. You cannot open a port to your machine, because the ISP's router, not you, decides what that shared IP does with incoming packets — and it has no idea which subscriber a random inbound connection is meant for.
How to tell you are behind it
There is a quick test. Find your public IP on a "what is my IP" site, then look at the IP shown in your router's WAN status page. If they differ — your router thinks its WAN IP is private while the world sees a different one — you are behind CGNAT. A dead giveaway is a WAN address in the 100.64.0.0/10 range, which is reserved specifically for CGNAT, or a private-looking WAN IP (10.x, 172.16–31.x, 192.168.x) when you expected a public one.
The symptoms are all inbound: port forwarding in your router does nothing, friends cannot join a game you host, self-hosted services are unreachable from outside, and BitTorrent runs slowly with no incoming peers. Everything you try to host fails, even though everything you visit works.
The real ways around it
You cannot defeat CGNAT from your side alone, because the missing piece — a public IP that is yours — lives at the ISP. The honest options: 1) Ask your ISP for a public/static IP; many offer one, sometimes for a small fee. 2) Rent a VPS and run your service there, or tunnel to it with WireGuard so the VPS's public IP fronts your home service — the standard self-hoster's fix. 3) Use a dedicated / personal IP: an address reserved for you that, unlike a CGNAT-shared one, can actually be pointed at your service and whitelisted.
The common thread is the same as with port forwarding: the cure for "I don't have a real public IP" is to get one you control. A shared VPN exit does not provide that for inbound hosting, but a VPS plus a dedicated IP does — a stable address with ports you own. That is the direct, honest path from "behind CGNAT" to "reachable".
Questions, answered
How do I know if I'm behind CGNAT?
Compare the public IP a "what is my IP" site shows with the WAN IP in your router. If they differ, or the router's WAN IP is in the 100.64.0.0/10 range (or a private 10/172/192 range), you are behind CGNAT — your ISP shares one public IP among many customers.
Can a VPN fix CGNAT?
Not a shared VPN exit for inbound hosting — it relays outbound only. The real fixes are asking your ISP for a public IP, running your service on a VPS you tunnel to, or using a dedicated IP you control that can actually be pointed at your service.
Get a real IP you control
CGNAT takes away your reachable address; a VPS with an s4m dedicated IP gives one back — a stable public IP with ports you own, so inbound just works.
People found this page by searching for
- what is CGNAT and how to get around it
- wireguard for android
- wireguard for beginners
- wireguard
- how to bypass Geo-Blocking with a VPN or proxy
- vpn kill switch
- HTTP 407 proxy authentication required
- is openvpn safe
- proxy for scraping settings
- proxy setup list txt
- how to set up WireGuard on a VPS in 10 minutes
- proxy for scraping plans
- openvpn comparison
- http proxy
- best vpn kill switch 2026
- best free proxy list 2026
- discord proxy and VPN
Real search phrases this page answers — the linked ones open the page that covers them in depth.