The Port Forwarding thread: Minimizing multiplayer connection issues

Viajero

Volunteer Moderator
Given the renewed interest in physical multicrew brought in by Odyssey, and multiplayer gameplay interest in general (player groups, co-op, pvp etc), I thought it could be useful to get a detailed thread regarding how to implement Port Forwarding effectively in our systems. A lot of the info and context here comes as well from the portforwarding guide by u/Bregirn in reddit so credit to him for his great work. I have then completed his great post with additional advice and examples to make it as clear and detailed as possible. Also huge credits to portforward.com where a lot of the details of this post come from. Also, for completeness sake, here is the link to FDEV´s support page on Elite´s Port Forwarding.

This post is primarily offered in the context of PC port forwarding but I suspect console players will find it also equally useful and should be able to adapt it to their needs easily enough.

Why port forwarding?

Unlike other games that communicate with a server for most or all online gameplay, Elite uses servers only for certain tasks, like logging into the game, managing BGS, or registering transactions in stations and such. All direct player interactions (such as combat, wing and multicrew) are handled by a Peer-to-Peer (P2P) network structure. This is where your computer communicates directly to the other players computer. Think of it this way. Central server based games are like the postal system, you send a letter (packets) in the mail and it goes to the sorting center (server). The Sorting server then sends forwards the mail (packets) to the other player. In Elite the postal system doesn't exist, and you just drive straight to the receiver and deliver the mail yourself.

Typically your home router acts as a gateway and masks your internal network behind an external IP address, only allowing traffic into the network if it is expected or requested previously. This can leads to a number of transmission and reception problems especially if your security and firewall systems prevent communication with other players for any reason. Elite by default tries to mitigate these issues using UPnP protocols to connect players P2P but given all the different kinds of routers, and private network set ups available out there the system is still far from perfect.

Some of the problems we can often see in Elite due to this are players not able to link up in wings or multicrew, wing mates or crewmates not able to see each other in the same instance, players seeing NPCs that other wing or crew mates can not see, sudden disconnects when jumping to or from super cruise etc.

Now, also for additional context, these problems are not exclusive to Elite. Plenty of games that use P2P connectivity suffer from the same issues Elite does to some extent. Some more than others depending on the bandwidth needs and type of gameplay (twitch vs turn based etc): ME Andromeda multiplayer, Dark Souls 3 pvp, Destiny 2, CoD MW, the original Blowdbowl and a large etc, with tons of other games experiencing similar issues.

P2P is just a design choice for game developers (it has its advantages and its disadvantages) that players need to be aware of if they want to play that game in multiplayer.

The main mitigation for most of those games happens to be port forwarding.

What is port forwarding?

Port Forwarding is a technique that creates a pathway allowing external connections to send information directly to your computer from external locations, even when the traffic is not expected. If you have ever tried to host a minecraft server from home you will have had to setup port forwarding to your server machine in order to let other users join your server. The same thing is required to allow other users to connect to you in Elite.

Does it work?

From testing, I would say this indeed makes a difference and many of the multiplayer issues disappear as long as port forwarding is correctly implemented in all wing or crew mates systems, or in all players trying to instance (match maker decisions notwithstanding). It will never be a complete guarantee as most of the multiplayer network is outside our local PCs and router systems but I can say with confidence that it should resolve a significant part of the problems we often experience.

Also, from my personal experience, port forwarding rules do not seem to work for me when connected to the internet through a VPN, so consider if it is safe for you to have it deactivated while you try port forwarding.

Is it safe?

For the most part, yes, a forwarded port is perfectly safe. Beware that you are allowing an incoming connection to your network, so it does come with some risks. Forwarding a port to a gaming console such as an Xbox or PlayStation should be quite safe. Forwarding a port to a personal web server may be less safe unless you know how to secure your web server. The forwarded port will only allow specific traffic to make it to one particular device on your network. You are not tearing down your firewall as much as you are creating a pinhole through it.

See also above regarding use of VPNs.

How to implement port forwarding

CGNAT check


Before going into the actual port forwarding steps below the first thing to do is to check if your internet provider is based on CGNAT or not. If you are not sure feel free to contact your provider directly or post in this thread so we can help. If it is based on CGNAT then you need to review the specific CGNAT advice at the bottom of this post in the Additional Info section as you may have to contact your provider to help you get a non shared public IP address.

If your internet provider is not CGNAT or you have managed to get a non shared public IP address with a CGNAT based provider then read on:

Port forwarding steps

There are 5 main steps to take care of to properly implement port forwarding in Elite. Below I will be going into the detail for each:

