MineFixTools server utility lab
Fixes 4 min read Updated

Fix Can't Connect to a Minecraft Server

Fix Minecraft server connection errors by checking startup, server.properties, port forwarding, firewalls, DNS, SRV records, and proxies.

Connection failures are easiest to fix when you separate the path into layers: the Java process, the local machine, the public network, DNS, and any proxy in front of the server. Do not change all of them at once. Prove where the connection stops, then fix that layer.

Start With the Exact Address

Ask one player to copy the address they are using and the exact error text. play.example.com, play.example.com:25577, a raw IP address, and an SRV-backed domain can fail for different reasons.

Common clues:

  1. Connection refused usually means nothing is accepting traffic on that IP and port, or a firewall is rejecting it.
  2. Connection timed out usually means packets are being dropped by a firewall, NAT rule, provider filter, or wrong public IP.
  3. Unknown host usually means DNS is wrong, not that the Minecraft server crashed.
  4. Outdated server or Outdated client means the network path works, but the Minecraft version path does not.

If startup errors appear in latest.log, run the excerpt through the startup log classifier before debugging routers and DNS.

Confirm the Server Is Listening

A server that is still loading, crashing, or stuck on a plugin cannot accept players. Look for the startup line that confirms the server is ready:

Done (12.345s)! For help, type "help"

Then confirm the port in server.properties:

server-port=25565
server-ip=

Leaving server-ip empty lets Java bind to the available network interfaces. Filling it with a private address, old public IP, or panel allocation that no longer exists can make the server unreachable. If you need a clean baseline, compare your file with the server.properties generator.

Test From the Closest Network

Move outward one hop at a time:

  1. On the same machine, test localhost:25565.
  2. On the same home or private network, test the server's private IP, such as 192.168.1.40:25565.
  3. From outside the network, test the public IP and port.
  4. Only after the raw endpoint works, test the domain or SRV record.

If local access works but public access fails, the Java server is probably fine. Focus on operating system firewall rules, router forwarding, provider firewalls, NAT, and DNS.

Open the Correct Port Everywhere

There may be several firewalls in the path:

  1. Operating system firewall on the server.
  2. Hosting provider firewall in the dashboard.
  3. Router port forwarding for home hosting.
  4. DDoS protection, proxy, or edge firewall.
  5. Panel allocation rules if your host uses a game panel.
VPS note

Many VPS providers add a cloud firewall above the operating system firewall. Opening the port in Linux is not enough if the provider dashboard still blocks it.

For a standard Java server, allow TCP on the configured port. For Geyser or Bedrock access, check the Bedrock UDP port separately.

Validate DNS and SRV Records

An A record should point to the public IP of the machine or proxy that players should reach. An SRV record can point a friendly domain and custom port to the actual Minecraft service target.

For a Java server on a non-standard port, the SRV record usually follows this shape:

_minecraft._tcp.play.example.com
priority 0
weight 5
port 25577
target node.example.com

The SRV target should be a hostname, not a raw IP. That target hostname should resolve to the public endpoint. DNS changes can also take time to propagate, so verify both the old and new records before blaming the server.

Proxy Networks

Velocity, BungeeCord, and Waterfall networks add another layer. Players connect to the proxy, not directly to backend Paper servers. Backend servers should be firewalled so players cannot bypass proxy authentication.

Check these points:

  1. The public DNS points to the proxy.
  2. The proxy has the public allocation open.
  3. Backend servers allow traffic only from the proxy.
  4. Forwarding mode, secrets, and online-mode settings match the proxy documentation.

When to Contact the Host

Contact the host when the server is running, the port is correct, and you still cannot reach the public endpoint. Send the host the server port, the time of the test, the public address you used, and the exact error. That is more useful than "players cannot join" and usually gets a faster answer.

FAQ

Should server-ip be filled in server.properties?

Usually no. Leave server-ip blank unless your host specifically tells you to bind the server to one address.

Do I need TCP or UDP for a Java server?

Java Edition server traffic uses TCP on the configured server port. Bedrock and Geyser setups may also need UDP.

Why can I connect with localhost but friends cannot?

That usually means the server process works, but a firewall, router rule, provider firewall, public IP, or DNS record is blocking outside players.

Related Tools

Related Articles