Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A Factorio server that does not respond is usually failing at one of four boundaries: the server process is not running or has not loaded the save, the client and server do not have identical versions or mods, UDP traffic is blocked, or the server is reachable only on the local network and not from the Internet. Diagnose those boundaries in that order. Start the server with --start-server SAVE, test it locally with --mp-connect ADDRESS[:PORT], verify an exact version-and-mod match, then open and forward the configured UDP port (34197 by default). If LAN clients work but Internet clients do not, focus on forwarding, firewalls, Docker publishing, public addressing, double NAT, or ISP CGNAT rather than reinstalling Factorio.

Use this order to find the fault

The shortest path is to prove each layer before changing the next one. A local connection test separates a Factorio problem from a router or ISP problem; a version-and-mod check prevents network troubleshooting from masking a compatibility failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
What you observe Most useful interpretation Next action
The server window exits, never loads the save, or no local client can join The process, save path, startup command, or local listener is the first suspect Restart with --start-server SAVE and test from the same computer or LAN
A local client reaches the server but is rejected during connection Factorio is reachable; compare the game version and every mod on both machines Make the installations and enabled mod sets identical
LAN clients join but an Internet client cannot The failure is beyond the Factorio process: forwarding, host firewall, Docker, addressing, NAT, or ISP filtering Check the configured UDP port, private-IP reservation, public address, and NAT type
No one can join after changing the port The new port may not be allowed or forwarded, or clients may still be using the old value Verify the server configuration, firewall rule, router rule, and client address together
A server-browser listing is missing or shows the wrong port while direct LAN access works A container or intermediary may be publishing traffic differently from the port the browser detects Inspect Docker port mappings and test by direct address and port

What "server not responding" actually means

Factorio’s multiplayer traffic is UDP only. The Factorio Wiki multiplayer documentation states, "Factorio uses UDP only." That matters because a TCP-only rule, a TCP port test, or a router rule created for the wrong protocol will not make a Factorio server reachable. The default server port is UDP 34197; an administrator can change it in the server configuration, so 34197 is a starting point, not a guarantee.

The symptom can occur at several different stages:

  • Process stage: the dedicated server is not running, cannot read the save, or is listening on a different address or port.
  • Compatibility stage: the connection reaches Factorio but the client and server disagree about the game build or installed/enabled mods.
  • Host stage: the operating-system firewall, antivirus, or a cloud security group drops inbound UDP.
  • Network-edge stage: a router has no UDP forwarding rule, forwards to the wrong private address, or sits behind another NAT device.
  • Container stage: Docker exposes the port with the wrong protocol, publishes a different host port, or changes how a browser detects the server.
  • ISP stage: the Internet connection uses carrier-grade NAT (CGNAT), so unsolicited inbound traffic cannot reach the home router without an ISP-provided public address or another access method.

1. Confirm that the server process and save are running

Start a dedicated server with the save explicitly named

Use Factorio’s headless command-line option:

factorio --start-server SAVE

Replace SAVE with the save file or path expected by your installation. A normal Windows installation can run in server mode; Linux also has a lightweight dedicated headless package, according to the Factorio FAQ. Whichever package you use, keep the server console open while testing. Startup errors, an absent save, or an immediate exit are local failures and cannot be repaired by router forwarding.

#1 Best Overall
Sale
CyberPowerPC Gamer Xtreme VR Gaming PC, Intel Core i5-13400F 2.5GHz, GeForce RTX 5060 8GB, 16GB DDR5, 1TB PCIe 4.0 SSD, WiFi Ready & Windows 11 Home (GXiVR8060A40)
  • System: Intel Core i5-13400F 2.5GHz 10 Cores | Intel B760 Chipset | 16GB DDR5 | 1TB PCIe 4.0 NVMe SSD | Windows 11 Home
  • Graphics: NVIDIA GeForce RTX 5060 8GB Graphics | 1x HDMI | 2x DisplayPort
  • Connectivity: 1 x USB-C 3.2 | 2 x USB-A 3.2 | 6 x USB-A 2.0 | 1 x LAN | WiFi 6 | Bluetooth 5.3 | 7.1 Channel Audio
  • Tempered Side Case Panel | Custom RGB Lighting | Keyboard and Mouse
  • 1 Year Parts & Labor Warranty, Free Lifetime Tech Support

Do not assume that a shortcut, service, Docker entrypoint, or script still points to the save you intend to host. Confirm the command currently used by that launcher and verify that the save exists in the location supplied to the command. If the server starts but loads a different world, stop and correct the save selection before debugging connectivity.