1 - Ensure your firewall allows Elite´s executables through
2 - Ensure your PC has a static IP address in your local network (or that your router can identify individual devices in your network otherwise)
3 - Configure the port forwarding rule at your router
4 - Test your port has been properly forwarded
5 - Configure the port forwarding option and specific forwarded port number in the Elite network options menu.

1 - Ensure your firewall allows Elite´s executables through

This is going to be dependent on the AntiVirus you use but most of those should have a configuration option where you can list applications to be allowed through your firewall. The files you need to add to those exceptions are the Elite executable ones.

There could be more than one depending on what you have installed. For example the executables for alphas or betas are different than the ones for the main game etc

The location of the files will vary depending on your type of install (Steam, Frontier etc) but the files you are looking for to add as an exception to your firewall are called:

Elitedangerous64.exe
EDLaunch.exe

Here an example of how it can look using the Windows Defender default antivirus (the repetitions you see here are due to the test version installs for alphas etc):

74a9Fna.png


2 - Ensure your PC has a static IP address in your local network (or that your router can identify individual devices in your network otherwise)

The way to achieve this is pretty standard and straightforward in Windows. Here is a good guide to follow step by step: https://portforward.com/how-to-port-forward/#static-ip

3 - Configure the port forwarding rule at your router

This is the trickiest part of the process since it involves accessing your router configurations options.

Follow this guide for full details: https://portforward.com/how-to-port-forward/#setup

The process is going to be slightly different depending on your router brand and model but it will usually need the following steps.

3.1 Connect to your router:
  • Open up a web browser. Firefox, Chrome, or Edge, or Opera should work fine.
  • In the address bar, type your Default Gateway IP address, such as 192.168.0.1 or 192.168.1.1 that you found out when creating the static IP address for your PC.
  • Press Enter
3.2 Introduce the default login and password for your router:

If you do not know the default login and passwords for your specific router use this list to find yours: https://portforward.com/router.htm or perform a google search for your router brand and model´s default login and passwords.

If you still have an issue finding these, post here your router brand and model and we can try to help you out.

3.3 Find the Port Forwarding Section and create a port forward rule:

Navigate around in your router by clicking the tabs or links at the top or left of each page. Most routers list the port forwarding section under Network, Advanced, or LAN. Look for the following keywords to help you find it: Port Forwarding, Forwarding, Port Range Forwarding, Virtual Servers, Apps & Gaming etc

The same router list linked above describes the exact navigation requirements for most routers brands and models: https://portforward.com/router.htm

Here an example of how the port forwarding section looks like in a Linksys router:

linksys-port-forwarding-page.png


Application name: Introduce a memorable name that you want to give to this port forward rule in your router, i.e. “Elite Portforward” or similar.

Start - End ports: FDEV recommends to use port numbers between 5100 and 5200, introduce the port number you choose in both start and end fields. In case of doubt introduce the number in all fields you see for ports.

Protocol: Choose UDP only. There are routers that have an option to use both protocols TCP/UDP at the same time. We have seen players reporting issues when both protocols were chosen in the router rule. Just use UDP is my recommendation.

Device IP: This is the static IP address you created in step 2 above.

As mentioned above each router will have a different type of screen and menus but the main fields/values to be entered should be pretty similar.

3.4 Reboot your router

In some cases we have seen players whose router did not really took the new port forward rule into account until rebooted. Reboot just so to be sure.

4 - Test your port has been properly forwarded

This step is quite important so you can have peace of mind that your port forward has been properly implemented. There are a number of online port checkers out there but I would advise to not use them, we have seen a large number of false positives/negatives and they seem to be quite unreliable.

I recommend the in house portforward.com free application to do it. In my opinion this application is quite safe to install and has been used for eons by “port forwarding fans”. It has a paying version as well but the free trial version is more than enough to test our ports.

4.1 Install the port checker app:

Go to this page and get to the “Free Trial” link at the bottom of the page: https://portforward.com/store/pfconfig.cgi

When installing you may see an antivirus or security warning. In my opinion it is ok to use this software but please do your due diligence in case you have any doubts.

4.2 Run the app

When running the app you will be presented with a pop up window asking you for an email address and a registration code. Ignore that and click on the bottom left “Trial” button. Press “ok” if a small confirmation pop up appears and continue.

Hit the “Port Checker” option. Here introduce 5100 at the “Port Number To Check” field (or the port number you decided to use in step 3.3 above, if different from 5100). Select UDP, and finally hit “Check me”.

If the result is positive you are good to go to step 5. If not this would mean that one of the elements in steps 1 to 3 has not really been performed successfully. Re check your firewall clearance for Elite executables, ensure your PC IP is static and that your port forward rule in the router has been set up properly.

