How To Port Forward (made for myself)

1. Disable any VPN or Proxy or something

If this is enabled, it won't work.

2. Allow the application within the Firewall

Usually, whenever you activate the network on a new application, windows asks you to add it to the list, and has preselected one of the options. Just leave it on this option and accept.

If things don't work out, then maybe something went wrong here. Allow both private and public networks. The reason I say this is because I've tried to get something to work for hours, and this right here was the problem.

On linux / UFW

Recomendation

For testing, use a LAN connection with another computer.

Disabling
sudo ufw disable
Enabling
sudo ufw enable
Reloading
sudo ufw reload
Show status with numerical rules
sudo ufw status numbered
Deleting specific rule
sudo ufw delete NUMBER
allowing port tcp
sudo ufw allow PORT_NUMBER/tcp
allowing port udp
sudo ufw allow PORT_NUMBER/udp
disabling ipv6
Edit this file: sudo nano /etc/default/ufw, then change IPV6=yes to IPV6=no
Example

Specifically for star wards battlegrounds, we needed the following 4 ports to be open within UFW:

2.5 (Maybe) Multiple Adapter shenanigans.

Look at the output of ipconfig, and look if you don't have weird network adapters.

ip route show on linux (default row shows both router page and your ip) maybe.

For example, VMware network adapters / Virtualbox network adapters. If you have those, make sure you disable these before hosting a game, as these will make your local IP different. And I'm not sure if changing the setting within the router fixes this, as the router might still think you're on the other IP, so stuff is routed within an extra layer I guess, which messes up things.

Within ethernet properties, disable any bridging stuff, IPV6 stuff, Npcap

3. Figure out which port a game uses

You can either google it, or (with the game running and hosting a server) use Resource Monitor ( included within Windows Vista / Later ), and go to Network tab, Listening ports, and the process / port(s) should show up.

4. Forwarding the port(s) on the router / modem page

Figure out how to get to your router page, and then forward the ports there.

It will be on something that starts with 192.168. For me it's on:

Make sure that the local IP (192.168.x.x) of your computer is correct within the port forwarding settings.
You can find it through cmd ipconfig, scroll up and on the line that says:
IPv4 Address. . . . . . . . . . . : 192.168.x.x

Also make sure that any enabled check is checked on

5. Disabling IPV6

For some reason, for me, I had to disable IPV6 in order to get UDP working. TCP worked fine with IPV6, but UPD apparently doesn't for whatever reason.

But then later, I reenabled IPV6, and things still worked, so IDK.

6. Testing if things work

Start hosting your game.
First we're going to see whether something is hosting. open the powershell, and type netstat -an and look for any like with :PORT_NUMBER, for example, in my case, hosting a quake game, there was 1 line saying the following: UDP 192.168.2.1:26000 *:*. If this does not stand there, it might be a problem with the firewall, or with the game itself.
If things work correctly, go to. https://www.yougetsignal.com/tools/open-ports/ and check if each port is open (TCP only, UDP is not supported here).

If any 1 of the ports is open, things will most likely work.