Test from the host before testing the Internet

Use Factorio’s direct multiplayer connection option to test a known address:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
factorio --mp-connect ADDRESS[:PORT]

For the first test, use the host’s loopback or LAN address and the actual configured port. A successful connection on the host proves that Factorio loaded the save and is answering locally. A successful connection from another computer on the same LAN proves that the process and local routing are working together. If both tests fail, stay on the server: inspect the console, startup command, save, configured port, and local firewall before touching the router.

Interpret a local success correctly

A local success does not prove Internet reachability. It proves only that the server is listening on an address reachable from that local network. If the host and a LAN client connect but a friend outside the network cannot, the remaining work is at the public-network boundary. Conversely, if a LAN client cannot connect, changing the public IP or forwarding rule will not address the underlying problem.

2. Make the game version and mods exactly identical

The official multiplayer guidance is explicit: "All game instances need the installation of exactly the same game-versions and mods." Match the dedicated server and every connecting client, not merely the major release number.

Check the game build

Compare the full version displayed by the server and client. An automatic update on one machine can create a mismatch even when both installations appear to be the same release family. Update or roll back the outlier so all participants use the same build before performing network tests.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compare the complete mod set

  • Use the same mods on the server and client.
  • Use the same mod versions, not just the same mod names.
  • Ensure a mod is enabled on both sides or disabled on both sides.
  • Remove stale copies and duplicate versions that can be selected by a launcher or container.
  • After changing the set, restart the dedicated server and reconnect rather than relying on a session that was already running.

If a local connection reaches the server and then fails during the handshake, this compatibility check has higher priority than port forwarding. A router cannot fix a rejected version or mod set.

3. Verify the port and allow UDP on the host

Use the configured port, not an assumed one

Factorio’s default is UDP 34197, but the port is configurable. Read the server configuration or launch settings used by your installation and record the effective value. Then use that same value in all three places:

Rank #2
ZER-LON Prebuilt Gaming PC Desktop, Core I7 up to 3.9 GHz, RX 550 4GB GDDR5
  • 【PC Gaming System】This gaming PC is loaded with Intel Core I7 up to 3.9GHz and AMD Radeon RX 550 4G graphics card, allowing you to experience top-notch gaming performance. This system features 16GB of high-speed memory and 512GB SSD Solid State Drive for lightning-fast load times
  • 【Superior Gaminig Experience】This high-performance Gaming Computer Desktop is capable of running a wide range of popular PC games for pc gamer, including Fortnite, Call of Duty Warzone, Escape from Tarkov, GTA V, World of Warcraft, LOL, Valorant, Apex Legends, Roblox, Overwatch, CSGO, Battlefield V, Minecraft, Elden Ring, Rocket League, The Division 2, and Hogwarts Legacy with 60+ FPS
  • 【Multifunctional Use】This tower computers gaming pc desktop is designed to meet the needs of different people on the computer, powerful performance not only in the game to show quality graphics, the face of the office, design, audio and video can also be comfortable, multi-tasking, fast switching smooth operation
  • 【Tower Gaming PC Desktop】The gaming computer desktop is designed for versatile connectivity, featuring 2x USB 3.0 ports, 6x USB 2.0 ports, 1x RJ-45, 1x Serial, and built-in Wi-Fi. The AMD Radeon RX 550 4G GDDR5 Graphics Card supports multiple display options including 1x HDMI, 1x DisplayPort, and 1x DVI, ensuring compatibility with a wide range of monitors
  1. The dedicated server’s configuration or startup parameters.
  2. The host firewall or security software’s inbound rule.
  3. The router, cloud security group, or Docker publication that exposes the server.

A mismatch such as Factorio listening on 34200 while the router forwards 34197 produces the same timeout as a completely offline server. If you change the port, restart the server, update the forwarding rule, and give players the new ADDRESS:PORT.

Create an inbound UDP rule on the server computer

Allow inbound UDP on the configured port in the operating system’s firewall. If antivirus or endpoint-security software includes its own network shield, allow the Factorio executable there as well. On a hosted virtual machine, check the provider’s security group or network ACL in addition to the guest operating system.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the rule narrow: permit the required UDP port rather than disabling the entire firewall. If you temporarily disable security software as a test, re-enable it immediately after the result and create a specific allow rule. A successful LAN test with the firewall disabled identifies the host rule as the cause; it does not justify leaving protection off.

Remember that TCP tests are misleading

Because Factorio uses UDP only, a port checker that tests TCP can report the port as closed even when Factorio is correctly configured. Test with a real Factorio client from the relevant network, or with a UDP-aware diagnostic, and interpret generic TCP-only results cautiously.