If your test is negative and you think you have implemented all steps 1 to 3 correctly it is also posible that you have one of the ISP providers that do not allow users to portforward and retain that control themselves (cgnat) see below Additional Info on these. For these cases you may need to contact your internet provider directly and request them to give you a non shared or exclusive public IP address (so then you can do your port forward normally), or open a port for you. This may come at a cost but it can be worthwhile at least to ask.

If you still have issues please post here so we can try to help.

5 - Configure the port forwarding option and specific forwarded port number in the Elite network options menu.

This step is quite straightforward.
  • Go to Elite´s main menu and then get to the “Network” options menu.
  • Go to the IPv4 section
  • Go to the Portforwarding option and set it to “on”
  • Go to the Mapped Port Number and select the port number you used in Step 3, i.e. “5100”.
  • Reboot Elite
You should be good to go.

Now, as mentioned above, port forwarding is not a guarantee that all multiplayer connection issues will disappear. Most elements of online gaming and connectivity are far away from your client or router network anyways. But it should mitigate a significant number of problems as long as you and those you play with have properly implemented port forwarding.

If you have any questions or issues with the process please feel free to post here so port forward veterans can chip in and help.

Additional info

- For cases where you use a wifi extender see this link. In essence it means you have to do the above port forwarding steps twice, once for your wifi extender, once for your PC.

- CGNAT internet providers: In this case routers are unable to port forward due to the internet provider using "master routers" in order to share a public IP address among several customers.
in carrier-grade NAT networks, even though the router at the consumer end might be configured for port forwarding, the "master router" of the ISP, which runs the CGN, will block this port forwarding because the actual port would not be the port configured by the consumer.
For these cases you may need to contact your internet provider directly and request them to give you a non shared or exclusive public IP address (so then you can do your port forward normally), or open a port for you. This may come at a cost but it can be worthwhile at least to ask.

- For cases with more than 1 PC in the same local network I suggest to follow the same steps in this thread separately for each PC, so to actually create separate forwarding rules in the router, and for each rule to select a different port number to forward to (in steps 3.3 and 5). Each PC would need also to have a different static local IP address (step 2).
 
Last edited:
What if you use a network extender to expand the range of your router, and then you are connected to the range extender via a network cable?
 
Not an expert there and may be wrong but I suspect that unless your extender is creating an additional subnet (requiring an additional NAT) in your local network (which it shouldnt) it should be ok.
It's problematic at the point of getting a static IP. Those extenders tend not to have much in the way of settings.

You can often set it up, until you reset your PC (or reconnect)
 
Wow thanks for all this helpful stuff OP! Also this is precisely why Consoles are great. I just wanna turn something on and play, not have to take a course in networking first. But thanks man, much appreciated! This should be a sticky somewhere.
 
NOTE: If your ISP does not grant you a dedicated IPv4 address, port forwarding will not work. The problem is, there are more systems in the web than there are IPv4 address. That means that ISPs put multiple customers on the same IPv4 address, restricting the available port ranges.

NOTE2: Do not confuse dedicated with static. A dedicated IPv4 address is not necessarily static. A dedicated IPv4 address is an IPv4 address that is allocated to just you. This is not the case with CGNAT/Dual Stack Lite connections. Which is why port forwarding won't work on such connections.

Your only option is to request, usually for an additional fee, a dedicated IPv4 address, to change the ISP, or to rent a root server as a VPN server and configure it to use a dedicated IPv4 address and forward ports through the VPN.

See also:

German ISPs that give dedicated IPv4 addresses:
  • Deutsche Telekom (and most resellers) - MagentaZuhause and Call and Surf via Funk only; T-Mobile connections need to use a separate APN that however disables IPv6.
  • E.ON Highspeed (formerly Innogy Highspeed) - For a fee of 3.00 € a month, also uses Dual Stack Lite otherwise. The upgrade will turn it into true Dual Stack.
  • o2 - DSL only, for Homespot users, there's a one-time fee of 50 euros.

German ISPs that do not give a dedicated IPv4 address:
  • Vodafone - Former DSL customers that still use DSL will still be granted a dedicated IPv4 address. Cable users will not be granted a dedicated IPv4 address under any circumstance; Former Unitymedia customers in Northrhine Westphalia are exempt from this restriction and may get it as part of an improved upstream speed plan.
  • Deutsche Glasfaser - Does not give any dedicated IPv4 address at all because they don't deem it necessary, they use Dual Stack Lite. There's an offer by EDV Kossmann for a static IPv4 address, but it's used as a port mapping VPN which is not compatible with UDP and only maps incoming connections. It does not handle outbound connections.
  • Deutsche Giganetz - Will never grant a dedicated IPv4 address to private customers.
 
Last edited:
I was having massive problems on console with IPv6.. i requested IPv4 as my address and was kindly given one, pretty solid since but the world is running out of addresses so expect IPv6 to be the norm for most people pretty much.
 