If you want to scan UDP, consider using nmap ( https://nmap.org/ ). See below on how to use it. nmap also works for tcp

on linux

On linux, we can use commands to check which ports are in use.
sudo ss -tulpn And for wine it's handy to do something
like sudo ss -tulnp | grep -iE "wine|exe"

7. The game might work now, but if not

Consider opening windows defender firewall with advanced security , And then whitelisting the application / ports manually there.

Or try to remove the applications within firewall, and then starting them back up again

8. Also consider your routers Firewall

Findable on your modem/router page

I've set it so that it allows most things, except for some other things.

9. Disable DMZ if enabled

10. Try Disabling or enabling UPnP

11. Port overlap

It might be the case that a different program is already using a specific port, so you may need to find that program, and stop it, or if the game allows it, use a different port number.

12. When hosting a game through LAN only

check if the other person isn't on a different WIFI network which is seperated from your main WIFI network.

13. How to use nmap for UDP and TCP

for TCP cmd/terminal: nmap IP -p PORT
Example output:

PORT STATE SERVICE
26000/tcp filtered quake

Only when state says: open, it works on tcp. If it says filtered, it still might be working, but on UDP.

To check UDP, try nmap -sU -sV -p <port(s)> <target>

Note that this tool might get stuck on "Starting Nmap ..." for a long time.

Also note that the second time you run a scan after the first one is finished, it might give a different result if the first one wasn't very descriptive.

When I have an UT99 server running (newest patch as of 2025), the output of nmap (for port 7777) is:
7777/udp open unreal Unreal Tournament 2004 game server

  1. Install nmap
  2. Start Nmap - Zenmap GUI
  3. Into command, type the following syntax:
  4. nmap -sU -sV -p <port(s)> <target>
    The target being your remote IP (you can find this by searching for: what's my IP?) Within the ports field, you can either type 1 value, or a range like 7777-7779, or comma seperated, or a combination of everything.
  5. For TCP, it's the same thing, only -sU becomes -sS, so the full syntax becomes
    nmap -sS -sV -p <port(s)> <target>

14. Port list for some games

Game Protocol Port(s)
Quake 1 UDP/TCP 26000
war 2 combat UDP/TCP 6112
Quake live UDP/TCP 27960
Worms armageddon TCP 17011
UT99 UDP 7777-7779
Empire earth UDP/TCP 33334-33336
Jazz Jackrabbit 2 UDP/TCP 10052-10054

15. Specifics

UT99

First of all, there are unofficial patches ( see https://ut99.org/ ) , which you need to download in order to see the list of servers.

And then during hosting, there is a server.log file, which told me that these old servers don't existed yet anymore. So I had to update UnrealTournament.ini in order to copy the newer server lists from Default.ini

Jazz Jackrabbit 2

So there is a patch available, called jj2+ (see https://www.jazz2online.com/jcf/showthread.php?t=19489 ).
This is different from Jazz² Resurrection (thought that might work as well, I haven't messed with it).

Anyways, If you use GOG Galaxy, make sure that instead of manually downloading it (which does work for letting a friend try it out), you change the config to use the JJ2+ mod, which by default it does not. And so if you locally install the JJ2+ mod, GOG galaxy will be like: Oh, hey, the version you've just installed is not the same version according to your settings, and thus it will revert it instantly back to the regular (worse) version.

You can do this by clicking on the settings icon right of play button -> Manage Installation -> Configure -> under installation: set Beta channels to JJ2+ Mod.

Game ideas

Look at co-optimus.com https://www.co-optimus.com/system/13/classic.html# (specific link, but you can search however you want). Filter, System PC, online co-op, add co-op campaign if you want, click it, find games. Single click on release date to sort from oldest to newest, then scroll through all of the TBD pages, like page 17 or something, and then you see things in a good way.

16. Lan mock programs

Tailscale

Dashboard page: console.tailscale.com

Steplist

  1. Create an account.
  2. Download the software.
  3. follow the steps and auth (and do sudo tailscale up on linux)
  4. on the dashboard, go to users, invite external users, copy link, send it to 1 person. For another person, another link.
  5. They make an account, they download the software, they get a tailscale network
  6. It doesn't work, they mess about, they logout (sudo tailscale logout), they go to the dashboard, switch the tailscale network by clicking on the top left
  7. They connect to the correct tailnet
  8. when doing tailscale status it shows 2 users finally.
  9. when doing a ping tailscale ping OTHER_USER_IP, which you get from tailscale status to the other user, it shows pong from <NAME_COMPUTER_OTHER_USER> (<IP_OTHER_USER>) via DERP(ams) in 238ms. The DERP(ams) means that the request is relayed through another server. This is bad. So to fix it, we have to enable UPnP within our Router settings. Or VIA port forwarding > UDP Port 41641
  10. ufw rules:
    # 1. Allow the WireGuard/Tailscale handshake port explicitly
    sudo ufw allow 41641/udp
    
    # 2. Allow all internal traffic on the virtual Tailscale interface
    sudo ufw allow in on tailscale0
    
    # 3. Reload UFW rules
    sudo ufw reload
    
  11. show the net and diagnose issues by doing tailscale netcheck
  12. Now in the game you should be able to enter the direct IP (as shown with tailscale status ) to make it work, or in the case of star wars battleground, where after you enter the IP it doesn't connect but only then shows the game.
  13. alternatively, the hoster may be able to do something to maybe make the game show up under LAN instantly for the joiners. But I haven't needed that yet.