Common router mistakes
- TCP vs UDP mismatch.
- Wrong public/external port.
- Forwarding to an old DHCP address.
- Wrong internal destination port.
- A second router or gateway exists upstream.
Use this order so each step removes a class of causes.
When a simple port checker cannot connect, the useful question is not just “is the port closed?” but “where did the connection stop?” A browser-backed external TCP probe can strongly verify a successful path, but a failed connection can have several causes. Connection Vitals therefore uses reachable and not reachable unless stronger evidence identifies the blocker.
Keep the target application running and connect to it from another device on the same home network. Use the server's LAN IP and the actual internal TCP port. If that fails, the public router rule is not the first problem.
Run the TCP Port Checker while the service is active. If Connection Vitals establishes the connection, the public TCP path is reachable. If it cannot, do not infer a single cause from that failure alone.
Compare the router's WAN IPv4 with the public IPv4 shown by Connection Vitals. A WAN address in 100.64.0.0/10 strongly indicates CGNAT. An RFC1918 WAN address indicates another private NAT layer. Either can prevent a forwarding rule on the inner router from controlling the full inbound path.
Some routers do not support NAT loopback/hairpinning consistently. A hostname or public IP can therefore behave differently when tested from inside the same LAN. Connection Vitals performs its TCP reachability check from Cloudflare infrastructure outside the browser's home path, which is the relevant direction for public inbound reachability.
Change one variable at a time. If you simultaneously alter the port, firewall, forwarding destination and application binding, a successful retest will not tell you which change mattered. The fastest troubleshooting process is evidence → one change → same retest.
Use the TCP Port Checker while the service is listening. If the result is not reachable, the Port Forwarding Test adds WAN/public-IP evidence so you can separate local forwarding from upstream NAT.