Servidores WoW en Linux

Marmolillo

Capataz
Desde
14 Mar 2020
Mensajes
8
Reacciones
17
Honor
30
Este será el contenido de nuestro proyecto
  1. Descripción del proyecto
  2. Herramientas necesarias
    1. Virtualbox
    2. PuTTY
    3. HeidiSQL
    4. WinSCP
  3. Creando la infraestructura
    1. Direccionamiento IP
    2. Máquina virtual
      1. Instalar Debian 10
      2. Dirección IP
      3. Dando acceso a la carpeta compartida del cliente wow
      4. Dando acceso al segundo y sucesivos discos
      5. y ahora,.... PuTTY
  4. TrinityCore 3.3.5a.12340 WotLK
    1. Requisitos previos
      1. Carpeta compartida con el Cliente WoW
      2. Disco para almacenar el servidor
      3. Requisitos específicos de TrinityCore
    2. Descarga del código fuente
    3. Compilar el código
    4. Extraer datos del cliente
    5. Base de datos
    6. Configuración de los servidores
    7. Antes de jugar
    8. Mantener actualizado el servidor
  5. TrinityCore 8.3.8.3.7.35662 BFA
    1. Requisitos previos
      1. Carpeta compartida con el Cliente WoW
      2. Disco para almacenar el servidor
      3. Requisitos específicos de TrinityCore
    2. Descarga del código fuente
    3. Compilar el código
    4. Extraer datos del cliente
    5. Base de datos
    6. Configuración de los servidores
    7. Antes de jugar
    8. Mantener actualizado el servidor
  6. cMaNGOS 3.3.5a.12340 WotLK
  7. cMaNGOS Classic
  8. AzerothCore 3.3.5a WotLK
1 Descripción del proyecto

Hoy vamos a iniciar un proyecto que creo interesante desde el punto de vista técnico y que de paso puede responder a muchas inquietudes expresadas por la comunidad. El proyecto puede parecer enorme a simple vista, pero trataré de explicarlo todo paso a paso y asumiendo que el nivel de informática en general no es alto y de Linux en concreto es casi que inexistente; para esos que quieran crear un servidor público, sepan hacerlo con garantias y esos que quieren que todo esté en español, lo tengan todo o casi todo en español. Por tanto, el objetivo principal del proyecto es didáctico, muchas de las preguntas que leo por el foro, tienen fácil respuesta si se tiene una base de conocimientos sólida; y en eso nos vamos a centrar, en adquirir esa base de conocimientos.

Partiendo de esta premisa, trataré de explicar los conceptos básicos necesarios y el motivo de todo lo que se hace de manera que se entienda todo, pero sin profundizar demasiado en el tema para no hacerlo demasiado extenso.

La construcción de los servidores será completa, es decir, desde cero hasta publicar nuestro servidor casero en internet y que se puedan conectar a nuestro servidor.
Los servidores se harán el Linux, si, en Linux. Tengo claro que la mayoria de miembros de esta comunidad utiliza Windows por lo que vamos a crear las máquinas virtuales e infraestructura necesaria para que sus equipos permanezcan lo más intactos posibles y sin exponerse a los posibles riesgos de publicar el servidor en internet. Los pocos que usan linux, se ahorran lo de la máquina virtual y muchos de los pasos a seguir, pero no está de mas que lo lean. Otra ventaja de hacerlo en Linux es la reducción de costes que suelen tener los proveedores de servidores en los que alojar nuestro proyecto si finalmente decidimos publicarlo en internet.

La idea es, poco a poco y con algo de tiempo, crear desde cero cinco servidores wow distintos, pero esto no lo tengo muy claro; ya veremos. Estos servidores serían: TrinityCore 3.3.5, CMaNGOS 3.3.5, AzerothCore 3.3.5, CMaNGOS classic y TrinityCore BFA.

¿Por que estos servidores? la respuesta es simple; TrinityCore 3.3.5 es la madre de muuuuuchos otros, me pareció adecuado empezar por este y por si eso no fuese suficiente, tiene una comunidad viva con mucha actividad. cMangos 3.3.5 incorpora un sistema playerBots muy divertido y util si juegas solo o con poca gente. AzerothCore 3.3.5 es modular, te permite poner y quitar partes para hacerlo custom o fun según veas. Los dos últimos,... jejejeje,... no todo va a ser 3.3.5

La estructura de los documentos será siempre la misma o casi la misma. Aconsejo que se lea cada punto completo antes de empezar a hacerlo.
1.- Requisitos previos
En esta sección realizaremos los pasos oportunos para cumplir los requisitos necesarios en la máquina virtual linux para poder compilar, así como la instalación del servidor de bases de datos.​
2.- Descarga del código fuente
Pues eso, la descarga del código a compilar y la creación de alguna carpeta para darnos un poco de organización​
3.- Compilar el código
Los pasos necesarios para generar los ejecutables de los servidores y los extractores de datos del cliente.​
4.- Extraer datos del cliente
Pasos a seguir para extraer los datos del cliente.​
5.- Base de datos
Creación e importación de las bases de datos.​
6.- Configuración de los servidores
Modificaciones necesarias para que los servidores funcionen como queremos que lo hagan.​
7.- Antes de jugar
Cositas que tenemos que hacer antes de empezar a jugar, cosas como el contenido del realmd.wtf o crear la cuenta para poder conectar.​
8.- Mantener actualizado el servidor
Aqui vamos a describir el proceso a realizar para mantener nuestros servidores al dia.​

2 Herramienteas necesarias

Para crear todo esto, vamos a necesitar instalar unos porgramitas en nuestro windows. Sobre el proceso de instalación de estos programas,.... siquiente, siguiente y siguiente.

2.1 VirtualBox (Necesario)

VirtualBox es un sistema completo de virtualización de hardware basado en x86, es decir, podemos crearnos nuestro propio PC dentro de nuestro PC y trastear con el software y hardware con la seguridad de que si desgraciamos algo, es un algo virtual y no real.
Descarga la última versión de https://www.virtualbox.org/wiki/Downloads e instalala
Nota: Mostrará avisos sobre la instalación de los dispositivos de red, tenemos que decirle que si, que los instale.
luego descarga e instala el "Extension Pack" correspondiente a tu versión, nos dará mucha comodidad a la hora de extraer los datos del cliente WoW.

2.2 PuTTY (Opcional muy recomendado)

PuTTY es un cliente SSH (Secure SHell) y otros protocolos de interconexión, con el que podemos conectarnos al terminal de un servidor remoto, en nuestro caso, al terminal de nuestro servidor virtual WoW. PuTTY realmente no es necesario para el proyecto, pero permite copiar y pegar desde otra ventana de windows, lo cual en este caso es cómodo y casi necesario.

2.3 HeidiSQL (Opcional)

HeidiSQL es un cliente de bases de datos muy simple de manejar y que usaremos para "toquetear" las bases de datos de nuestro servidor.
Personalmente prefiero usar phpmyadmin, es lo normal en servidores de internet, pero como herramienta, HeidiSQL es bueno y simple.

