I've seen lots of confusion if Astroneer fails to join multiplayer games. Here are some errors you might get:
Failed to join: could not find session
Failed to join: could not find user
Some things you might want to try before you forward ports:
Restart your device.
Restart your router.
Restart your modem.
Clear cache on your device.
Make sure your device is online.
Solutions from Microsoft: NAT type on Windows 10 displays "Teredo is unable to qualify"
If the above suggestions don't help, this post gives examples on how to forward ports using Windows. If you use another platform like a console, your steps may look different but the concepts and terms are the same.
If you already know (or don't care) about details, just skip this section. Otherwise, let's go!
What is a modem?
TLDR: Device that receives data from the Internet.
Your Internet service comes from an Internet Service Provider (ISP). When you sign up for service, you must have a device called a modem to connect to it, which usually connects to the wall or to a satellite. Dedicated modems often have one Ethernet port on the back for use with a router. The ISP sends your modem a public IP address to use on the Internet.
What is a router?
TLDR: Device that manages data from the internet in your home network.
If multiple devices in your home share an internet connection, a router is typically used. It can service connections between your public IP address and many local IP addresses, acting as a gateway to the Internet, and keeps track of which device has asked for data. Routers often have Wi-Fi antennae, many Ethernet ports on the back, and a software firewall running inside. Sometimes, the router is combined with the modem in one device, though best performance is achieved by having a dedicated modem device and a dedicated router device.
What is a public IP address?
TLDR: A sequence of four numbers used to find a device on the Internet.
This address is a sequence of numbers (and sometimes letters) that tells other computers on the Internet how to exchange data with your modem. For example, google.com shows me this IP address: 188.8.131.52. There are two flavors of IP address, IPv4 and IPv6. This post will only talk about IPv4 addresses, which range from 0.0.0.0 to 255.255.255.255. Your public IP address is often dynamic, meaning your ISP can change it whenever they want. Sometimes you can pay extra for a static public IP address that never changes
What is a local IP address?
TLDR: A sequence of four numbers used to find your device on your home network.
Just like your modem needs a public IP address to be found on the Internet, your devices need a local IP address to be found on your home network. Usually, these addresses start with 192.168 or 10.0. Routers can lease these local IP addresses to your devices for a set time, through a service called Dynamic Host Configuration Protocol (DHCP). This is why sometimes your device's local IP address changes. If this happens, your device is using a dynamic IP address. It's sometimes ideal to use a static IP address instead.
What is a media access control (MAC) address?
TLDR: A sequence of six pairs with numbers and letters that is unique to a network device.
This address is a static sequence of numbers and letters, given to devices that communicate over a network. It's typically set by the manufacturer of the device, and and is almost never changed. Every network device has one, from the modem, to the router, to your computer, to the wireless radios in your router, smartphone or fancy lightbulbs. These addresses can be spoofed for nefarious purposes, but we won't need to worry about that in this post. Since this never changes, it can be useful for setting a static local IP address.
What is Network Address Translation (NAT)?
TLDR: Managing data between different networks, usually with different IP address ranges.
Routers can manage traffic between many distinct networks. The network provided by your ISP, which grants you access to the Internet or Wide Area Network (WAN), and the network provided by the router, which creates and manages your Local Area Network (LAN), for example. When data is exchanged between them, translation must occur for data to arrive.
What is a port?
TLDR: A number between 0-65535 used for types of network traffic.
A port is a number between 0 and 65535. Just like your router allows many local IP addresses to share a public IP address, ports allow many types of communication to share one IP address. Some ports are standardized, like port 80 and port 443 for websites.
What is port forwarding?
TLDR: Telling your router to allow devices to listen for traffic on a port.
If a device on the network is listening on a port, it can receive an inbound connection. Some ports carry very powerful traffic, so it can be very dangerous to let anyone on the Internet ask your network for any kind of traffic. Typically, the router blocks almost every inbound connection request for this reason. However, if you're running a server (like the game of Astroneer) you must be able to listen for incoming connections for friends to join you. Port forwarding ensures only some inbound connections are allowed, and specifies which device and ports allow it. It's possible to allow all incoming connections to a device using the Demilitarized Zone (DMZ) but this is not recommended and generally unsafe to do so.
What is Transmission Control Protocol (TCP) and User Datagram Protocol (UDP)?
TLDR: Protocols that ports can use. TCP traffic needs a response. UDP traffic doesn't need a response.
Ports can exchange traffic in many ways and for many reasons. Some traffic needs to be correct and all the traffic is needed, which is best for the TCP protocol. Some traffic needs to be fast and it's okay if some is lost, which is best for the UDP protocol. TCP examples include file transfers, email, or websites. UDP examples include VoIP, video, and games.
What is Universal Plug and Play (UPnP)?
TLDR: A service that attempts to automatically forward ports. It doesn't always work.
Port forwarding can be annoying for multiplayer gaming and other activities that require your device to listen for connections. UPnP attempted to solve this by detecting when a trusted device on your network is listening for traffic, and temporarily forward the port to allow those connections. There are many security problems with this service, such as if your computer has a virus and wants to let a stranger connect to you. It's also rather bad at noticing whether a device is listening for traffic. Some routers do a better job at implementing UPnP, and this is why some people have success with multiplayer gaming without port forwarding, while others do not.
What is a firewall?
TLDR: A device or program that restricts what traffic can do on a network.
A firewall watches network traffic and allows or denies certain traffic behavior based on rules. It can either be a dedicated device, like a modem or router, or software. You may have noticed when running some software that Windows Firewall asks whether you want to allow that software through. Firewalls can also examine the network traffic itself to ensure the traffic it expects to see on common ports is actually what's being exchanged. If someone rings your doorbell, you ask "Who is it?", and they say "The pizza guy..." the firewall can check they actually have a pizza and not some nasty surprise. It's generally unsafe to turn off your firewall for extended periods, and some software won't run without it.
What is a server?
TLDR: A server listens for network traffic and responds to clients.
A server is a device or software that listens for inbound traffic and responds accordingly. When you go to https://google.com in a browser, Google's web server receives your request and responds with web traffic on port 443.
What is a client?
TLDR: A client exchanges network traffic provided by a server or peer client.
A client is a device or software that sends and receives traffic and responds accordingly to servers or peers (other clients). When you go to https://google.com in a browser, the browser is a client that asks Google's web server for information, and receives the server response as web traffic on port 443.
What is Astroneer?
TLDR: Astroneer is game software with online multiplayer. It relies on client and server behaviors, with their subsystems, to work properly.
Astroneer is game software that this whole post is about. For its online multiplayer to work, it must listen for traffic on specific ports and act as a server. Other players can then see the server and connect to it, acting as clients. Once a connection is established, data is exchanged such as where players are, what they look like, if and how they are moving, and what items or terrain they interact with. Achievements and cosmetic unlocks are also reliant on network connectivity with separate servers, outside of the players themselves.
Cool story... I just want to play Astroneer with friends.
Whoever is hosting a game needs their network to accept inbound connections for Astroneer to their game device. How do we tell who is hosting? If Bob and Sally want to play, and Bob joins Sally, Sally's device will host the game and act as a server, while Bob's device acts as the client. If inbound traffic on the ports for Astroneer can't reach the host, the joining player receives an error. To solve this, the host's network must allow inbound traffic on ports used by Astroneer to reach the host device.
Find the local IP address for the device hosting Astroneer, and for the router:
Right-click the Start button of Windows 10, and Click "Windows Powershell" or "Command Prompt" (it doesn't matter which):
To get the IP addresses, type this command and press the Enter key:
Your device's local IP address is listed next to "IPv4 Address". In the example below, mine is 192.168.1.2.
Your router's local IP address is listed next to "Default Gateway". In the example below, mine is 192.168.1.1.
You may need to scroll down to find the right one. If connected by a cable, it's an Ethernet adapter. If connected over Wi-Fi, it's a Wi-Fi adapter.
Configure a static local IP address for the device hosting Astroneer:
Routers can only forward ports to a specific IP address on your network. If your device's local IP address is always changing because of DHCP leases, you will need a static IP address. Advanced routers can assign static IP addresses based on your device's MAC address, but the simplest way is to use Network Connections inside Windows.
To open Network Connections, type this command and press the Enter key:
Right-click your network adapter and click Properties:
Double-click "Internet Protocol Version 4 (TCP/IPv4):
Click "Use the following IP address:".
The IP Address of 192.168.1.2 in my example may work for you. My router uses DHCP to assign IP addresses that end with 100 and 200, so 2 is outside that range.
The Subnet Mask of 255.255.255.0 is fine for most home networks.
The Default Gateway IP is 192.168.1.1 in my example, which should be the router IP address we saw above from ipconfig.
The Preferred DNS server can be the Default Gateway address, 192.168.1.1 in my example.
The Alternate DNS server is 184.108.40.206 in my example, for Google. You can use another if you want, like Comcast at 220.127.116.11.
Now the device hosting Astroneer is using a static IP address. Any ports we forward to an IP address in the router will continue working.
Navigate to the router configuration web page:
Routers typically host their own web server, and can be configured from a browser. Typically, routers are assigned an IP address that ends with "1". Below are some example URLs that might open the configuration web page for your router. If not, make sure the IP address matches the Default Gateway address you found above:
In my example, the local IP address of my router is 192.168.1.1, so the URL from my browser is http://192.168.1.1.
Every router is different. Your router's configuration web page will probably look different than mine. You may need to Google your router's model number for documentation, or search around in the interface to find the equivalent areas.
Log into the router:
If you don't know the username and password, try the default username shown and the Wi-Fi password.
If that doesn't work, ask whoever bought or installed the router.
If they can't help, check the bottom of the router, as sometimes it has the username and password on a sticker.
If it's not there, Google the model of the router and try the default credentials.
If those don't work, you can always hard reset your router and set up your network again from scratch. Oof.
After logging in, my port forward information is kept under "Network", then "Firewall", then "Port Forwards":
Each platform requires a specific set of ports:
Xbox or Microsoft Store (Unified Windows Platform (UWP)):
For each port, or for each port range, add a forward. Be sure to name the forward so you know it was for Astroneer. I'm unsure which ports use which protocols, so I enable both TCP and UDP for each forward. Be sure you specify the static local IP address for your device hosting Astroneer, and that the external and internal port numbers match, if your router asks for those.
In my example, I forwarded some ports for the UWP platform:
Don't forget to save and apply the port forwards!
Test whether the NAT Type is Open:
Right-click the Start button of Windows 10, and click "Settings":
Type "xbox" and click "Xbox Live Settings":
If everything is working, you should see "Nat Type: Open":
If NAT Type is Moderate, or if connection problems continue:
Click the "Fix it" button and then click the "Check again" button
Try solutions 3, 4, 5, 6, and 7 from Microsoft here: NAT type on Windows 10 displays "Teredo is unable to qualify"
Join the Discord and find us in the #game_help channel: Astroneer Discord
Thanks for reading! I hope this helps some people.
Also, please check out my Astroneer Backup tool to keep your save games safe on PC for both Steam and Microsoft Store, here: Astroneer Backup