4. Separate LAN reachability from Internet reachability

Choose the correct address for each player

LAN players should connect to the server’s private address, such as the address assigned by the home router. Internet players need the network’s public address and the forwarded UDP port. Sending a private address to an external player cannot work because private address ranges are not routable across the public Internet.

Ask one person on the same LAN and one person outside it to test after the server is running. This two-location test is more informative than repeated attempts from one network, especially when a router does not support NAT loopback (also called hairpin NAT). A public address may fail from inside the same home while working for a genuinely external client, so do not use an internal test to declare the public rule broken.

Forward the UDP port to a stable private address

  1. Identify the server computer’s current private IP address.
  2. Reserve that address in the router’s DHCP settings or assign another stable address so it will not change after a reboot.
  3. Create a port-forwarding rule for UDP, using the Factorio port configured on the server (34197 unless changed).
  4. Set the rule’s destination to the server computer’s stable private IP and the same internal port.
  5. Save or apply the router configuration, then restart the Factorio server if the router or host changed state.
  6. Give the external player the public address and port; give LAN players the private address.

Some routers ask for separate external and internal ports. They may be different, but the external port is the one players use and the internal port must match what Factorio listens on. If you use a non-default external port, document it clearly and ensure the host firewall allows the internal port.

Check for double NAT and CGNAT

Port forwarding works only when inbound traffic can traverse every NAT layer. A common double-NAT layout has an ISP gateway performing routing in front of a second personal router. Forward the UDP port through both devices, put the ISP gateway in bridge mode when appropriate, or use the gateway’s supported exposed-host arrangement with care.

Rank #3
Sale
Mumba Mouse Grip for Nintendo Switch 2 Joy-Con, [2 Pack] Ergonomic Gamer Grip Holder with Super Smooth PTFE Glide Pads Portable Gaming Controller Stand for Switch 2 Joy Con Accessories (2025), Black
  • Compatibility: Designed specifically for the Nintendo Switch 2 Joy-Con controllers, with dedicated left and right grips. It provides a more comfortable and precise control experience for smoother gameplay.
  • Ergonomic Design: This comfortable Switch 2 controller grip is designed to fit the shape of your hand, with finger grooves for a stable and secure grip, helping you stay relaxed during long gaming sessions.
  • Zero Resistance: The precision-crafted ABS shell and unique Teflon feet provide an ultra-smooth movement experience, making your control more precise. Whether it's shooting, strategy, or simulation games, you can enjoy an intuitive and seamless connection with the game.
  • Quick & Easy Setup: Align the "+" and "-" buttons on your Switch 2 Joy-Con with the corresponding markings on the mouse grip, then snap it into place for immediate use, so you’re ready to game in seconds with enhanced precision.
  • Lightweight and Portable: Weighing only 34.2g, it’s easy to carry and lets you enjoy a professional-grade gaming experience anytime, anywhere.

CGNAT is different: the public address shown by the router may be shared with other customers, so there is no customer-controlled device to which the ISP can deliver an unsolicited inbound packet. Compare the router’s Internet-facing address with the address visible from an external network. If they do not correspond, ask the ISP whether the connection is behind CGNAT and whether a public IPv4 address or another inbound-capable service is available. Without such a path, local hosting can work while direct Internet hosting remains impossible.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Check Docker and other network layers

The factoriotools Docker documentation notes that when the IP address and port are correct, port-forwarding or firewall issues are likely. A container adds another translation layer, so verify each hop:

  • Factorio inside the container must listen on the intended UDP port.
  • The container runtime must publish that port as UDP, not only TCP.
  • The host firewall must allow the published host port.
  • The home router must forward the published host port to the Docker host’s private IP.
  • If the host and container use different internal and external ports, players must be given the external value.

Test in stages: connect from the Docker host, then from another LAN device, then from an external network. This identifies whether the break is inside Factorio, between the container and host, or at the router.

Container mappings can also affect server-browser port detection. A server may be reachable by direct address while a browser listing displays no server or an incorrect port. Treat direct connectivity and browser discovery as separate tests; correct the published mapping and advertised port rather than assuming the Factorio process is offline.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

6. Use controlled diagnostics instead of random changes

Run one-variable tests

  1. Start the server and record the configured port.
  2. Connect locally with --mp-connect.
  3. Connect from a second device on the same LAN.
  4. Confirm the exact version and mod set.
  5. Test from a genuinely external network with the public address and port.
  6. Change only one firewall, forwarding, or container setting at a time and repeat the external test.