2.4 WinSCP (Opcional)

WinSCP es un cliente SCP (Secure CoPy) y otros protocolos, que nos permitirá copiar, mover, borrar, editar y más cosas sobre los archivos de nuestro servidor virtual. Realmente este tampoco es necesario, pero da comodidad. De momento, no lo voy a usar, tendrá su gracia si le montamos a nuestros servidores una web para registro o cualquier cosa por el estilo; nos permitirá manejar esos ficheros por medio de ventanitas y esas cosas a las que la mayoría está tan acostumbrado y que a mi me resulta desquiciante.
 
Última edición:

Marmolillo

Capataz
Desde
14 Mar 2020
Mensajes
8
Reacciones
17
Honor
30
3 Creando la infraestructura

Partimos de una conexión típica de internet, paso a describirla.
Nuestro PC se conecta via cable o Wifi a un router (normalmente nos lo suministra nuestro proveedor de internet) y es el router el que se conecta a internet. Por cierto, un router es un dispositivo que se encarga de unir redes (los routers domésticos solo unen 2 redes), permitiendo el tráfico de datos entre ellas.

3.1 Direccionamiento IP

En este punto vamos a tratar de dejar claro las direcciones IP que usaremos para todo. Lo típico es que nuestro PC tenga una dirección IP del tipo "192.168.0.X" (También son muy típicas las "192.168.1.X") Esto es una dirección IP privada de clase C, es decir, esta dirección NO EXISTE en internet, y se permite que cada red privada tenga el mismo grupo de IPs. por esta razón yo puedo tener la misma IP privada que tu, pero no la misma IP pública.

Estas IPs (privada y pública) las gestiona el router, ya que el router tendrá 2 IPs, una privada que será del tipo "192.168.0.Y" (habitualmente 192.168.0.1) y otra pública del tipo "a.b.c.d" que la asigna tu proveedor de internet.

Podemos averiguar nuestra IP pública visitando esta web: https://www.whatismyip.com/ y será distinta para cada uno de nosotros, también puede ser distinta cada dia, pero esto no suele ser normal, lo normal es que mantengas la misma IP si te conectas todos los días, pero si dejas pasar unos cuantos días sin conectar, probablemente cambie.

Por último, nuestro servidor WoW también tendrá su propia IP, que será del tipo "192.168.0.Z"

Estos será los valores concretos que usaremos para montarlo todo.
Nuestro PC: 192.168.0.10
Servidor Wow: 192.168.0.253
Router: 192.168.0.1 y 217.217.185.45

Nota: Todos los dispositivos poseen siempre una segunda IP "127.0.0.1" se le llama "localhost" y es una forma de hacer referencia a ellos mismos (Podemos verlo como algo similar a la palabra "YO").

3.2 Máquina virtual

Para ganar tiempo, ve directamente al punto 3.2.1 empieza a leer, inicia la descarga y vuelve.

La máquina virtual que vamos a crear nos servirá para compilar nuestros servidores y también para ejecutarlos. Arranca VirtualBox, que empezamos.

Creamos una máquina virtual usando el asistente (pulsa el botón de la estrellita celeste) con nombre "wow" de tipo "Linux/Debian 64bits" con 4GB de memoria (Esto dependerá de la memoria RAM que tenga tu ordenador, dejalo sobre un 25% de la barra, pero nunca por debajo de 1GB). Le indicamos que vamos a crear un disco virtual ahora, el disco será de Tipo VDI y con reserva dinámica y tamaño de 15GB; este disco contendrá el sistema operativo, librerias, herramientas de compilación, etc.

Vamos a ver, debe quedar claro que en este momento tenemos 2 posibles lineas a seguir; la primera sería montar un único disco de unos 120GB más o menos donde meteriamos todo, sistema operativo, librerias, herramientas, codigo fuente de los servidores, objetos intermedios, etc. de los 5 servidores,... vamos un cuele de disco y además tiene el problema de que si fastidiamos el sistema,.... se fastidia todo y habría que empezar de cero. La segunda línea a seguir (más divertida) consiste en usar un disco para el sistema operativo, herramientas y librerias y otro disco adicional por cada servidor; es más laborioso el principio, pero luego no hay diferencia y conseguimos aislar cada servidor de forma que si desgraciamos algo, solo afectaría a uno de ellos o si desgraciamos el sistema, no afectaría a los servidores. De todas formas, no vamos a crear todos los discos ahora.

Aqui termina el asistente, pero.... NO ARRANQUES LA MÁQUINA, todavía tenemos que cambiar cosas.

Una vez creada la máquina virtual, entramos en configuración (Botón del engranaje amarillito), nos vamos al apartado "Sistema"; en la pestaña "Placa base" desactivamos "Disquete" y en la pestaña "Procesador" indicamos la cantidad de procesadores (cores) que utilizará la máquina (con 1 vale, pero todo será más rápido cuantos más pongamos. sobre la mitad de la zona verde estará muy bien). Activamos "Habilitar PAE/NX" y "Habilitar VT-x/AMD-v anidado" para mejorar el rendimiento de la máquina virtual.

