Your Minecraft server runs locally, but friends cannot connect because your ISP uses carrier-grade NAT and the usual port 25565 forwarding never reaches your machine. NeedPorts gives the server a stable public address that players can connect to directly.
A Minecraft server needs players to open an inbound connection to your machine. Behind CGNAT there is no reachable public port to forward, so the connect attempt times out even though the server is running and your router rule points at the right internal IP.
Give friends a single address to type into the Minecraft multiplayer screen and have them join a server you host yourself.
Players get connection timed out because port 25565 cannot be forwarded through the ISP CGNAT layer to your home connection.
NeedPorts gives you dedicated public ports over an outbound tunnel, so nothing depends on your ISP or router. After install, map one of your assigned ports to Minecraft (local port 25565) and restart:
sudo needports use minecraft <assigned-port>
sudo needports restart
Your Minecraft instance is then reachable at your dedicated public endpoint, for example your-server:30000, with no port forwarding on the local network.
Run the server with a whitelist or online-mode auth so only invited players can join, and keep backups. Exposing a game server is normal, but still publish only the game port and keep the server software patched.
After mapping the Minecraft port, have a friend (or a second network) connect to the public address and port. A successful join confirms inbound reachability through the tunnel.
NeedPorts plans start at $5/month or $30/year for 25 dedicated ports, which is plenty for Minecraft and other self-hosted services on the same box.