
A continuación tienes una guía detallada sobre cómo montar un servidor de Half-Life.
El sistema operativo será Ubuntu/Debian.
Todo el trabajo de configuración del servidor se hace en una terminal. Si es una máquina remota, basta con una conexión SSH.
No recomiendo descargar un servidor de Half-Life ya hecho, porque los servidores ya hechos pueden contener vulnerabilidades que los jugadores malintencionados pueden aprovechar para tomar el control del servidor y destrozarlo, lo cual no es precisamente agradable. Montar tu propio servidor no es mucho más difícil que descargar uno ya hecho y, además, te dará menos problemas en el futuro.
Requisitos del servidor de HL:
CPU: 1000 MHz o más
RAM: 128 MB o más
Espacio en disco duro: 1.5 GB o más
Si el sistema es de 64 bits, necesitas la biblioteca que da soporte a aplicaciones de 32 bits
Puedes instalarla introduciendo el comando
aptitude install lib32gcc1
Instalación del servidor:
Necesitarás permisos de superusuario para instalar el servidor.
Conéctate por SSH.
Si no te conectaste como root, ejecuta el siguiente comando
sudo -s
Crea en el servidor el directorio donde vivirá nuestro HLDS
mkdir /opt/hldir
La seguridad del servidor es lo primero. Bajo ninguna circunstancia debes ejecutar nuestro futuro servidor como root. Tienes que crear un nuevo usuario y darle los permisos mínimos, ya que el servidor HLDS no necesita mucho: sobre todo escribir logs y leer archivos.
Añade un nuevo grupo al que pertenecerá el usuario.
addgroup --system hldm
donde hldm es el nombre del nuevo grupo. El nombre da igual; puedes elegir el que quieras.
Añade el usuario hldm
adduser --system --home /opt/hldir --shell /bin/sh --ingroup hldm --disabled-password --disabled-login hldm
donde
--home /opt/hldir - el directorio personal con el juego
--ingroup hldm - el grupo al que pertenece el usuario
--disabled-login hldm - el nombre de nuestro usuario
Ve a nuestro directorio para descargar en él los archivos necesarios
cd /opt/hldir
Descarga desde el sitio web de Steam la herramienta necesaria para montar el servidor automáticamente.
wget http://storefront.steampowered.com/download/hldsupdatetool.bin
Ahora da a nuestro archivo los permisos que necesita para ejecutarse
chmod +x hldsupdatetool.bin
+x significa que el archivo tiene permiso de ejecución
-x significa que el archivo no se ejecutará
Ejecuta nuestra herramienta:
su hldm -c './hldsupdatetool.bin'
Si el comando anterior no funcionó, también puedes usar este; en ese caso el programa se ejecutará como superusuario./hldsupdatetool.bin
Al iniciarse, veremos el acuerdo de licencia. Escribe YES para aceptarlo y pulsa ENTER.
Aparecerán algunos archivos más en la carpeta del juego. Para montar el servidor necesitamos el archivo steam. Dale los permisos necesarios.
chmod +x ./steam
Y ejecútalo
su hldm -c './steam'
Verás un mensaje más o menos como este
Checking bootstrapper version ...
Getting version 45 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the command
Getting version 45 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the command
Repite el comando
su hldm -c './steam'
Ahora verás más o menos lo siguiente:
Checking bootstrapper version ...
Getting version 45 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command
CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 21 single object sleeps, 0 multi object sleeps
CAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps
Getting version 45 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command
CAsyncIOManager: 0 threads terminating. 0 reads, 0 writes, 0 deferrals.
CAsyncIOManager: 21 single object sleeps, 0 multi object sleeps
CAsyncIOManager: 0 single object alertable sleeps, 0 multi object alertable sleeps
Listo, la parte más difícil de montar un servidor de Half-Life ya está hecha. Ahora solo queda descargar el propio servidor y ejecutarlo.
Ejecuta el siguiente comando
su hldm -c './steam -command update -game valve -dir .'
O
./steam -command update -game valve -dir .
Donde dir .
el punto es el directorio donde está el propio steam; si quieres instalar en otra carpeta, tienes que indicarla, por ejemplo dir team, dir gungame, etc.
Para quienes instalen Counter-Strike u otro juego en lugar de Half-Life:
En el parámetro -game, indica cstrike en lugar de valve
Ahora se descargarán todos los archivos que el servidor necesita para funcionar. Lo que tarde depende de tu conexión a internet.
Después de la instalación, crea las carpetas que el servidor necesita para funcionar correctamente
mkdir -p valve/SAVE
mkdir -p platform
mkdir -p platform/SAVE
mkdir -p platform
mkdir -p platform/SAVE
Da los permisos para ejecutar el servidor
chmod +x ./hlds_run
Inicia nuestro servidor
su hldm -c './hlds_run -game valve +ip (IP de tu servidor) +port 27015 +maxplayers 32 +map crossfire'
Asegúrate de ejecutarlo con el usuario hldm; si falta algún permiso, por ejemplo para escribir en la carpeta de logs, concédelo.
Se desaconseja totalmente ejecutar el servidor como root.
Si lo hiciste todo bien, deberías ver algo más o menos así:
Auto detecting CPU
Using Pentium II Optimised binary.
Auto-restarting the server on crash
Console initialized.
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 16:56:12 Mar 8 2010 (4883)
STEAM Auth Server
Server IP address ....
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
couldn't exec listip.cfg
couldn't exec banned.cfg
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
Connection to Steam servers successful.
VAC secure mode is activated.
Using Pentium II Optimised binary.
Auto-restarting the server on crash
Console initialized.
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 16:56:12 Mar 8 2010 (4883)
STEAM Auth Server
Server IP address ....
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
couldn't exec listip.cfg
couldn't exec banned.cfg
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
Connection to Steam servers successful.
VAC secure mode is activated.
Si aparecen errores, prueba a revisar lo siguiente:
Los parámetros de arranque del servidor, por ejemplo +port 27015; prueba otro puerto, puede que el 27015 ya esté en uso.
Si el programa no pudo obtener la información de la CPU, ejecuta esto antes de cada arranque del servidor
Error:
[S_API FAIL] SteamAPI_Init() failed; unable to update local steamclient. Continuing with current version anyway.
Unable to determine CPU Frequency. Try defining CPU_MHZ.
Segmentation fault
Solución:
export CPU_MHZ=2000
Personalización del servidor
Instala metamod
Instala amxxmod
Si necesitas un servidor non-Steam, tienes que instalar dproto
No olvides configurar el archivo de configuración server.cfg
Lee más sobre el ajuste fino de un servidor de Half-Life aquí
Папки /SAVE движок создаёт сам, при наличии нужных прав.
Давать права на запуск hlds_run не обязательно, если сервер устанавливается при помощи hldsupdatetool.bin :)