Toca añadir un segundo disco, Nos vamos al apartado "Almacenamiento", seleccionamos en la zona central el controlador "SATA" y pulsamos el botón de "Añadir disco duro" (el de la derecha de los dos que han aparecido en la línea donde pono "SATA" Ahora tendremos la ventana del "Selector de discos", pulsamos el botón "Crear". Indicamos como tipo "VDI", "Reserva dinámica", Nombre "C:\lo\que\sea\wow-tc-wotlk.vdi", tamaño 20GB y pulsamos "Crear".

El disco que acabamos de crear, nos aparecerá en la zona "Not Attached", lo escogemos y pulsamos el botón "Seleccionar". Ahora nos aparecerá como segundo disco de nuestro servidor.

Puedes repetir este proceso para el resto de los discos (leer más abajo el resumen y respetar el orden de creación ya que si no lo haces, luego no te cuadrarán los nombres de las cosas) yo no voy a hacerlo, llegado el momento, explicaré como hacerlo en cada servidor.

Vamos al apartado "Red" y cambiamos el valor de "Conectado a", ponemos "Adaptador puente" (Esto es importante, y permitirá que nuestro servidor tenga una IP privada en la misma red que nuestro PC, de otro modo, no se podrian comunicar facilmente nuestro PC y el servidor y ni de coña que un amigo se conecte desde internet)

Ahora vamos al apartado "Carpetas compartidas", aquí añadimos una carpeta (botón con carpetita celeste y signo más de color verde a la derecha de todo). Contendrá el cliente wow 3.3.5a desde el que extraeremos los mapas y archivos dbc.

Ruta carpeta: C:/ruta/al/cliente/wow/wotlk
Nombre carpeta: clienteWotLK
No indicar nada más.

Aceptamos la configuración y ya estamos preparados para empezar.

Resumen:
Nombre de máquina: wow
Procesadores: 4
RAM: 4GB
HD0: Controlador SATA Puerto SATA 0 wow.vdi 15 GB
HD1: Controlador SATA Puerto SATA 1 wow-tc-wotlk.vdi 20 GB
Red: Adaptador puente

Para el futuro:
Segunda carpeta compartida que contendrá el cliente BFA
Ruta carpeta: C:/ruta/al/cliente/wow/BFA
Nombre carpeta: clienteBFA
Tercera con el cliente classic
Ruta carpeta: C:/ruta/al/cliente/wow/Classic
Nombre carpeta: clienteClassic
HD2: Controlador SATA Puerto SATA 2 wow-tc-bfa.vdi 60 GB
HD3: Controlador SATA Puerto SATA 3 wow-cm-wotlk.vdi 10 GB
HD4: Controlador SATA Puerto SATA 4 wow-cm-classic.vdi 10 GB
HD5: Controlador SATA Puerto SATA 5 wow-ac-wotlk.vdi 10 GB
(Tamaños estimados, ya veremos)

3.2.1 Instalar Debian 10

Bueno, está claro que lo primero que necesitamos es descargar una imagen ISO de debian 10.
https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso

Una imagen ISO es un fichero que contiene todo el contenido de un CDROM o DVD almacenado siguiendo la misma estructura con la que se almacena en el CD, podemos considerarlo como un formato universal (cada programa que permite copiar CDs, usa su propio formato y el formato ISO) para hacer copias de CD o DVD

Inicia la descarga y si has llegado aquí por aquello de ahorrar tiempo, vuelve al punto 3.2 del documento y continua.

Una vez finalizada la descarga de la ISO, pasamos a la instalación.

Ahora si, iniciamos nuestra máquina virtual por primera vez, Pulsa el botón de la flecha verde.

AVISO, Con toda probabilidad, tarde o temprano, nos sacará alguna ventana de información referente a capturar el ratón, el teclado y otras lindezas; marcamos que no muestre más el mensaje y pulsamos "Capturar". Recuerda que para liberar el ratón tienes que pulsar la tecla "CONTROL_DERECHA", no vale la de la izquierda (Bueno,... esto es configurable).

Al encender la máquina virtual por primera vez, aparecerá una ventana solicitando el disco de inicio, en nuestro caso la ISO de Debian. Búscala en "Descargas", seleccionala y acepta.

Si te haces un lio con esta ventana, que es un poco rarita.... cancela.

Si este no es el primer inicio de la máquina o has cancelado, nos aparezca este mensaje de error:

FATAL: No bootable medium found! System halted.

Normal, en el disco aun no hay sistema operativo y vamos a arrancar desde el CD (la ISO de Debian) y resulta que no lo hemos metido en el lector de CD de la máquina virtual.

Vamos al menú "Dispositivos"/"Unidades ópticas" y pulsamos "Seleccionar un archivo de disco..." (La segunda opción). Buscamos la imagen iso descargada (probablemente en la carpeta Descargas), la seleccionamos y pulsamos "Abrir".

Ahora nos vamos al menú "Máquina" y seleccionamos "Reiniciar" (Esto es equivalente a pulsar el botón reset). Pide confirmación.

Tras el reinicio, aparecerá el menú de instalación de Debian, seleccionamos la opción "Install", OJO, Nada de "Graphical install" (Usar las teclas de flecha (se llaman cursores) e INTRO)

Nos preguntará en inglés por el lenguaje que se usará en el proceso de instalación, buscamos por la lista, seleccionamos el que nos corresponda. En mi caso, "Spanish - Español" y pulsamos INTRO
Pregunta el país, más de lo mismo, seleccionamos el correcto y pulsamos INTRO
Configuración de teclado,.... lo mismo.
Nombre de la máquina: wow
Nombre de dominio: No escribais nada
Clave se superusuario: CUIDADO, tenemos que ponerle una clave (la que tu quieras), pero como la olvides estás jodido.
Pide la contraseña por segunda vez, para asegurarse.
Nombre completo de usuario nuevo: wow
Nombre de usuario parqa la cuenta: wow
Contraseña para el nuevo usuario: wow (lo que viene siendo una contraseña de alta seguridad XD)
La pide por segunda vez.
Zona horaria: Selecciona la que corresponda.
Método de partición: Guiado - utilizar todo el disco
Disco a particionar: el que ponga "(sda)"
Esquema de partición: Todos los ficheros en una partición (recomendado para novatos) ,... este mensaje te machaca un poco la moral XD
Finalizar el particionado y escribir los cambios en disco
¿Desea escribir los cambios en disco?: SI
¿Desea analizar otro CD o DVD?: NO
Pais de la réplica de Debian: Selecciona el que corresponda
Réplica de Debian: la que venga por defecto.
Información de proxy HTTP: nada (OJO: Si alguien sale a internet por medio de proxy, tendrá que poner esta información)
¿Desea participar en la encuesta sobre el uso de paquetes?: Esooo,..... mmm,... tu mismo.
Programas a instalar: Marca solo "SSH server" y "Utilidades estándar del sistema". Usa los cursores y el espacio para marcar y desmarcar e INTRO para continuar.
¿Desea instalar el cargador de arranque GRUB en el registro principal de arranque? SI
Seleccionar el que pone "/dev/sda"
Instalación completa: CONTINUAR

La máquina virtual reinicia y se nos queda en una preciosa pantalla negra donde indica "Debian GNU/Linux 10 wow tty1" "wow login:"

Pueden aparecer un par de mensajes de error referentes a "drm:vmw_host_log",.... ni caso, pero si te resultan molestos, luego, cuando apagues la máquina virtual, ve a Configuración, Pantalla, Controlador Gráfico y le pones VBoxVGA, dirá que la configuración no es válida, pero ahora si que si,.... ni caso. Si te han aparecido los mensajes de error, aparecen mezclados con el contenido de la pantalla, pulsa INTRO un par de veces para aclararte un poco.

3.2.2 Dirección IP

En el proceso de instalación, nuestro router le habrá asignado una IP dinámica a la máquina virtual, eso nos vale para instalar, pero no nos vale para cumplir con nuestro esquema de direcciones IP expuesto en el punto 3. Así que vamos a ponerle a nuestra máquina virtual una IP fija.
entramos en linux con el usuario root.

wow login: root
Password: la que no debes olvidar, Nota: es una contraseña, así que por seguridad no se ve nada al escribir, ni siquiera los puntitos típicos, pero si que se está escribiendo.

y obtendremos

root@wow:~#
Esto nos indica: usuario "root" en un servidor llamado "wow", directorio actual: ~ (Nuestro directorio domicilio) y la almohadilla (#) (si, se llama almohadilla, no se llama hashtag) también indica que somos root (Superusuario).

Actualizamos la lista de paquetes instalables y pasamos a instalar uno llamado net-tools.

apt update apt -y install net-tools

El menos y (-y) indica que si tiene alguna pregunta se autorresponda "yes"

Ahora usaremos el editor "nano" para modificar el archivo de configuración de red

nano /etc/network/interfaces

Borramos la última línea, esa que pone "iface enp0s3 inet dhcp" y escribimos estas lineas: (las que empiezan por almohadilla no es necesario escribirlas)

Codigo:
Necesitas, Acceder o Registrarse para ver el contenido.

Pulsamos CTRL+X para salir, nos preguntará si guardamos el búfer modificado, respondemos S INTRO

Reiniciamos la red y comprobamos

ifdown enp0s3 ifup enp0s3 ifconfig

En la segunda línea debe indicarnos que la dirección inet es 192.168.0.253

¿Recordais que habiamos hablado sobre localhost? En la información que nos ha mostrado, el segundo bloque hace referencia a localhost.

3.2.3 Dando acceso a la carpeta compartida del cliente wow

Al crear la máquina virtual, hemos indicado que queremos usar una carpeta compartida con nuestro windows (clienteWotLK), funcionará como una carpeta en red. Debemos indicarle a linux, que acceda a ella.

Lo primero que debemos hacer es instalar el paquete específo de VirtualBox llamado "Guest Additions" que aporta un conjunto de mejoras en la comunicación entre la máquina virtual y la real y recompilar los módulos del kernel (no te asustes, es automático, pero antes tenemos que instalar unas cosillas) para que use estas mejoras.

apt -y install linux-headers-amd64 gcc make perl

Vamos al menú "Dispositivos" y seleccionamos "Insertar imagen de CD de las Guest Additions" y no hace nada visible. Si nos indicase que tenemos que descargarla,.... pues ya sabes.

Le indicamos que queremos montar (usar) el dispositivo cdrom (/dev/cdrom) en un directorio llamado /mnt

mount /dev/cdrom /mnt

Nos mostrará un aviso que indica que el dispositivo es de solo lectura,..... claro,.... es un cdrom.
Nos cambiamos al directorio /mnt

cd /mnt

Ejecutamos el programa de instalación de las Guest Additions

./VBoxLinuxAdditions.run

Nota: la tecla "TABULADOR" aporta un sistema de autocompletado que nos permitirá escribir solo el principio de las palabras.

Reiniciamos la máquina virtual con el comando reboot. (No uses el menú "Máquina"/"Reiniciar", que eso es pulsar el botón "reset")
reboot

Volvemos a entrar con el usuario root.

Usamos el editor "nano" para modificar la tabla de sistemas de ficheros, en esta tabla se describen los distintos discos que usa Linux, así como sus puntos de montaje (carpeta en la que se representa), sistema de archvos (NTFS, FAT, ext4, etc), opciones, etc.

nano /etc/fstab

Añadimos una línea al final con este contenido
clienteWotLK /home/wow/clienteWotLK vboxsf uid=1000,gid=1000 0 0

Pulsamos CTRL+X para salir, nos preguntará si guardamos el búfer modificado, respondemos S INTRO (Creo que esto ya lo he repetido bastante, asumo desde ahora que sabemos salir de "nano" guardando los cambios)

Con esto hemos indicado que hay un dispositivo llamado "clienteWotLK" que queremos que lo represente en la carpeta "/home/wow/clienteWotLK", que su sistema de archivos es del tipo "vboxsf" (Sistema de archivos propio de VirtualBox, para poder compartir carpetas entre el equipo real y el virtual) y que pertenece a alguien con id de usuario=1000 o con id de grupo=1000 (caramba que casualidad,... coincide con el usuario wow que habiamos creado al instalar Debian), los dos últimos ceros indican que no haga volcado de disco (esto nos lo creemos sin más es largo y raro de explicar) y que no tenga chequeos de archivos.

reboot

Nota: Este archivo es delicado, si hacemos algo incorrecto, el sistema probablemente tardará muuuuucho en arrancar y nos dará errores. Aparecerá un mensaje diciendo que introduzcamos la contraseña de root para mantenimiento o pulsemos CONTROL+D para continuar; introducimos la contraseña de root, volvemos a modificar este fichero para corregir el error, guardamos y reiniciamos.

3.2.4 Dando acceso al segundo y sucesivos discos

Lo primero, algo de conocimientos. En Linux, los discos se encuentran en el directorio /dev (device) (ojo desde /dev son utilizables como dispositivos físicos, no como sistemas de archivos) y se nombran como sd<letra> siendo el primer disco "/dev/sda", el segundo "/dev/sdb", el tercero "/dev/sdc",... Para poder utilizarlos como sistemas de archivos, volvemos a recurrir al fichero "/etc/fstab", al que añadiremos tantas líneas como discos queremos utilizar, pero antes de usarlos, hay que crear las particiones del disco y formatearlas.
Para crear las particiones, usamos el programa cfdisk indicando el disco con el que queremos tratar.

cfdisk /deb/sdb

Al crear las particiones, lo primero que nos pregunta es el tipo de etiqueta, seleccionamos "dos" (Sistema de particiones típico, heredado del viejo MSDOS)

Nos indica que esta todo el disco como "Espacio libre", con los cursores (teclas de flecha de dirección) seleccionamos "Nueva" y pulsamos INTRO, nos pregunta por el tamaño para la partición y nos pondrá escrito "20G" (Disco completo), pulsamos INTRO, indicamos que será una partición "primaria" (Las particiones primarias tienen la límitación de que solo puede haber 4 en un disco, numeradas del 1 al 4. La extendida (solo una), es solo una partición primaria que puede contener otras particiones dentro). Seleccionamos "Escribir" para guardar el particionado, pide confirmación así que escribimos "si" o "yes" y por último, usamos la opción "Salir" para,... no se, no se me ocurre para que servirá esta opción.

Ya hemos creado una partición que se gestionará por medio de "/dev/sdb1" (Primera partición primaria del segundo disco)

Ahora vamos a formatearla con sistema de archivos ext4 (Típico de los sistemas Linux, para los que quieran investigar sobre las virtudes de este sistema de fichero, dejo solo una palabra,... "Journaling")

mkfs.ext4 /dev/sdb1

Ya solo queda modificar el fichero /etc/fstab para indicarle al sistema que monte la partición en el arranque.

nano /etc/fstab

Añadimos una línea al final con este contenido
/dev/sdb1 /home/wow/tcWotLK ext4 defaults 0 0

Salimos guardando.

Creamos el directorio donde se representará el disco y cambiamos su propietario al usuario wow, grupo wow para que podamos hacer de todo en el disco.

mkdir /home/wow/tcWotLK chown wow:wow /home/wow/tcWotLK

Y reiniciamos con reboot

Desde este momento, ya no usaremos para nada la consola Linux que proporciona la ventana de VirtualBox, no puedes cerrarla ya que en esa ventana está contenida la máquina virtual y estarias apagándola, pero si puedes minimizarla e ignorarla por completo. En su lugar usaremos PuTTY que nos permitirá copiar y pegar.

3.2.5.- PuTTY
Ejecutamos PuTTY; la primera ventana que aparece es la de configuración, aqui podemos configurar diferentes conexiones que podrá usar PuTTY o conectar con alguna de las ya configuradas. Como no tenemos ninguna configurada para nuestro servidor, la configuramos ahora.
En "Host Name (or IP address)" escribimos "192.168.0.253" (La IP privada de nuestro servidor). En "Saved Sessions" le ponemos como nombre "wow", pulsamos el botón "Save" y se añadirá a la lista de conexiones conocidas que ya podemos usar.

Seleccionamos la conexión con nuestro servidor y pulsamos el botón "Open"

Nos aparecerá la pantalla negra solicitando nombre de usuario y posteriormente la contraseña.

login as: wow
[email protected]'s password: wow (No se ve)

y ya estamos conectados a nuestro servidor con el usuario wow.

Nota: Copiar y pegar desde windows a PuTTY (linux) y viceversa. En Windows usamos las teclas CTRL+C para copiar y CTRL+V para pegar, como siempre; pero en PuTTY, se copia simplemente seleccionando con el ratón y se pega con el botón derecho del ratón. Cuidado con esto.
 
Última edición:

Marmolillo

Capataz
Desde
14 Mar 2020
Mensajes
8
Reacciones
17
Honor
30
4 TrinityCore WotLK 3.3.5a

El primer servidor que vamos a montar es TrinityCore 3.3.5a, los motivos para empezar por este es su estabilidad, su largo recorrido en la comunidad, un nivel muy bueno de mantenimiento y actualización y sobre todo por que es el origen de muchos otros servidores.

https://www.trinitycore.org/

4.1.- Requisitos previos

En este caso, los requisitos previos los tenemos casi cumplidos en el proceso de creación de la máquina virtual.

4.1.1.- Carpeta compartida con el Cliente WoW

Ver punto 3.2.3

4.1.2.- Disco para almacenar el servidor

Ver punto 3.2.4

4.1.3 Requisitos específicos de TrinityCore

Despues de instalar Debian, nos falta instalar una serie de paquetes con librerias, utilidades y herramientas para poder descomprimir, compilar y preparar todo lo necesario para este proyecto.

Conectamos con el usuario wow usando PuTTY. Ahora necesitamos pasar a ser por un tiempo el usuario root. Para ello usamos la orden "su" Nos pedirá la contraseña de root, esa que no debiamos olvidar.

su

apt update apt install -y git clang cmake make gcc g++ libmariadbclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100

IMPORTANTE: Si no teniamos instalado el servidor de base de datos, hay que asignarle una contraseña inicial al usuario root de MariaDB (MySQL) para poder empezar a trabajar.

mysql_secure_installation

Nota: desde aqui, ya no necesitaremos usar el usuario root de Linux para nada, o casi nada; así que salimos usando el comando exit.

exit

4.2.- Descarga del código fuente

Empezamos el trabajo. Está claro que si queremos hacer funcionar algo, necesitamos ese algo. Un servidor WoW es un programa y como programa que es, lo ha escrito alguien. Necesimos "eso" que ha escrito. Esos ficheros que con tanto amor y cariño han escrito un grupo de personas, se llama "código fuente" y está escrito en algún leguaje de programación (en este caso C++) más o menos entendible por el ser humano pero no por el ordenador. Para que el ordenador sea capaz de entender ese programa, tenemos que compilarlo y enlazarlo. Al compilar un programa creamos su equivalente, pero entendible por el ordenador y no por el ser humano. Estos ficheros intermedios aun no se pueden ejecutar; falta enlazarlos con las librerias oportunas y ya está; es resultado de todo esto si que es ejecutable por el ordenador.

Vamos al directorio del servidor

cd tcWotLK/

Pasamos a clonar el repositorio de TrinityCore.

git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git

Con -b 3.3.5 indicamos que queremos clonar esa ráma de Trinity.

4.3.- Compilar el código

Creamos un directorio "build" dentro de TrinityCore para almacenar en el todos los ficheros que se generan en el proceso de compilación.

mkdir TrinityCore/build cd TrinityCore/build

Ahora pasamos a configurar las directivas de compilación. Básicamente, lo único que hay que indicar es donde queremos que se instale el servidor.

cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/tcWotLK/servidor

Ahora pasamos a compilar

make

Nota: Si la máquina virtual la has creado con varios procesadores (cores) puedes usar

make -j $(nproc)

Toca instalar el servidor

make install

Por último creamos un directorio para los archivos Log y otro para los datos que extraeremos del cliente en el siguiente apartado.

mkdir /home/wow/tcWotLK/servidor/log mkdir /home/wow/tcWotLK/servidor/data

4.4.- Extraer datos del cliente

Esta parte es simple, pero lenta, muy lenta. Copia y pega este bloque y mientras trabaja, que va a tardar horas, puedes seguir con la lectura.

Bash:
Necesitas, Acceder o Registrarse para ver el contenido.

Como primer paso, nos vamos al directorio donde tenemos el cliente; esa carpeta compartida entre windows y la máquina virtual. Allí extraemos los dbc y maps que necesita el servidor para funcionar. Esta paso tambien extrae las Cameras que son opcionales pero ocupan poquisimo, así que las he dejado.

cd /home/wow/clienteWotLK/ /home/wow/tcWotLK/servidor/bin/mapextractor cp -r dbc maps Cameras /home/wow/tcWotLK/servidor/data

Le toca el turno a los Visual MAPS (vmaps). Son opcionales pero muy aconsejables. Esto se realiza en dos pasos, primero se extrae la información y se guarda en el directorio Buildings y en el segundo paso se ensamblan y crean los vmaps partiendo de esa información extraida en el paso anterior. El directorio Buildings se usa como directorio de trabajo y al finalizar el proceso, puedes borrarlo.

/home/wow/tcWotLK/servidor/bin/vmap4extractor mkdir vmaps /home/wow/tcWotLK/servidor/bin/vmap4assembler Buildings vmaps cp -r vmaps /home/wow/tcWotLK/servidor/data

Ahora los Movement MAPS (mmaps). Son opcionales pero muy aconsejables.

mkdir mmaps /home/wow/tcWotLK/servidor/bin/mmaps_generator cp -r mmaps /home/wow/tcWotLK/servidor/data

Por último un poco de limpieza

rm -r dbc maps vmaps mmaps Buildings Cameras

4.5.- Base de datos

TrinitiCore prepara las bases de datos en dos pasos, el primero crea las bases de datos y el segundo las llena de información.
Por seguridad, es muy recomendable no usar el usuario root de MySQL (no cunfundir con el usuario root de Linux) y tampoco debemos dejar los valores por defecto con los que viene la conexión a la base de datos de TrinityCore.

Para crear un usuario, las bases de datos y darle acceso a las mismas, usaremos esto:
su (Pide contraseña de root)
mysql -u root -p (Pide contraseña de root de MySQL)

SQL:
Necesitas, Acceder o Registrarse para ver el contenido.

Si además queremos conectar a las bases de datos con este usuario, pero desde windows, añadimos esto:

SQL:
Necesitas, Acceder o Registrarse para ver el contenido.

Ahora vamos a rellenar la base de datos con toda la información para el servidor.

Descargamos y descomprimimos la base de datos en el lugar adecuado

cd /home/wow/tcWotLK/servidor/bin wget https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.20082/TDB_full_world_335.20082_2020_08_22.7z 7zr x TDB_full_world_335.20082_2020_08_22.7z

Ahora solo nos falta configurar el servidor (siguiente punto) y ponerlo en marcha, el propio servidor se encarga de importar los datos a la base de datos.

4.6.- Configuración de los servidores

Los servidores se configuran por medio de dos ficheros de texto llamados authserver.conf y worlserver.conf, en ellos indicaremos la conexión a la base de datos y configuraremos los valores con los que trabaja el servidor. Empezamos por copiar los ficheros .conf.dist en los .conf correspondientes.

cd .. cp etc/authserver.conf.dist etc/authserver.conf cp etc/worldserver.conf.dist etc/worldserver.conf

Modificamos las siguientes líneas

nano etc/authserver.conf
LogsDir = "../log"
RealmServerPort = 12025
LoginDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_auth"
Updates.EnableDatabases = 1

nano etc/worldserver.conf
DataDir = "../data"
LogsDir = "../log"
LoginDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_auth"
WorldDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_world"
CharacterDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_characters"
WorldServerPort = 12024
mmap.enablePathFinding = 1
Updates.EnableDatabases = 7

Nota: Si alguien se pregunta por que hemos cambiado los puertos de conexión a nuestro servidor, es por motivos de seguridad. Siempre es más seguro usar puertos distintos a los que vienen por defecto. Cualquiera que intente piratearnos el servidor, lo intentará primero en los puertos por defecto.

Nos vamos al directorio bin y ejecutamos woldserver para que cargue las bases de datos.

cd bin ./worldserver

Esperamos a que termine y salimos escribiendo server shutdown 0

4.7.- Antes de jugar

Ahora en Windows, debemos configurar el cliente wow para que se conecte a nuestro servidor. Para ello, modificamos el contenido del fichero realmlist.wtf que se encuentra en el directorio Data\esES. Si tenemos más de un idioma en el cliente wow, este cambio lo tenemos que hacer en todos los idiomas.

C:\ruta\al\cliente\wow\Data\esES\realmlist.wtf

Borramos lo que tenga y escribimos estas dos líneas:

set realmlist 192.168.0.253:12025
set serverAlert invalid

En la primera le indicamos que nuestro servidor de login (authserver) se encuentra en la IP 192.168.0.253 usando el puerto 12025
La segunda línea es por precaución, si no la ponemos, nuestro cliente se va a conectar a Blizzard para informarnos del reinicio programado en el servidor de Blizzard,... Claro que a los señores de Blizzard apenas les va a extrañar que les lleguen peticiones desde nuestra IP con un cliente que ya no está en uso. Y no sea que les de por emprender acciones legales.

Nos queda cambiar la única entrada que hay en la tabla tc_wotlk_auth para que contenga la información de nuestro reino. Podemos usar HeidiSQL o cualquier otro cliente de MySQL, nos conectamos a nuestro servidor en la IP 192.168.0.253 con el usuario wow y contraseña wow.

Los datos a modificar son name (pon el nombre que desees para tu reino), address, que debes poner 192.168.0.253 y port con valor 12024

Puedes hacerlo con esta sentencia SQL.

UPDATE `tc_wotlk_auth`.`realmlist` SET `name`='Trinity WotLK', `address`='192.168.0.253', `port`='12024' WHERE `id`=1;

Arrancamos el servidor de login en segundo plano y el servidor de mundo en primer plano.

./authserver & ./worldserver

Por último, con el servidor ya en marcha creamos una cuenta de administración.

account create nombre contraseña account set gmlevel nombre 3 -1

4.8.- Mantener actualizado el servidor

Para mantener actualizado el servidor, basta con ejecutar los siguientes comandos:

Bash:
Necesitas, Acceder o Registrarse para ver el contenido.

Si en la actualización ha habido correcciones o mejoras en los extractores de datos, deberías volver a extraerlos.

Bash:
Necesitas, Acceder o Registrarse para ver el contenido.

4.9 Publicando nuestro servidor en Internet

Bueno, en este punto vamos a necesitar reconfigurar nuestro roouter para que permita el trafico entre Internet y nuestro servidor wow.

Necesitamos saber cual es nuestra IP pública, esto lo podemos mirar conectándonos a www.whatismyip.com

Una vez que conocemos nuestra IP pública, nos conectamos al router usando nuestro navegador preferido y entramos con el usuario administrador o admin o como se llame en tu router.

Debemos ir a una sección llamada "port forwarding" o algo parecido y en ella indicar que todo el trafico de los puertos 12024 y 12025 debe ir a la máquina virtual con IP 192.168.0.253 a los puertos 12024 y 12025 en ambos protocolos (TCP y UDP) Tengo que probarlo, pero diría que UDP podemos quitarlo, lo probaré y ya digo algo.

Por último, tenemos que que cambiar la entrada en la tabla tc_wotlk_realmlist y el elcliente wow. Para ello repetimos el punto 4.7 pero usando nuestra IP pública en lugar de 192.168.0.253

Arrancamos los servidores y listo.

Mañana más
 
Última edición:

Marmolillo

Capataz
Desde
14 Mar 2020
Mensajes
8
Reacciones
17
Honor
30
5 TrinityCore BFA 8.3.7

Hoy toca la versión actual de TrinityCore. Este servidor dista mucho de ser jugable, faltan muchas cosas por implementar y tiene bugs para dar y regalar, pero le tengo cariño XD.


5.1 Requisitos previos

Ahora veremos como añadir una carpeta compartida con el cliente BFA y un segundo disco a la máquina virtual. En ambos casos, hay una parte que se hace con lá máquina virtual apagada y otra parate con la máquina encendida. Yo lo explicaré por separado, pero puedes hacerlas juntas. así no tienes que ir encendiendo y apagando la máquina varias veces.

5.1.1 Carpeta compartida con el Cliente WoW

Apagamos la máquina virtual.

Entramos en configuración (Botón del engranaje amarillito) y nos vamos al apartado "Carpetas compartidas", aquí añadimos una carpeta (botón con carpetita celeste y signo más de color verde a la derecha de todo). Contendrá el cliente wow BFA desde el que extraeremos los mapas y archivos dbc. El cliente, lo instalamos usando BattleNet de Blizzard como si fuesemos a jugar en el servidor de Blizzard.

Ruta carpeta: C:/ruta/al/cliente/wow/BFA
Nombre carpeta: clienteBFA
No indicar nada más
Aceptamos la configuración y listo.

Encendemos la máquina virtual.

Entramos con el usuario root y pasamos a indicarle a Linux como debe representar la carpeta compartida. Para ello editamos el fichero /etc/fstab y añadimos ua línea indicándolo.

nano /etc/fstab clienteBFA /home/wow/clienteBFA vboxsf uid=1000,gid=1000 0 0

Salimos guardando y reiniciamos con reboot

5.1.2 Disco para almacenar el servidor

Apagamos la máquina virtual.

Oops,... lo siento tengo que marcharme un rato, luego sigo
 
Última edición:

UndMe

Explorador
Desde
2 Oct 2020
Mensajes
9
Reacciones
11
Honor
17
4 TrinityCore WotLK 3.3.5a

El primer servidor que vamos a montar es TrinityCore 3.3.5a, los motivos para empezar por este es su estabilidad, su largo recorrido en la comunidad, un nivel muy bueno de mantenimiento y actualización y sobre todo por que es el origen de muchos otros servidores.

https://www.trinitycore.org/

4.1.- Requisitos previos

En este caso, los requisitos previos los tenemos casi cumplidos en el proceso de creación de la máquina virtual.

4.1.1.- Carpeta compartida con el Cliente WoW

Ver punto 3.2.3

4.1.2.- Disco para almacenar el servidor

Ver punto 3.2.4

4.1.3 Requisitos específicos de TrinityCore

Despues de instalar Debian, nos falta instalar una serie de paquetes con librerias, utilidades y herramientas para poder descomprimir, compilar y preparar todo lo necesario para este proyecto.

Conectamos con el usuario wow usando PuTTY. Ahora necesitamos pasar a ser por un tiempo el usuario root. Para ello usamos la orden "su" Nos pedirá la contraseña de root, esa que no debiamos olvidar.

su

apt update apt install -y git clang cmake make gcc g++ libmariadbclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100

IMPORTANTE: Si no teniamos instalado el servidor de base de datos, hay que asignarle una contraseña inicial al usuario root de MariaDB (MySQL) para poder empezar a trabajar.

mysql_secure_installation

Nota: desde aqui, ya no necesitaremos usar el usuario root de Linux para nada, o casi nada; así que salimos usando el comando exit.

exit

4.2.- Descarga del código fuente

Empezamos el trabajo. Está claro que si queremos hacer funcionar algo, necesitamos ese algo. Un servidor WoW es un programa y como programa que es, lo ha escrito alguien. Necesimos "eso" que ha escrito. Esos ficheros que con tanto amor y cariño han escrito un grupo de personas, se llama "código fuente" y está escrito en algún leguaje de programación (en este caso C++) más o menos entendible por el ser humano pero no por el ordenador. Para que el ordenador sea capaz de entender ese programa, tenemos que compilarlo y enlazarlo. Al compilar un programa creamos su equivalente, pero entendible por el ordenador y no por el ser humano. Estos ficheros intermedios aun no se pueden ejecutar; falta enlazarlos con las librerias oportunas y ya está; es resultado de todo esto si que es ejecutable por el ordenador.

Vamos al directorio del servidor

cd tcWotLK/

Pasamos a clonar el repositorio de TrinityCore.

git clone -b 3.3.5 git://github.com/TrinityCore/TrinityCore.git

Con -b 3.3.5 indicamos que queremos clonar esa ráma de Trinity.

4.3.- Compilar el código

Creamos un directorio "build" dentro de TrinityCore para almacenar en el todos los ficheros que se generan en el proceso de compilación.

mkdir TrinityCore/build cd TrinityCore/build

Ahora pasamos a configurar las directivas de compilación. Básicamente, lo único que hay que indicar es donde queremos que se instale el servidor.

cmake ../ -DCMAKE_INSTALL_PREFIX=/home/wow/tcWotLK/servidor

Ahora pasamos a compilar

make

Nota: Si la máquina virtual la has creado con varios procesadores (cores) puedes usar

make -j $(nproc)

Toca instalar el servidor

make install

Por último creamos un directorio para los archivos Log y otro para los datos que extraeremos del cliente en el siguiente apartado.

mkdir /home/wow/tcWotLK/servidor/log mkdir /home/wow/tcWotLK/servidor/data

4.4.- Extraer datos del cliente

Esta parte es simple, pero lenta, muy lenta. Copia y pega este bloque y mientras trabaja, que va a tardar horas, puedes seguir con la lectura.

Bash:
Necesitas, Acceder o Registrarse para ver el contenido.

Como primer paso, nos vamos al directorio donde tenemos el cliente; esa carpeta compartida entre windows y la máquina virtual. Allí extraemos los dbc y maps que necesita el servidor para funcionar. Esta paso tambien extrae las Cameras que son opcionales pero ocupan poquisimo, así que las he dejado.

cd /home/wow/clienteWotLK/ /home/wow/tcWotLK/servidor/bin/mapextractor cp -r dbc maps Cameras /home/wow/tcWotLK/servidor/data

Le toca el turno a los Visual MAPS (vmaps). Son opcionales pero muy aconsejables. Esto se realiza en dos pasos, primero se extrae la información y se guarda en el directorio Buildings y en el segundo paso se ensamblan y crean los vmaps partiendo de esa información extraida en el paso anterior. El directorio Buildings se usa como directorio de trabajo y al finalizar el proceso, puedes borrarlo.

/home/wow/tcWotLK/servidor/bin/vmap4extractor mkdir vmaps /home/wow/tcWotLK/servidor/bin/vmap4assembler Buildings vmaps cp -r vmaps /home/wow/tcWotLK/servidor/data

Ahora los Movement MAPS (mmaps). Son opcionales pero muy aconsejables.

mkdir mmaps /home/wow/tcWotLK/servidor/bin/mmaps_generator cp -r mmaps /home/wow/tcWotLK/servidor/data

Por último un poco de limpieza

rm -r dbc maps vmaps mmaps Buildings Cameras

4.5.- Base de datos

TrinitiCore prepara las bases de datos en dos pasos, el primero crea las bases de datos y el segundo las llena de información.
Por seguridad, es muy recomendable no usar el usuario root de MySQL (no cunfundir con el usuario root de Linux) y tampoco debemos dejar los valores por defecto con los que viene la conexión a la base de datos de TrinityCore.

Para crear un usuario, las bases de datos y darle acceso a las mismas, usaremos esto:
su (Pide contraseña de root)
mysql -u root -p (Pide contraseña de root de MySQL)

SQL:
Necesitas, Acceder o Registrarse para ver el contenido.

Si además queremos conectar a las bases de datos con este usuario, pero desde windows, añadimos esto:

SQL:
Necesitas, Acceder o Registrarse para ver el contenido.

Ahora vamos a rellenar la base de datos con toda la información para el servidor.

Descargamos y descomprimimos la base de datos en el lugar adecuado

cd /home/wow/tcWotLK/servidor/bin wget https://github.com/TrinityCore/TrinityCore/releases/download/TDB335.20082/TDB_full_world_335.20082_2020_08_22.7z 7zr x TDB_full_world_335.20082_2020_08_22.7z

Ahora solo nos falta configurar el servidor (siguiente punto) y ponerlo en marcha, el propio servidor se encarga de importar los datos a la base de datos.

4.6.- Configuración de los servidores

Los servidores se configuran por medio de dos ficheros de texto llamados authserver.conf y worlserver.conf, en ellos indicaremos la conexión a la base de datos y configuraremos los valores con los que trabaja el servidor. Empezamos por copiar los ficheros .conf.dist en los .conf correspondientes.

cd .. cp etc/authserver.conf.dist etc/authserver.conf cp etc/worldserver.conf.dist etc/worldserver.conf

Modificamos las siguientes líneas

nano etc/authserver.conf
LogsDir = "../log"
RealmServerPort = 12025
LoginDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_auth"
Updates.EnableDatabases = 1

nano etc/worldserver.conf
DataDir = "../data"
LogsDir = "../log"
LoginDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_auth"
WorldDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_world"
CharacterDatabaseInfo = "127.0.0.1;3306;wow;wow;tc_wotlk_characters"
WorldServerPort = 12024
mmap.enablePathFinding = 1
Updates.EnableDatabases = 7

Nota: Si alguien se pregunta por que hemos cambiado los puertos de conexión a nuestro servidor, es por motivos de seguridad. Siempre es más seguro usar puertos distintos a los que vienen por defecto. Cualquiera que intente piratearnos el servidor, lo intentará primero en los puertos por defecto.

Nos vamos al directorio bin y ejecutamos woldserver para que cargue las bases de datos.

cd bin ./worldserver

Esperamos a que termine y salimos escribiendo server shutdown 0

4.7.- Antes de jugar

Ahora en Windows, debemos configurar el cliente wow para que se conecte a nuestro servidor. Para ello, modificamos el contenido del fichero realmlist.wtf que se encuentra en el directorio Data\esES. Si tenemos más de un idioma en el cliente wow, este cambio lo tenemos que hacer en todos los idiomas.

C:\ruta\al\cliente\wow\Data\esES\realmlist.wtf

Borramos lo que tenga y escribimos estas dos líneas:

set realmlist 192.168.0.253:12025
set serverAlert invalid

En la primera le indicamos que nuestro servidor de login (authserver) se encuentra en la IP 192.168.0.253 usando el puerto 12025
La segunda línea es por precaución, si no la ponemos, nuestro cliente se va a conectar a Blizzard para informarnos del reinicio programado en el servidor de Blizzard,... Claro que a los señores de Blizzard apenas les va a extrañar que les lleguen peticiones desde nuestra IP con un cliente que ya no está en uso. Y no sea que les de por emprender acciones legales.

Nos queda cambiar la única entrada que hay en la tabla tc_wotlk_auth para que contenga la información de nuestro reino. Podemos usar HeidiSQL o cualquier otro cliente de MySQL, nos conectamos a nuestro servidor en la IP 192.168.0.253 con el usuario wow y contraseña wow.

Los datos a modificar son name (pon el nombre que desees para tu reino), address, que debes poner 192.168.0.253 y port con valor 12024

Puedes hacerlo con esta sentencia SQL.

UPDATE `tc_wotlk_auth`.`realmlist` SET `name`='Trinity WotLK', `address`='192.168.0.253', `port`='12024' WHERE `id`=1;

Arrancamos el servidor de login en segundo plano y el servidor de mundo en primer plano.

./authserver & ./worldserver

Por último, con el servidor ya en marcha creamos una cuenta de administración.

account create nombre contraseña account set gmlevel nombre 3 -1

4.8.- Mantener actualizado el servidor

Para mantener actualizado el servidor, basta con ejecutar los siguientes comandos:

Bash:
Necesitas, Acceder o Registrarse para ver el contenido.

Si en la actualización ha habido correcciones o mejoras en los extractores de datos, deberías volver a extraerlos.

Bash:
Necesitas, Acceder o Registrarse para ver el contenido.

4.9 Publicando nuestro servidor en Internet

Bueno, en este punto vamos a necesitar reconfigurar nuestro roouter para que permita el trafico entre Internet y nuestro servidor wow.

Necesitamos saber cual es nuestra IP pública, esto lo podemos mirar conectándonos a www.whatismyip.com

Una vez que conocemos nuestra IP pública, nos conectamos al router usando nuestro navegador preferido y entramos con el usuario administrador o admin o como se llame en tu router.

Debemos ir a una sección llamada "port forwarding" o algo parecido y en ella indicar que todo el trafico de los puertos 12024 y 12025 debe ir a la máquina virtual con IP 192.168.0.253 a los puertos 12024 y 12025 en ambos protocolos (TCP y UDP) Tengo que probarlo, pero diría que UDP podemos quitarlo, lo probaré y ya digo algo.

Por último, tenemos que que cambiar la entrada en la tabla tc_wotlk_realmlist y el elcliente wow. Para ello repetimos el punto 4.7 pero usando nuestra IP pública en lugar de 192.168.0.253

Arrancamos los servidores y listo.

Mañana más

Muchísimas gracias por el tutorial, lo he seguido al pie de la letra y funciona perfectamente !! Actualmente tengo el servidor en Debian 10 y no tengo ningún problema.
Lo único que si he tenido que modificar a la hora de instalarlo ha sido lo siguiente:


puesto que esa versión es antigua, únicamente hay que meterse a github y descargar la ultima disponible a la hora de instalar el servidor.
Actualmente es la 2020_10_15 pero cuando saquen una nueva sera otra por eso no pongo el link exacto.
Como digo, unicamente hay que entrar a la siguiente URL:


y descargar la ultima version disponible.

**OJO** la ultima disponible es la segunda empezando por arriba, tiene que tener el siguiente nombre (cambiando la fecha cuando se actualize):

Un saludo.
 

100tificodelwow

Explorador
Desde
9 Dec 2020
Mensajes
7
Reacciones
3
Honor
7
Saludos.
Qué buen tutorial. Lo que venía buscando precisamente hace unos días antes de encontrarlo acá.
Sólo una pequeña cosa:

He tenido problemas a la hora de editar lo siguiente.
clienteWotLK /home/wow/clienteWotLK vboxsf uid=1000,gid=1000 0 0

El sistema siempre me tira el warning y no logro hacer que inicie sin problemas. Siempre vuelve a reiniciar en modo seguro o algo así. No sé, quizá esté haciendo algo mal aúnque como digo, seguí todo al pie de la letra y es en lo único que no pude.
Gracias por la info.
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

3,655Temas
24,078Mensajes
15,179Usuarios
carrillo51Último usuario
Top