Most of these are the same instructions you can find on the "noWON CS1.5 server" page over at No WON. I have simplified, reorganized and rephrased them so that (hopefully) they will make better sense.
Once you've followed these instructions your server will be accessible from the internet via the WON2 network. Be sure to patch your client with the No-WON / WON2 Patch for Playersthen use the in-game browser to find your server.
ServerInfo (Win32) is very useful for keeping tabs on your server while you are doing other things.
-
Get the following packages:
-
HLDS Linux 3.1.1.1: hlds_l_3111_full.bin
MD5 Sum: d9c9cb32a55a814ae6fd6e36568ea9c8 -
CS 1.5: cs_15_full.tar.gz
MD5 Sum: d688876fa2864ff69ff808432c9e6fe7 -
HLDS Linux 3.1.1.1e update: hlds_l_3111e_update.tar.gz
MD5 Sum: 79baaaf4b3c7902928047f30917dc635
The above links have all been localized, so the files should always be there.
-
HLDS Linux 3.1.1.1: hlds_l_3111_full.bin
-
Extract the above files in the order they're listed. Customize the configs and add your mods (AMX, etc.) If you don't know how to do this you can find the basics in the Linux CS Server How-To on Counter-Server. If they remove it I've got a copy archived here.
-
Replace /hlds_l/valve/valvecomm.lst with this file
-
If any of the following describes you:
- You do not intend to use any anti-cheat addons
- You intend to use HLGuard (recommended)
- You intend to use Cheating-Death (This is definitely not recommended. Cheating-Death does not officially support the WON(2)/Half-Life system anymore and the latest version doesn't work at all on the server side. Pre 4.30.x versions work with CS 1.5, however they cause lag on both the server and the client.)
Then edit /hlds_l/cstrike/liblist.gam and change secure "1" to secure "0"
If instead of the above options you intend to use WON2VAC then leave liblist.gam alone. Note that WON2VAC will ban anyone running the Cheating-Death client who attempts to connect to your server.
-
Create a file in /hlds_l/ called nowon.c with just one line: int NET_IsReservedAdr(){return 1;}
In the same directory, type these commands:
- gcc -c nowon.c -o nowon.o
- ld -shared -o nowon.so nowon.o
-
Edit /hlds_l/hlds_run and under the first "export" line add this:
export LD_PRELOAD=/.../hlds_l/nowon.so
Be sure to substitute the full path to your hlds_l directory in place of the "...".
-
Edit the script you use to start your server and add +sv_lan 1 to it.
-
Now you should have a working server. Unfortunately HLDS 3.1.1.1 has a known security hole that allows anyone to crash it. You may want to start your server anyway and join so that you know it works, then shut it down and follow the rest of these steps to patch this hole in HLDS.
-
Download this file to your /hlds_l/ directory (It comes from this site).
-
In /hlds_l/ type the following command:
gcc -s -O3 -D_GNU_SOURCE -fPIC -shared -ldl -o hlds_20040707fix.so hlds_20040707fix.c
-
Edit /hlds_l/hlds_run and change the "export" line you created in step 6 to this:
export LD_PRELOAD="/.../hlds_l/nowon.so /.../hlds_l/hlds_20040707fix.so"
As before, be sure to substitute the full path to your hlds_l directory in place of both "...".
-
Your server is now working and slightly more secure. You can add more security by incorporating the chroot patch from the site in step 9 and running HLDS in a "chroot jail". Compiling and using the HLDS chroot patch is easy, however creating the jail is beyond what I have spare time to deal with right now (let alone document). If anyone has some good instructions for this please post them to the Steamless CS Project Forum.