Record the result and the address used for every attempt. This prevents a successful LAN test from being confused with a successful WAN test and makes it possible to undo an ineffective change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use an SSH tunnel only as a diagnostic

A March 2025 Factorio forum discussion suggested checking firewall rules, trying a local client, and using an SSH tunnel when a direct connection receives no response. An SSH tunnel can help determine whether the server process answers when traffic reaches the host through a different path, but it is not a universal Factorio fix. UDP-only game traffic and the tunnel’s transport behavior must be compatible, and the tunnel endpoint still needs a reachable host. Treat the result as evidence about the network path, not as proof that every router or ISP configuration will work with the same method.

Inspect logs and timestamps

Keep the dedicated-server console or log visible while a client attempts to connect. A log entry at the moment of the attempt indicates that traffic reached Factorio; no entry suggests that the packet was dropped before the process, often by a firewall, forwarding rule, container publication, or NAT layer. Compare timestamps across the server, router, and client when those logs are available. Do not edit several settings between attempts, or the timestamp correlation loses value.

Match common messages to the right remedy

Message or symptom What it usually tells you Remedy to try first
"Could not establish network communication" before a session starts The client did not complete communication with the destination; the cause may be an unreachable address, blocked UDP, wrong port, or an offline process Verify the server is running, test locally, then check UDP forwarding and firewall rules
Connection reaches the server but reports a version or mod problem The network path is functioning and the handshake found incompatible content Align the complete game build and mod set
LAN works; Internet times out Factorio is listening locally; the public boundary is failing Check public versus private address, router forwarding, double NAT, CGNAT, host security, and Docker publication
Direct address works; server browser does not Discovery or advertised-port handling is wrong even though gameplay traffic can arrive Inspect container mappings and the port exposed to the browser
It stopped working after a reboot The server’s private IP, startup command, service state, or firewall profile may have changed Confirm the save command, current private IP, listening port, and active firewall profile

When managed hosting is the sensible alternative

Factorio documents dedicated/headless operation and acknowledges third-party hosted servers. Managed hosting is most useful when the local process works but maintaining router forwarding, firewall rules, operating-system updates, backups, and public addressing is the real obstacle. It cannot repair an incompatible mod set, and it does not remove the need to choose matching versions for every player.

Compare self-hosting and managed hosting on the decisions that matter

Decision area Self-hosting Managed hosting
Local versus Internet reachability LAN access is immediate; Internet access depends on your public address, forwarding, and ISP The provider normally supplies an Internet-reachable endpoint, subject to its network policy
Router, firewall, and NAT administration You own every rule and diagnosis The provider manages its edge; you still manage player access and server settings
Operating system or Docker work You maintain Linux, Windows, or the container stack The provider maintains the underlying platform; control varies by plan
Mods and versions Full control, with responsibility for synchronization Check the provider’s supported mod workflow, upload limits, and version policy before subscribing
Backups and save access You decide where saves are copied and restored Verify backup frequency, retention, download access, and restoration procedure; exact policies vary
Player count and performance Limited by your hardware, upload capacity, and concurrent workload Check allocated CPU, memory, storage, bandwidth, and player limits rather than assuming a plan will scale
Cost and support Uses existing hardware and connection but costs your administration time Requires a recurring fee; current US pricing, availability, uptime commitments, and support terms must be checked on the provider’s current pages

Choose managed hosting only after confirming that it supports the Factorio version and mods your group uses, lets you retrieve saves, provides backups suitable for your risk tolerance, and offers a network endpoint reachable by all players. If a local LAN test fails, fix the Factorio installation first; moving the same broken save or mismatched mod set to another machine only relocates the symptom.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Final recovery checklist

  • Start the intended save with --start-server SAVE and keep the process running.
  • Use --mp-connect ADDRESS[:PORT] from the host or a LAN client to prove local reachability.
  • Match the complete game version and every mod, including mod versions and enabled state.
  • Read the effective server port; use UDP 34197 only when the configuration still uses the default.
  • Allow that UDP port through the host firewall, antivirus network shield, and any cloud security group.
  • Reserve the server’s private IP and forward the same UDP service through every router or NAT layer.
  • Give LAN players the private address and external players the public address plus the external port.
  • Investigate double NAT, CGNAT, and NAT-loopback behavior when local and external tests disagree.
  • For Docker, verify the container listener, UDP publication, host firewall, router rule, and browser-advertised port independently.
  • Change one variable per test and use server logs to determine whether an attempt reached Factorio.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.