Free CS 1.6 Server on the Oracle Cloud Always Free Tier

August 13, 2025 Daemon666 8 min read 258 Aufrufe

Oracle Cloud's Always Free tier is the only mainstream cloud that gives you a permanently free VM capable of hosting a CS 1.6 server. But two Oracle-specific traps sink most first attempts: the tempting ARM shape that cannot run HLDS natively, and a default firewall that blocks your game port in two separate places. Handle both and you get a solid free server.

1. Pick the x86 AMD shape, not Ampere

The Always Free tier offers two instance types:

  • VM.Standard.E2.1.Micro — AMD x86-64, up to two instances free. HLDS runs natively here. This is what you want.
  • VM.Standard.A1.Flex — Ampere ARM, a generous 4 OCPU / 24 GB free. But HLDS is 32-bit x86, so it will not run without box86/box64 emulation, which is slow, occasionally crashes, and is not worth it for a shooter.

The E2.1.Micro is small (1 OCPU, 1 GB RAM), but CS 1.6 is a 25-year-old game and runs comfortably on it for a moderate slot count. Be honest with yourself about the architecture limit: the ARM box is bigger, but bigger and wrong loses to smaller and native.

2. Create the instance

In the Oracle Cloud console, Compute → Instances → Create. Change the image to Ubuntu 22.04 or 24.04, change the shape to VM.Standard.E2.1.Micro, and add your SSH public key. Save the private key and connect:

ssh ubuntu@YOUR_PUBLIC_IP

3. Open the port in the Security List

Oracle's virtual firewall lives in the VCN. Go to Networking → Virtual Cloud Networks → your VCN → Security Lists → Default, and add an ingress rule:

Source CIDR: 0.0.0.0/0
IP Protocol: UDP
Destination Port Range: 27015

CS 1.6 game and query traffic is UDP; a TCP rule here is the number-one reason the server never appears. More on ports in firewall ports.

4. Open the port again in the OS firewall

Here is the Oracle-specific gotcha: their Ubuntu images ship with restrictive iptables rules baked in, so even after the Security List allows UDP 27015, the OS still drops it. Add the OS rule and persist it:

sudo iptables -I INPUT 6 -p udp --dport 27015 -j ACCEPT
sudo netfilter-persistent save

Insert it above the default REJECT rule (position 6 in Oracle's stock chain is typical, but run sudo iptables -L INPUT --line-numbers and place it before the reject). Miss this and the server is reachable from nowhere despite a perfect Security List.

5. Install dependencies and HLDS

Add the i386 architecture and 32-bit libraries, then install SteamCMD:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl

The i386 libraries are mandatory — see 32-bit libraries for CS 1.6. Then create an unprivileged user and install the server exactly as in the SteamCMD guide; never run it as root (see HLDS without root).

6. Launch

cd ~/hlds
./hlds_run -game cstrike +map de_dust2 +maxplayers 16 -port 27015

Keep the slot count modest on a 1 GB micro instance. Wrap it in a systemd service once it runs.

7. Keep the free instance from being reclaimed

Oracle's Always Free terms allow them to reclaim idle Always Free compute instances — historically this applied to the ARM Ampere shapes more than the AMD micro, but it is worth knowing. An instance that is genuinely running a game server with players is not idle by any reasonable measure, so an active CS 1.6 box is safe. The risk is a server you set up and never populate: with no traffic and near-zero CPU, it can be flagged as idle and stopped. If you are provisioning ahead of launch, keep some baseline activity on it, and monitor the instance state in the console so a reclaimed VM does not silently take your server offline. Attaching a paid-tier payment method (without upgrading) also removes the idle-reclamation risk on some accounts.

8. Watch the memory ceiling

The E2.1.Micro has only 1 GB of RAM, and a fully-loaded CS 1.6 server with AMX Mod X, several plugins, and custom content can press against that. Add a small swap file as a safety valve so a memory spike does not OOM-kill the server process, and keep maxplayers realistic — 16 to 20 slots is a comfortable ceiling on this shape. If you consistently need more, that is the signal to move to a paid VPS rather than fighting the free tier's limits.

Troubleshooting

  • Server unreachable despite the Security List — the OS iptables rule is missing. This is the Oracle trap; complete step 4.
  • Chose A1.Flex and HLDS will not start — that shape is ARM. Recreate on E2.1.Micro; do not pursue box86 for a game server.
  • Instance creation fails with "out of capacity" — the free E2.1.Micro is popular in some regions. Retry, or pick a different home region at signup.
  • No such file or directory launching hlds_run — the 32-bit loader is absent; see the fix.

Verification

From your PC, run connect YOUR_PUBLIC_IP:27015 in the CS console. If you join, both firewall layers are open. Then confirm it appears in the internet server list with sv_lan 0 set. If a direct connect works but the listing does not, the master-list path is fine but you may be behind a query issue — recheck the UDP rule on both the Security List and iptables, since either one silently blocking is the usual cause on Oracle.

Mitwirkende: Daemon666 ✦
Teilen: