Si has creado servidor GoldScr y/o Source en Windows, aquí se hace casi igual. Las únicas diferencias son el cómo se abren los puertos de entrada y salida junto a que cambian las rutas para ubicar el archivo servermode.cfg.

 

CONSIDERACIONES PREVIAS

 

Eso sí, debes de tener unas consideraciones previas. Lo primero es que la tecla Windows, es conocida como tecla “Super”. Lo segundo es que, en Ubuntu, la carpeta Steam y todas las que necesita, figuran como ocultas. Las carpetas ocultas en Linux se caracterizan por empezar con un punto. Es decir,  la carpeta de steam se llama .steam por lo tanto debes de tenerlo en cuenta a la hora de escribir la ruta de acceso para editar el archivo servermode.cfg o bien hacerla visible. Ocultar/Mostrar los archivos y carpetas no visibles en Ubuntu es fácil. Simplemente ve a Ver/Mostrar los archivos ocultos. Para ocultarlos, ve de nuevo a la misma opción para quitar el visto que aparecerá a la izquierda de dicha opción.

 

image

 

Ubuntu 64-bit-2015-07-15-01-52-31

 

Por los permisos no debes de preocuparte, pues al estar instalado en el directorio /home/<tu nombre de cuenta> tienes los permisos necesarios para editar su contenido. No necesitas nada de root. (Superusuario). Por último debes de saber que la carpeta steam que está dentro de .steam no es un directorio, es un enlace.  Aunque el enlace steam apunta a otro directorio, tú puedes escribir .steam/steam/steamapps o bien su equivalente de donde está almacenado realmente. Ambas te funcionarán. Eso es debido a que steam es un enlace físico, es decir apunta al directorio y muestra su contenido pudiendo acceder desde él. Si ese enlace es borrado NO SE BORRA EL CONTENIDO YA QUE ESTÁ EN OTRA RUTA. Aprovecho para añadir que existe otro tipo de enlace llamado simbólico que la única diferencia con respecto al anterior es que si steam fuera un enlace de este tipo, NO PODRÍAS ACCEDER A .steam/steam, es decir, su comportamiento sería como el acceso directo de Windows. Los enlaces no son copias, son dos formas diferentes de acceso a un archivo o directorio. Dicho esto, vamos con ello.

 

ABRIR LOS PUERTOS EN EL ROUTER

Este paso es como en Windows, solo se difiere en una cosa, el comando para obtener nuestra IP. Una vez obtenida debes de hacer lo mismo que se explicó en la entrada dedicada a montar servidor Half-Life 2 Deatmatch. Ah, y por cierto si ya vienes de haber creado un servidor en Windows… ¡YA TIENES LOS PUERTOS ABIERTOS EN EL ROUTER, CON LO QUE PODRÁS SALTARTE ESTE PASO! Cambiamos el SO, no la información guardada en el router. Por tanto, esto debes de hacerlo si es la primera vez que creas servidor.

  1. Aprieta CTRL+ALT+T para abrir un terminal
  2. Escribe 
    ip route show | grep default

           
    Con esto decimos que muestre las direcciones IP que estén reconocidas y de todas ellas la que tenga por delante el texto default que es la puerta de enlace predeterminada.

  3. La puerta de enlace será mostrada (puerta de enlace en inglés es gateway)

image

 

Abre el navegador de Internet e introduce la dirección IP que has visto en el terminal. De nuevo, ahora depende de tu router el como abrir los puertos 27015 y 27016 con protocolo UDP.

 

Ubuntu 64-bit-2015-07-15-14-02-20

 

ABRIR LOS PUERTOS DE ENTRADA Y SALIDA EN EL CORTAFUEGOS

Nota: En un principio no es necesario hacer esto pero al igual que con el cortafuegos de Windows, lo hacemos por si acaso. Para garantizar que no tendremos problemas de comunicación. No obstante, antes de hacer este paso, puedes probar directamente a crear un servidor a ver si responde y puede unirse la gente a él.

 

A partir de aquí si es obligatorio hayas creado servidor o no. Para ello usaremos las famosas iptables. Te recomiendo que le eches un vistazo a estas dos páginas más que nada porque lo que voy a exponer me he basado en ellas:

 

http://doc.ubuntu-es.org/Iptables  –> En esta página ten cuidado, algunos ejemplos en vez de aparecer un guión doble, aparece uno solo. Las tablas de los parámetros sí están bien.

 

http://systemadmin.es/2014/02/reglas-de-iptables-persistentes-en-debian-ubuntu

 

Las iptables no son persistentes, es decir, las reglas de filtrado solo se almacenan cuando tenemos el ordenador encendido en ese momento. Al apagarlo desaparecen. (Ten en cuenta que estos sistemas de red están diseñados para que estén activos las 24 horas del día de los 365 días del año cosa que si se apaga, se vuelven a teclear de nuevo y ya).  Nosotros debemos de conseguir que esas reglas se queden grabadas de forma permanente. ¿Cómo? Pues instalando un paquete llamado iptables-persistent. Vamos a abrir las reglas de entrada y salida.

 

  1. Si no tienes un terminal abierto, hazlo con CTRL+ALT+T
  2. Teclea

    sudo su

    E introduce tu contraseña para pasar a modo superusuario (root)

  3. Teclea
     
    apt-get install iptables-persistent

    Si a lo largo de la instalación te pregunta si quieres continuar, escribe S y aprieta Enter

    image

  4. Teclea lo siguiente (Lo que está en cursiva no hay que escribirlo, es una explicación de lo que hace. Ah otra cosa, si antes del parámetro dport ves solo un guión, es por culpa del navegador. Ese parámetro necesita tener dos guiones seguidos para funcionar bien. El parámetro list que se citará más abajo, también tiene doble guión. El resto de parámetros tienen guión simple, o sea uno solo. Si esto ocurre en futuras entradas, ya indicaría que parámetros tienen doble y simple guión)

    iptables -t filter -A INPUT -p udp –dport 27015 -j ACCEPT

    Abre el puerto 27015 con protocolo udp para la entrada de datos


    iptables -t filter -A OUTPUT -p udp –dport 27015 -j ACCEPT

    Abre el puerto 27015 con protocolo udp para la salida de datos


    iptables -t filter -A INPUT -p udp –dport 27016 -j ACCEPT

    Abre el puerto 27016 con protocolo udp para la entrada de datos


    iptables -t filter -A OUTPUT -p udp –dport 27016 -j ACCEPT

    Abre el puerto 27016 con protocolo udp para la salida de datos

    iptables-save > /etc/iptables/rules.v4

    Guarda las reglas anteriores en el archivo rules.v4 (reglas para direcciones IP versión 4) para que se carguen al inicio del sistema. Este archivo solo existe si has instalado el paquete iptables-persistent del paso 1. No intentes crear un archivo para que se cargue al inicio del sistema indicando su ruta en la rc.local. No tendrás garantías de que te funcione. Haz esto que funcionará seguro.

  5. Teclea 

    exit

           

    Reinicia el ordenador. Si todo ha ido bien, cuando Ubuntu se haya iniciado, abre de nuevo un terminal con CTRL+ALT+T y teclea 

    sudo iptables –list

    Para mostrar las reglas de iptables almacenadas. Aparecerá algo como esto. Básicamente, significa que se acepta todo lo que entre o salga por los puertos 27016 y 27015 sin ningún tipo de impedimento usando el protocolo UDP.

    image 

Te pongo en una tabla todos los comandos que hemos ido tecleando por si te sirve de ayuda para otra vez:

 

sudo su

apt-get install iptables-persistent

iptables -t filter -A INPUT -p udp –dport 27015 -j ACCEPT
iptables -t filter -A OUTPUT -p udp –dport 27015 -j ACCEPT
iptables -t filter -A INPUT -p udp –dport 27016 -j ACCEPT
iptables -t filter -A OUTPUT -p udp –dport 27016 -j ACCEPT

iptables-save > /etc/iptables/rules.v4

exit

Después de reiniciar el ordenador

 

sudo iptables –list

Nota: Si instalas el paquete iptables-persistent habiendo almacenado reglas de iptables, el instalador te indicará si las quieres almacenar en ese momento (tanto si tienes reglas con IPv4 como IPv6). Si te aparece esto, debes de decir en ambos casos que sí, que las quieres guardar en /etc/iptables/rules.v4 (Esto es lo mismo que ejecutar en el terminal el comando iptables-save > /etc/iptables/rules.v4)

 

image

image

 

Con todo esto, ya has terminado lo más arduo y pesado.

 

MONTAR SERVIDOR GOLDSCR

En este punto es exactamente igual a la entrada que hice para los sistemas Windows. (Eso sí, ten cuidado que igual en las consolas para Ubuntu no aparece indicada la barra baja en sv_lan aunque la pongas, no pasa nada, el juego entiende que sí). Por lo tanto te pongo lo mismo que la entrada ya publicada.

  1. Cambiar las propiedades del juego. En establecer opciones de lanzamiento debemos de escribir el parámetro –console para que al apretar la tecla º se abra la consola cuando queramos. Si la consola no se abre, deberás de buscar el archivo con la configuración del teclado para asignarle una tecla (blind) a la consola.

  2. Crea el servidor desde el menú del juego.

  3. Abre la consola.

  4. Teclea sv_lan 0

  5. Teclea hostport 27015

  6. Pásale a tus amigos la IP en http://www.miip.es seguida de dos puntos ( : ) y el número 27015.

  7. Si quieres establecer una contraseña, teclea sv_password contraseña.

Aun así, si lo deseas, puedes configurar los jugadores (maxplayers) y cargar los mapas con map o changelevel de la forma que se vio para Source aunque en principio no hace falta.

 

MONTAR SERVIDOR SOURCE 2003-2007

Exactamente igual que las entradas dedicadas a este tema. Las únicas diferencias son las rutas (CUIDADO CON LAS MAYÚSCULAS Y MINÚSCULAS. ¡LOS SISTEMAS LINUX DISTINGUEN ENTRE UNAS Y OTRAS! NO ES LO MISMO steam que Steam. ¡Debes de asegurarte que los nombres están bien escritos! Recomiendo que la primera vez vayas carpeta por carpeta). Estas son las rutas completas. (Rutas absolutas para acceder desde cualquier punto)

 

Half-Life 2: Deathmatch

/home/<tu nombre>/.steam/steam/steamapps/common/Half-Life 2 Deathmacth/hl2mp/cfg

 

Garry’s Mod

/home/<tu nombre>/.steam/steam/steamapps/common/GarrysMod/garrysmod/cfg

 

Counter Strike: Source

/home/<tu nombre>/.steam/steam/steamapps/common/Counter-Strike Source/cstrike/cfg

 

El editor de textos que puedes usar es gedit. Puedes guardar el archivo en el escritorio y luego moverlo a la ruta indicada. Aquí tienes un ejemplo de archivo servermode.cfg

 

image

 

Si usamos los programas de gestión de archivos adecuados o el propio terminal, es posible usar variables de entorno, pues $HOME equivale a /home/<tu cuenta> por ejemplo

 

$HOME/.steam/steam/steamapps/common

 

Aquí tienes la prueba: (No tienes que hacer nada de esto. Esto es para que veas como funciona la variable de entorno $HOME que es igual a /home/<tu cuenta>)

 

image

La ventaja de que tengamos el directorio .steam en nuestra carpeta personal y dentro de .steam, la llamada steam sea un enlace físico, es que podemos acortar la ruta; por lo tanto no tenemos porque usar la ruta absoluta (Ruta completa) aunque puedes hacerlo.

image

 

Se puede usar una ruta relativa. Eso sí, si haces estos pasos, no podrás usar variables de entorno como $HOME ya que lo interpretará como un nombre de directorio. Obviamente si estás en otro directorio distinto a /home/<tu cuenta>/ sí que tendrás que usar la ruta absoluta para poder llegar a la carpeta gfc.

 

image

Error al usar la variable de entorno $HOME para acceder por el método que estoy explicando. Ubuntu interpreta que $HOME es el nombre de un directorio y no la ruta /home/<tu cuenta>

Te lo resumo:

  1. Crea el archivo servermode.cfg con los comandos que creas conveniente.
  2. Abre tu carpeta personal (Opción Archivos en la barra lateral izquierda).
  3. Aprieta CTRL + L. Verás como arriba podrás escribir la ruta de acceso. Como ya estás situado en /home/<tu cuenta> ,  te bastará con solo escribir el resto. No está permitido usar variables de entorno ya que creerá que es un directorio más para acceder y no parte de una ruta:

    Half-Life 2: Deathmatch

    .steam/steam/steamapps/common/Half-Life 2 Deathmacth/hl2mp/cfg

    Garry’s Mod

    .steam/steam/steamapps/common/GarrysMod/garrysmod/cfg

    Counter Strike: Source

    .steam/steam/steamapps/common/Counter-Strike Source/cstrike/cfg

    Truco: Si escribes la ruta sin hacer un copipasteo, verás como Ubuntu intentará completar por ti el nombre del directorio, si lo vas escribiendo correctamente, después de cada barra.

    image

  4. Mueve el archivo servermode.cfg a dicha carpeta. Si ya existiera porque creaste uno, te dirá si quieres reemplazarlo en cuyo caso le dirás que sí.

En este momento, te copio exactamente lo mismo que la entrada de 2012 para montar un servidor en Half-Life 2: Deathmatch en Windows.

 

LLEGA LA HORA DE LA VERDAD…

Antes de abrir Half-Life 2: Deathmatch, configúralo para agregarle el parámetro –console, pues vamos a necesitar la consola para poder hacerlo. Para ello localiza el juego, dale un clic con el botón secundario para que se abra el menú contextual al cual daremos clic en “Propiedades” se nos presentará esta pantalla en la cual daremos un clic en “Establecer opciones de lanzamiento”. En la pantalla que nos aparezca, escribe “-console” (sin las comillas). Clic primeramente en OK y luego en cerrar:

 

image

 

Carga ahora Half-Life 2: Deathmatch, aparecerá la consola donde deberás de teclear estos comandos en este orden:

 

maxplayer XX (Donde XX es el número máximo de jugadores, es entre 0-16).

map a (El mapa que quieres cargar, los mapas del juego puedes verlos tecleando el comando maps *)

exec servermode.cfg

 

Si todo ha ido bien te encontrarás en el juego, en el mapa cargado y listo para recibir a los jugadores. El nombre de tu servidor se llamará “Half-Life 2: Deathmatch”. Simplemente, lanza la invitación a tus amigos de Steam para que se agreguen. La IP que recibirán será la IP pública de tu conexión a Internet para que puedan unirse al servidor.

 

Ahora puedes consultar las secciones Mejorar el archivo servermode.cfg, tamaño de los mapas y las rutas. Lo único que tienes que tener en cuenta son las rutas, esas entradas son para Windows, pues si las usas de referencia, tendrás que adaptarlas a las de Ubuntu más luego el editor de textos ser sustituido por ejemplo por gedit.

 

Con estoy doy por finalizado este tutorial. Como ves, lo que tiene de nuevo es como preparar Ubuntu con las iptables, darte las rutas e información un poco detallada de como trabaja este SO si no lo has tocado antes, para que sepas lo básico para moverte y montar un servidor con él. Cuando ya estás dentro del juego y preparando el archivo servermode.cfg es lo mismo, solo cambian las rutas y el programa a utilizar para crearlo.

 

Nota: Si me es posible y pueda, contando con que en términos informáticos también sea posible, si surgen más tutoriales de este estilo, intentaré hacer tanto versión para Windows como para Ubuntu para que cada uno escoja el SO con el que quiera hacerlo. Como bien sabéis, Linux es el núcleo (Kernel) del cual, las diferentes capas, formas, interfaces que se le ponen encima, dan lugar a una amplia variedad de SO aunque las más destacables sean Debian y Red Hat de las cuales derivan muchísimas con diferentes interfaces. Así que aunque haya optado por Ubuntu, si uno usa otro SO o uno basado en Red Hat tendrá que adaptarse a los comandos de esa distro como aquellos que usen KDE, cosa que recomiendo ya que es muy llamativa, tendrán que buscar la equivalencia a la mía que es GNOME. (La interfaz MATE es la GNOME clásica antes de la 3.0). Resalto esto más que nada por si hubiera gente que quiera probar a hacer esto desde Kubuntu que es Ubuntu pero con interfaz KDE donde la interfaz gráfica es diferente pero al seguir basada en Debian, no debería de alterar los comandos de uso del terminal para instalar los paquetes como las iptables-perseistent.