Connect to private game?

Apologies if this is super obvious, but lets say I want to play a game with my brother and some bots. (non-LAN). I create a game, give it a hostname, and choose “no” for dedicated. Once I start the game, what info do I need to provide my brother for him to join? My public IP? Something else? Any help is appreciated :slight_smile:

You need to setup port forwarding in your router for port 27960 (UDP) to you LAN IP address. Then people can connect to your server using your public IP address.

1 Like

also, your brother can connect by bringing down the console (shift+escape or the key to the left of 1 on the keyboard) and typing /connect 127.0.0.1 just replace that part with your IP address.

@zturtleman @MrNuclearMonster Thanks guys! Haven’t had a chance to try a game yet, but I got that port forwarded on my router. Hopefully it works :slight_smile:

1 Like

So - this is exactly what we’ve done for the last 20 years playing this game. By default, I did exactly the same thing when several in our group started playing ioquake3 on macOS Catalina. Strangely, though, a couple of nights ago I totally forgot to forward my ports. In spite of that, I could both host games and connect to others without any issues whatsoever. I’m assuming this is because my firewall settings for ioquake3-1.36 allow incoming connections?

I have the same query. I used to run a dedicated Q3 server many years ago. I’m trying to set up an ioQ3 server again now, on a Linux Mint 21.3 system this time. It seems a bit more complicated to set up now, but that might just be me. The server seems to run and I can join it ok. I have a set of ‘internal’ private ip address settings along the lines of:

IP: 127.0.0.1
IP: 19x.16y.1.bc
IP6: ::1
IP6: abxx::bcyy:cdef:ad:a45c%wlp0s21f

My ioQ3 server declares these via the terminal when it starts up.
I also have a ‘public’ ip address quite separate from those, e.g. 83.19.203.509 or similar - I can get this by going to the website ‘what is my ip’.
This would explain why giving the 19x. etc number to my friend so that he can join the server is not working. Are you saying that if I set up port forwarding for port 27960 at my 83.19 etc public ip address then I can give him the public ip address and that should work? Also, as very much an old amateur myself, I’d be very grateful if you could point me towards some user-friendly guidelines as to how to set up the port forwarding required. I don’t seem to remember having to do that first time around, although that was many years ago now. Thanks for any help you can offer. Best wishes.

Yeah, if you set up port forwarding in your router to forward port 27960 (UDP protocol) to your 19x IP address then it will be possible to join using the public IP address.

Configuring port forwarding is different is each router but usually you go to your router (typically http://192.168.1.1) and login and it says port forwarding somewhere.

The router may have a different address. On Windows the gateway in ipconfig /all command is the router address. On Linux it’s listed as “default via 192.168.1.1” in ip route command.

1 Like

Hi zturtleman.

Thanks for getting back to me so quickly. I think I understand it better now - I’m just pointing traffic that arrives at the router (public ip address) on towards the internals of my system, including the server (internal ip address). My router is a Virgin Media Hub 3.0 and I’ve found a Youtube guide that seems to show how to do the port forwarding and it looks fairly straightforward, he said rashly. I’ll have a go at that tomorrow. Fingers crossed.
Thanks again.

1 Like

Hello again zturtleman.
I should have known it wouldn’t be quite that straightforward. I have a quick query: the youtube guide to port forwarding on my Virgin Media Hub 3.0 router ( here https://www.youtube.com/watch?v=8IIKfy4WlGI ) gives instructions on forwarding from a) port-number-on-router-external-ip-address to b) port-number-on-internal ip-address.
In my case:
a) portnumber is 27960 for ioQ3 server.
b) what portnumber should I forward that to? 27960 again, only on my internal ip address? a different port number?

Also, is there a way that I can test the change I’ve made to make sure it’s working properly?
Thanks again for any advice, and best wishes.

It should be the same port number on your internal ip address. You can test the change by connecting to your external ip address and port with ioquake3

Hi MrNuclearMonster
Thanks for the advice.
I’ll give that a go.
Best wishes.

Quick update just to let you know that I think that has worked ok, yay.
I forward the port and start the server from one user account, then switch to another user account and joint the server at my router’s public ip address. If I disable the port forwarding and run the server I can’t then join it from the second account. So I think that indicates that the port forwarding is working.

Thanks so much for your patience and help to date.
A couple more queries:
a) is the port forwarding a security risk? i.e. should I turn it of after each server session?
b) Are these command-line ‘Megs’ memory allocation figures about right for my system?
server side: ./ioq3ded.x86_64 +set dedicated 0 +set net_port 27960 + set com_hunkMegs “192” +set com_zoneMegs “48” +set com_soundMegs “32” +exec server.cfg +exec levels.cfg +exec bots.cfg
player side: ./ioquake3/ioquake3.x86_64 +set com_hunkMegs “192” +set com_zoneMegs “48” +set com_soundMegs “32”

My system: Linux Kernel: 6.5.0-18-generic x86_64 bit; Linux Mint 21.3; CPU Info: 8-core model: 13th Gen Intel Core i5-13420H bit; 8GB RAM.
I’ll mostly be using the server in tournament mode for 2 players at a time.

I’ll need to install ioQuake3 onto a friend’s windows pc next to see if he can join my server. I’m hoping that will be straightforward.

Any time you open a port and allow external software to connect to your internal home network there is a security risk. If you picture a solid wall with a door with a strong lock, that should be what the general internet sees of your home network. The door is your router.

If you open the door a little, forwarding a port, you’re letting a little bit of the internet at large through the door onto your home network to connect to the ioquake3 server. The game server software is not perfect, no software is.

Securing any linux software exposed to the internet through a port usually means giving it as few privileges as possible through escalating means like these (from easiest to hardest, and the least to most secure)

  1. renting a server from a gaming server host online
  2. setting up a separate linux user account to run the server software, locally
  3. using a container for the server software, like docker, locally
  4. running 2 or 3 on a remote virtual server that you now keep updated and secure by studying how to secure servers

There are a lot of other options out there as well. This isn’t an exhaustive list.

Two players don’t require a lot of resources. I don’t see anything that stands out to me but someone else may point out something else.

We also have a few scripts for setting up servers and a guide for running the server: Sys Admin Guide – ioquake3

Quick message just to say thanks again - I don’t think I coud have set up my ioQuake3 server without the help I got from this forum and especially from zturtleman and MrNuclearMonster. That’s a very useful service that you offer and I really appreciate the work you put into it.

1 Like