I'm... Not paying more to my ISP....

So port forwarding just doesn't work without an external static IP? I thought it was a thing for your internal network?
 

Viajero

Volunteer Moderator
I'm... Not paying more to my ISP....

So port forwarding just doesn't work without an external static IP? I thought it was a thing for your internal network?

As far as I understand the one that needs to be static is your internal one, so your router knows which device it needs to forward the info to. And hence the instructions in the OP. Every time I switch on my PC I seem to have a different external IP, it does not seem to be an issue for port forwarding as I have tested it several times with different external IPs and it seems to be working every time.
 

Viajero

Volunteer Moderator
Of course, a dedicated IPv4 address is still required.

Not sure exactly what you mean here. I certainly do not seem to have a fixed external IP but the port forward rule in my router still works. Elite does not mind what external IP I have every time I connect to the game or other players. It can change every time I boot up my PC. What actually needs to be static is your local network IP for your PC so your router knows what device to forward the info to in your local network.
 
Last edited:
Not sure exactly what you mean here. I certainly do not seem to have a fixed external IP but the port forward rule in my router still works. Elite does not mind what external IP I have every time I connect to the game or other players. It can change every time I boot up my PC. What actually needs to be static is your local network IP for your PC so your router knows what device to forward the info to in your local network.
Sorry my post was cut. I fixed it. BBCode was malformed
 
NOTE: If your ISP does not grant you a dedicated IPv4 address, port forwarding will not work. .
This is false.

All port forwarding does is redirect the traffic (that was coming to you anyway) to a back end system by performing DNAT (destination NAT). Obviously how easy DNAT/Port Forwarding is to setup depends entirely on your router (I use a business grade firewall ... perks of the job 🙃 )

FDEV already knows your public IP address when you connect to their servers, and this is shared to other commanders in your area. When they make a connection attempt to you, the destination is your public address, and port-forwarding redirects it to your PC. A static IP (from your ISP) is not required.
 
This is false.

All port forwarding does is redirect the traffic (that was coming to you anyway) to a back end system by performing DNAT (destination NAT).

FDEV already knows your public IP address when you connect to their servers, and this is shared to other commanders in your area. When they make a connection attempt to you, the destination is your public address, and port-forwarding redirects it to your PC. A static IP (from your ISP) is not required.
Wrong. Look up CGNAT. Not all ISPs forward uPnP requests and adhere them.

A dedicated IP address is not necessarily static, but a static or dynamic IP address CAN be shared due to CGNAT and is thus NOT dedicated.

A CGNAT (or also known as Dual Stack Lite) makes an IPv4 address ambigiuous from the outside. You cannot forward ports on a CGNAT'ed connection because you cannot configure the external router on the ISP's side to do so.
 
Last edited:
A piece of info for those folks using BT as their ISP and a BT smarthub or smarthub2 as their router. The port forwarding on these is dynamic and set up linked to the device ID, not to a specific IP. Even if your PC is using a dynamic IP not a static the port forwarding will be reconfigured to match every time your PC gets a lease on a new IP.

On almost any router model you can make an address effectively static without needing to worry about setting a static IP that is still within the dynamic range used by the routers DHCP server (if the router tries to assign that address dynamically to something else, both it and your PC will break) by simply telling the router to "always assign this device this IP" and leaving your PC settings unchanged. Where statics and dynamics share the same subnet, creating a DHCP reservation for it in this way has been regarded as best practice for a while rather than explicitly setting static IPs on the device.
 
Last edited:
Wrong. Look up CGNAT. not all ISPs forward uPnP requests and adhere them.

A dedicated IP address is not necessarily static, but a static or dynamic IP address CAN be shared due to CGNAT.
False again - uPNP is LAN based, and will not be forwarded by your router. Your ISP will never see the request.

**EDIT: Also, uPNP is not quite the same as port-forwarding. While they effectively do the same job, port-forwarding is a manual setup, whereas uPNP is automatic (and frankly, should not be used as it's a security nightmare)
 
False again - uPNP is LAN based, and will not be forwarded by your router. Your ISP will never see the request.

**EDIT: Also, uPNP is not quite the same as port-forwarding. While they effectively do the same job, port-forwarding is a manual setup, whereas uPNP is automatic (and frankly, should not be used as it's a security nightmare)
Still false on your side.
1624801637332.png


You cannot forward ports through this. There's another router in between your router and your ISP's internet facing router in a CGNAT case. Your WAN side port doesn't have a public IPv4 address.

Carrier-grade NAT usually prevents the ISP customers from using port forwarding, because the network address translation (NAT) is usually implemented by mapping ports of the NAT devices in the network to other ports in the external interface.
 
Last edited:
Top Bottom