Ports, routers and firewalls

A server at home sits behind your router, and a router turns away anyone on the internet who tries to reach a computer inside. For players to join, the router has to be told to send Odyssey's traffic to the machine the server runs on. This is called forwarding a port.

A server rented from a hosting company usually has an address of its own and no router in the way. There, only the firewall section applies.

The ports#

PortKindWhat it is forOpen it?
2597 to 2599UDPPlayers connecting and playing.Yes
5297TCPOdyssey Server Admin managing the server from another machine.Only if you use that, and it is off by default

The first of the three game ports is the server's Listen port, and the other two follow it. If you change the listen port to 4000, the ports to open are 4000 to 4002.

Odyssey Server Admin on the same machine as the server needs no port at all. The two talk through a file on that machine, which nothing outside it can reach.

Forwarding on your router#

Every router words this differently, but the steps are the same.

  1. Find the server machine's local address. It looks like 192.168.1.50. On Windows, run ipconfig in a terminal and read the IPv4 address. On macOS and Linux, run ip addr or look in the network settings.
  2. Make that address permanent. Routers hand out addresses that can change after a restart, which silently breaks the forward. In the router's settings, look for "DHCP reservation" or "static lease" and reserve the address for that machine.
  3. Open the router's settings. Usually by visiting 192.168.1.1 or 192.168.0.1 in a browser. The address and password are often on a label on the router.
  4. Add the forward. Look for "Port forwarding", "Virtual server" or "NAT". Create a rule:
    • External ports: 2597-2599
    • Internal ports: 2597-2599
    • Protocol: UDP
    • Internal address: the one from step 1
  5. Save, and restart the router if it asks.

If your router only accepts one port per rule, make three rules.

The Enable UPnP switch in the server's settings does not open these ports for you in the current release. Forward them by hand.

The machine's own firewall#

The computer running the server may have a firewall too.

Windows. The first time the server starts, Windows asks whether to allow it. Say yes, for private and public networks. If you dismissed that, open Windows Security, Firewall & network protection, Allow an app through firewall, and allow Odyssey Server.

Linux. With ufw:

sudo ufw allow 2597:2599/udp

With firewalld:

sudo firewall-cmd --permanent --add-port=2597-2599/udp
sudo firewall-cmd --reload

A hosting company's firewall. Many have one in their control panel, apart from the machine's own. Open the same UDP ports there.

Check that it worked#

Testing from inside your own network proves little: many routers will not send you back to your own public address. Test from outside.

  • Ask a friend to join.
  • Or use a phone as a hotspot, with a computer on it running the game.

Once your server is listed, the simplest test is the real one: find it in the server list and press Play from somewhere that is not your home network.

If players still cannot connect#

  • The rule is TCP. It has to be UDP.
  • The rule points at the wrong machine. The server's local address changed. Reserve it, as in step 2.
  • Two routers. If your router plugs into another box from your internet provider, both may be routing, and both need the forward. Putting the provider's box in "bridge" or "modem" mode is the usual fix.
  • Your provider shares your address. Some providers, mobile and fibre especially, put many customers behind one public address ("CGNAT"). No setting on your router can fix that. Ask the provider for a public IPv4 address, or host the server somewhere else. A sign of it: the "WAN" address your router shows differs from what a "what is my IP" website says.
  • You are testing from home. See above.

Giving your server a name#

Players reach your server at whatever address it has, and the registry keeps track of that for you: a listed server reports where it is every minute, so a home connection whose address changes is found again without you doing anything.

If you have a name for it, such as play.example.com, set it as the Hostname under Server configuration.