# Server Doctor > Server Doctor is a free Discord bot and web tool that diagnoses why friends can't join a self-hosted or rented game server. It tests the server from the internet using each game's own protocol and returns the most likely cause plus step-by-step fixes. - Website: https://serverdoctor.app/ - Web check (same engine as the bot's /fix): https://serverdoctor.app/fix - Add the Discord bot: https://discord.com/oauth2/authorize?client_id=1561236265808957532&scope=bot+applications.commands&permissions=18432 - Commands: /fix (diagnose join problems), /setup (recommend a hosting approach: free options like Aternos or playit.gg tunnels, or a paid host) - Price: free. Some host recommendations may use disclosed affiliate links (https://serverdoctor.app/disclosure) ## What it detects - Port not forwarded, or a firewall blocking the server - CGNAT: router WAN IP is in 100.64.0.0/10 or differs from the public IP, so port forwarding can't work. The fix is a tunnel (playit.gg), a VPN overlay, asking the ISP for a public IP, or renting a server - Double NAT (router WAN IP is a private address) - Wrong protocol forwarded (TCP vs UDP) - Wrong address shared (local 192.168.x.x / 10.x IP, missing :port) - Client/server version mismatch - Hairpin-NAT false alarms (testing your own public IP from inside your network) ## Supported games - Minecraft: Java Edition: default port 25565/TCP - Minecraft: Bedrock Edition: default port 19132/UDP - Palworld: default port 8211/UDP - Valheim: default port 2456/UDP - Rust: default port 28015/UDP - ARK: Survival Ascended: default port 7777/UDP - Terraria / tModLoader: default port 7777/TCP - Hytale: default port 5520/UDP ## How the test works Minecraft Java server-list ping, Minecraft Bedrock RakNet unconnected ping, Steam A2S_INFO query (Valheim, Rust; Palworld query port), Terraria connect request, Hytale QUIC version negotiation. Only the single public address the user enters is contacted. Private/internal addresses are refused. ## FAQ ### Why can't my friends join my game server? The most common causes are: the port isn't forwarded (or is forwarded with the wrong protocol, TCP vs UDP), a firewall is blocking the server, your internet provider uses CGNAT so port forwarding can't work, friends were given your local 192.168.x.x address instead of your public IP, or the game versions don't match. Server Doctor checks these for you. ### How do I know if I'm behind CGNAT? Compare the WAN/Internet IP on your router's status page with the IP a 'what is my IP' site shows. If they differ, or the router's WAN IP starts with 100.64-100.127, you're behind CGNAT and port forwarding can't work. Use a tunnel such as playit.gg, a VPN overlay, ask your ISP for a public IP, or rent a server. ### Is Server Doctor free? Yes. The Discord bot and the web checker are free. Some recommendations link to hosting companies; some of those links may be affiliate links, which are always disclosed. ### Does Server Doctor need access to my server or router? No. It only sends the same kind of 'are you there?' packet a game client sends, to the single address and port you give it, from the internet. It never logs in to anything and needs no passwords. ### Which games are supported? Minecraft Java, Minecraft Bedrock, Palworld, Valheim, Terraria, Rust, ARK: Survival Ascended and Hytale. For ARK and some Palworld servers a 'no reply' result is inconclusive because those servers ignore test packets. ### My friends can't join, but it works when I join my own public IP from home. Or the reverse? Joining your own public IP from inside your home often fails even when everything works (routers without 'hairpin NAT'). Use the local IP at home and have friends use the public IP. Test from a phone on mobile data. ### What does the bot do in my Discord server? It adds two slash commands: /setup (pick the right way to host your game) and /fix (diagnose join problems). Replies are only visible to the person who ran the command. It doesn't read your messages. ## Help guides (direct answers, ports and steps) - [Friends can't join your Minecraft server? Here's the fix.](https://serverdoctor.app/help/minecraft-friends-cant-join): Minecraft Java Edition uses TCP port 25565. - [Minecraft Bedrock: "Unable to connect to world"](https://serverdoctor.app/help/minecraft-bedrock-unable-to-connect-to-world): Bedrock Dedicated Server uses UDP port 19132 (19133 for IPv6). - [Palworld friends can't join your dedicated server?](https://serverdoctor.app/help/palworld-friends-cant-join): Palworld dedicated servers use UDP port 8211 for gameplay and UDP 27015 for the Steam query and community server list. - [Valheim server not showing up, or friends can't join?](https://serverdoctor.app/help/valheim-friends-cant-join): Valheim dedicated servers use UDP ports 2456 and 2457 (the -port value and the next one up). - [Hytale friends can't connect to your server?](https://serverdoctor.app/help/hytale-server-cant-connect): Hytale dedicated servers use UDP port 5520 (QUIC). - [Behind CGNAT? Host a game server without port forwarding.](https://serverdoctor.app/help/cgnat-game-server): CGNAT (carrier-grade NAT) means your internet provider shares one public IPv4 address between many customers. ## Pages - [Home](https://serverdoctor.app/) - [Web check](https://serverdoctor.app/fix) - [All help guides](https://serverdoctor.app/help) - [Full text of every guide, for LLMs](https://serverdoctor.app/llms-full.txt) - [Affiliate disclosure](https://serverdoctor.app/disclosure) - [Privacy policy](https://serverdoctor.app/privacy) - [Terms](https://serverdoctor.app/terms)