What port does a Minecraft server use?
A Minecraft Java server uses port 25565 (TCP) by default, and a Bedrock server uses port 19132 (UDP). That's the port players connect to and the one you forward on your router when the server runs at home.
| What | Default port | Protocol | Set in |
|---|---|---|---|
| Java server (players join here) | 25565 | TCP | server-port in server.properties |
| Bedrock server (IPv4) | 19132 | UDP | server-port in Bedrock's server.properties |
| Bedrock server (IPv6) | 19133 | UDP | server-portv6 |
| Query (server info for status tools) | 25565 – off by default | UDP | enable-query, query.port |
| RCON (remote console) | 25575 – off by default | TCP | enable-rcon, rcon.port, rcon.password |
| Simple Voice Chat | 24454 | UDP | The mod's own config |
| Dynmap web map | 8123 | TCP | Dynmap's configuration.txt |
| BlueMap web map | 8100 | TCP | BlueMap's webserver.conf |
| Geyser (Bedrock players on a Java server) | 19132 | UDP | Geyser's config.yml |
Only the first row is needed to play. Query and RCON stay off until you turn them on, and the plugin ports only matter when you install that plugin or mod.
Do players need to type the port? Not when the server uses 25565 – the game adds it automatically. For any other port they type it after a colon, for example 203.0.113.25:25570. Where to find the full address is explained in how to find your Minecraft server IP.
What are the query and RCON ports for?
Query lets websites and tools read your server's player count and plugin list; RCON lets an external program send console commands with a password. Neither is needed to play.
- Query (
enable-query=true) answers over UDP, on the same number as the game port by default. Server lists and status bots use it. - RCON (
enable-rcon=trueplusrcon.password) listens on TCP 25575. The Minecraft Wiki warns that RCON isn't encrypted – the password and every command can be read on the way – so use it only when you really need an external tool, and never with a password you use anywhere else.
How to change the Minecraft server port
Stop the server, open server.properties, change server-port=25565 to another number, save and start the server again. Players then join with address:port.
server-port=25570
- Pick a free port between 1024 and 65535. Two programs can't use the same port, so a second server on the same computer needs a different one – otherwise the console shows "Failed to bind to port" and the server stops.
- If you forward ports on your router, forward the new number, not 25565.
- Leave
server-ipempty. It doesn't change your address; a wrong value there only stops the server from starting.
Bedrock does the same with server-port and server-portv6 in its own server.properties. Every option in the file is explained in Minecraft server.properties.
How to port forward a Minecraft server
In your router's settings, create a port forwarding rule that sends TCP port 25565 to the local IP of the computer running the server, then give your friends your public IP. Without this rule your router doesn't know which device in your home should get the connection, so friends get "Connection timed out".
- Give the server PC a fixed local IP. Find its current one with
ipconfig(Windows, "IPv4 Address") or in the network settings on macOS. In the router, reserve that IP for the PC ("DHCP reservation" or "static lease") so it doesn't change after a restart. - Open the router's admin page. Usually
192.168.0.1or192.168.1.1in a browser; the login is often printed on a sticker on the router. - Find the port forwarding section. Depending on the brand it's called "Port Forwarding", "Virtual Server", "NAT" or "Applications & Gaming".
- Add a rule:
| Field | Java server | Bedrock server |
|---|---|---|
| External / public port | 25565 | 19132 |
| Internal / private port | 25565 | 19132 |
| Protocol | TCP | UDP |
| Device / internal IP | The server PC, e.g. 192.168.1.20 |
The server PC |
- Save the rule and, if the router asks, restart it.
- Allow Java through the firewall on the server PC. On Windows, the first start of the server usually shows a firewall prompt – allow it for private and public networks, or add an inbound rule for port 25565 TCP.
- Give friends your public IP – the one "what is my IP" websites show, not
192.168.x.x. You yourself keep joining withlocalhost.
If you use other ports (a voice chat mod, a web map, Geyser), they need their own rules with the right protocol from the table at the top.
Why doesn't port forwarding work?
The most common reasons are CGNAT at your internet provider, a second router in the chain, or a firewall on the PC.
- CGNAT: if the WAN IP on your router's status page differs from the one on "what is my IP" websites (often a
100.x.x.xaddress), your provider shares one public IP between many customers. Forwarding on your router can't work; ask the provider for a public IP, or host the server elsewhere. - Two routers: if your provider's modem is also a router and you have your own router behind it, the rule has to exist on both, or the modem has to be switched to bridge mode.
- The local IP changed: without a DHCP reservation the server PC can get a new address, and the old rule points at nothing.
- The server isn't running: a port is only "open" while the server is listening on it.
How to check if your Minecraft port is open
Start the server, then test the public IP and port from outside your home network – for example with an online open-port checker, or by asking a friend to join. Testing from inside your own network can give a wrong result, because many routers don't let you reach your own public IP from inside.
| Test | What it tells you |
|---|---|
Join with localhost on the server PC |
The server is running |
| Join with the local IP from another device at home | The PC firewall lets the connection in |
| Online port checker on your public IP, port 25565 | The router forwards the port |
| A friend joins with your public IP | Everything works |
On Windows you can also test a port from another computer outside your network in PowerShell:
Test-NetConnection 203.0.113.25 -Port 25565
TcpTestSucceeded : True means the port answers. This only works for TCP, so it tests a Java server, not Bedrock. Online checkers usually test TCP too.
If friends still can't join, go through the getsockopt error guide – "Connection timed out" and "Connection refused" almost always mean a port or firewall problem.
Minecraft server ports on Spot.gg
On Spot.gg you don't forward or choose ports: the panel assigns them to your server, and players join with the address from the panel – for Minecraft Java without typing any port. The server runs in a data center, so there's no router, CGNAT or home firewall in the way.
Open the "Network" tab. At the top are your connection addresses:
| Address | Example | When to use it |
|---|---|---|
| "Custom address" | yourname.spot.gs |
Give this one to friends. It works without a port in Minecraft Java. |
| "Basic address" | sID-xxxxx.spot.gs:25570 |
Permanent address with the port – always works, even after you change the custom one. |
Below that is the "Ports" table with every port of your server and its protocol. A Minecraft Java server gets:
| Port | Purpose |
|---|---|
| Game | The main server port (TCP + UDP, query included) |
| RCON | Remote admin console |
| Additional (3) | Free for other plugins or mods, e.g. Geyser or Plan |
| Voice chat | For Simple Voice Chat or Plasmo Voice (UDP) |
| Map | For BlueMap, Dynmap or squaremap (TCP) |
Each row has a "Copy" button. Put the voice chat and map ports into the configuration of those plugins or mods, and use the additional ports for anything else that needs one – for example Geyser's bedrock.port, described in how to install Geyser and Floodgate.
Why can't I change server-port? In "Configuration" → "server.properties" the server-port, query.port, enable-query and server-ip fields are locked, and the server sets them to your assigned values at every start. The port is part of your address; if you could change it, the address in the panel would stop working. RCON's port is set the same way – to turn RCON on, set enable-rcon and rcon.password in the RCON section.
Minecraft Bedrock servers on Spot.gg don't have a custom address: players enter the basic address and the port in two separate fields. The additional ports there are used by Bedrock itself for player connections and are set automatically, so don't change them in server.properties.
Your own domain: at the bottom of "Network", "Own domain" lists the DNS records to add at your domain registrar – a CNAME record for the address and, for Minecraft Java, an SRV record (_minecraft._tcp.play) that tells the game the port. With both in place players join with something like play.yourdomain.com and no port. If the domain uses Cloudflare, set the records to DNS only (grey cloud).
You can try it on a free server for 24 hours; paid servers start from $3.90 per month.
FAQ
What is the default Minecraft server port?
25565 TCP for Minecraft Java Edition and 19132 UDP for Bedrock Edition (19133 for Bedrock over IPv6).
Is the Minecraft port TCP or UDP?
Java uses TCP for players; the optional query feature uses UDP. Bedrock uses UDP. When you forward a Java server, TCP is enough.
Do I need to port forward to play with friends?
Only if the server runs on your own computer and friends are outside your home network. Players on the same Wi-Fi join with your local IP, and on a hosted server you don't forward anything.
Can I run two Minecraft servers on one computer?
Yes, if each has its own server-port, e.g. 25565 and 25566. Each needs its own forwarding rule, and friends join the second one with address:25566.
How do I join a server without typing the port?
Use port 25565, or a domain with an SRV record that points to the real port. On Spot.gg the custom address yourname.spot.gs already works without a port for Minecraft Java.
What port does Minecraft Bedrock use?
19132 UDP by default. Bedrock doesn't support SRV records, so players always enter the port in the separate "Port" field when it isn't 19132.
Why does my port checker say the port is closed?
Either the server isn't running, the router rule points to the wrong local IP or protocol, the PC firewall blocks Java, or your provider uses CGNAT. Check the steps in order, starting with the server running.