Montar un servidor Battle Net en Debian

La mayor parte de este artículo ha sido tomado textualmente de GUTL

WC3_BNet

El hecho que nos gusten los ambientes GNU/Linux no nos exime a algunos de seguir con los vicios heredados de las andanzas por Windows.

El otro día estábamos buscando la forma de poder jugar Defense of the Ancient (DOTA) con el mayor numero de personas sin tenerlas a todas bajo la misma LAN así que me di a la tarea de aprender a montar un BattleNet (a.k.a BNet) en mi servidor Debian de manera que se pudiera acceder desde cualquier parte de la provincia y así resolver el problema de la falta de jugadores.

Todos conocen la aplicación PVPGN de cuando usábamos Windows pues bien este será un tutorial de como montar nuestro propio servidor PVPGN en ambiente GNU/Linux.

Breve introducción

PVPGN (del ingles Player Versus Player Gaming Network) es una aplicación que permite crear lo que se llama en algunos lugares un “servidor privado” que permite conectar jugadores de Diablo, Warcraft y Starcraft la primera vez que lo vi fue por allá por el 2005 mas o menos y cuando aquello lo usábamos para jugar Diablo pero hoy en dia es muy común ver en foros y sitios cubanos las “noticias” de que montaron un Bnet en tal lugar.

Instalando en ambiente GNU/Linux

PVPGN está disponible en los repositorios de la mayoría de las distribuciones mas populares como es el caso de Debian por lo que para instalar el servidor como tal solo necesitamos abrir una consola y escribir

sudo aptitude install pvpgn

Una vez instalado vamos a necesitar un paquete adicional llamado pvpgn-support:

Descargar pvpgn-support

Cuando descarguen el archivo abrimos la terminal y ponemos sudo pvpgn-support -l /RUTA_DEL_PAQUETE (me refiero al pvpgn-support-1.0.tar.gz) por ejemplo

sudo pvpgn-support-installer -l /home/neji/Descargas/pvpgn-support-1.0.tar.gz

Configurando nuestro servidor

A estas alturas ya tenemos instalado el servidor pero todavía no debe ser visible puesto que no esta configurado del todo así que ahora pasaremos a ese punto.

Como la mayoría de las aplicaciones los archivos de configuración están alojados en el directorio /etc así que editamos el archivo:

sudo nano /etc/pvpgn/bnet.conf

En esa configuración encontraremos muchas opciones pero yo personalmente no las uso todas así que les voy a poner las que uso:

1 – La ruta donde se guardarán los progresos de los jugadores:

storage_path = file:mode=plain;dir=/var/lib/pvpgn/files/users;clan=/var/lib/pvpgn/files/clans;team=/var/lib/pvpgn/files/teams;default=/etc/pvpgn/bnetd_default_user.plain

2- Los ficheros que utiliza pvpgn para registrar las cosas:

filedir = /var/lib/pvpgn/files
reportdir = /var/lib/pvpgn/files/reports
chanlogdir = /var/lib/pvpgn/files/chanlogs
logfile = /var/lib/pvpgn/files/bnetd.log
maildir = /var/lib/pvpgn/files/bnmail
ladderdir = /var/lib/pvpgn/files/ladders
statusdir = /var/lib/pvpgn/files/status
pidfile = /var/lib/pvpgn/files/bnetd.pid

motdfile = /etc/pvpgn/bnmotd.txt
issuefile = /etc/pvpgn/bnissue.txt
channelfile = /etc/pvpgn/channel.conf
newsfile = /etc/pvpgn/news.txt
adfile = /etc/pvpgn/ad.conf
topicfile = /etc/pvpgn/topics.conf
ipbanfile = /etc/pvpgn/bnban.conf
helpfile = /etc/pvpgn/bnhelp.conf
mpqfile = /etc/pvpgn/autoupdate.conf
realmfile = /etc/pvpgn/realm.conf
mapsfile = /etc/pvpgn/bnmaps.conf
xplevelfile = /etc/pvpgn/bnxplevel.conf
xpcalcfile = /etc/pvpgn/bnxpcalc.conf

aliasfile = /etc/pvpgn/bnalias.conf
DBlayoutfile = /etc/pvpgn/sql_DB_layout.conf
supportfile = /etc/pvpgn/supportfile.conf
transfile = /etc/pvpgn/address_translation.conf
fortunecmd = /usr/games/fortune

tournament_file = /etc/pvpgn/tournament.conf
versioncheck_file = /etc/pvpgn/versioncheck.conf
anongame_infos_file = /etc/pvpgn/anongame_infos.conf
command_groups_file = /etc/pvpgn/command_groups.conf

Estos ficheros son ficheros de texto que nos permiten modificar cosas como la configuración del canal de Chat del servidor, el mensaje del bienvenida etc.

3- Configuraciones internas del propio servidor

loglevels = fatal
d2cs_version = 0
allow_d2cs_setname = true
iconfile = "icons.bni"
war3_iconfile = "icons-WAR3.bni"
star_iconfile = "icons_STAR.bni"
tosfile = "tos.txt"
allowed_clients = all
skip_versioncheck = false
allow_bad_version = false
allow_unknown_version = true
version_exeinfo_match = none
version_exeinfo_maxdiff = 0
usersync = 300
userflush = 1200
userstep = 100
latency = 600
nullmsg = 120
shutdown_delay = 300
shutdown_decr = 60

new_accounts = false

kick_old_login = true
ask_new_channel = true
report_all_games = true
report_diablo_games = true
hide_pass_games = true
hide_started_games = false
hide_temp_channels = true

extra_commands = true
disc_is_loss = true
ladder_games = "topvbot, melee, ffa, oneonone"
ladder_prefix = "ldr_"
enable_conn_all = true
hide_addr = false
chanlog = false
quota = yes
quota_lines = 5 # must be between 1 and 100 lines
quota_time = 5 # must be between 1 and 60 seconds
quota_wrapline = 40 # must be between 1 to 256 chars
quota_maxline = 200 # must be between 1 to 256 chars
quota_dobae = 10 # must be between 1 and 100 lines
mail_support = true
mail_quota = 5
log_notice = "*** Please note this channel is logged! ***"
passfail_count = 0
passfail_bantime = 300
maxusers_per_channel = 0
savebyname = true
sync_on_logoff = true
hashtable_size = 61
account_allowed_symbols = "-_[]§@"
max_friends = 5
track = 60
trackaddrs = "localhost:9999"
servername = "Bnet Abreus"
max_connections = 1000
max_concurrent_logins = 0
use_keepalive = false
max_conns_per_IP = 0
servaddrs = ":" # default interface (all) and default port (6112)
w3routeaddr = "0.0.0.0:6200"
initkill_timer = 120
woltimezone = "-8"
wollongitude = "36.1083"
wollatitude = "-115.0582"
war3_ladder_update_secs = 300
XML_output_ladder = true
output_update_secs = 60
clan_newer_time = 0
clan_max_members = 50
clan_channel_default_private = 0

En estas configuraciones nosotros definimos aspectos del servidor referentes a cosas como el nombre que tendra el servidor, la cantidad de mensajes permitidos entre usuarios, la cantidad de amigos, los puertos que se usaran en el servidor, la cantidad de conexiones entrantes permitidas etc.

Como el Bnet permite moderación de usuarios etc nosotros podemos definir una cuenta que seria algo como el root o administrador del Bnet para eso podemos modificar el archivo /var/lib/pvpgn/files/users/»usuario» (usuario es el nombre de la cuenta) y dentro de este agregar esto:

"BNET\\acct\\userid"="1"
"BNET\\auth\\admin"="true"
"BNET\\auth\\command_groups"="255"
El «userid» generalmente viene siendo el 1ro por ser casi siempre la primera cuenta que uno crea pero de no ser así y querer que el usuario X sea el admin solo ponemos el ID que tenga esa cuenta.

Luego que terminemos de configurar nuestro servidor ya podemos reiniciar el servicio de bnet:

invoke.rc.d pvpgn restart

Y listo… ya tenemos nuestro Bnet para invitar a nuestros amigos y pasar un rato jugando DOTA o cualquier otra cosa.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Kitty dijo

    Oh genial!! Muchisimas gracias! Yo y mi gran vicio de Warcraft te lo agradecemos :3

  2.   /dev/null dijo

    +1

  3.   eliotime3000 dijo

    Impresionante.

    A ver si también me pongo a investigar para poder armar un server en LAN para así jugar Gunbound en LAN sin internet (ya que el servicio de Gunbound.ca usa la versión Thor’s Hammer y sus servidores usan Debian).

    1.    Ezequiel dijo

      Genial.

      Es una tarea pendiente que he tratado de hacer y fallé en alguna ocasión. Aprovecho para decirles que siempre me ha gustado el juego Diablo2LoD. Si alguien quiere y se arma un servidor me prendo para jugar.

      Una pregunta, cómo es el tema de la ip a la que se tienen que conectar los que quieran jugar desde afuera? Mi ISP me provee de IP dinámica. No habrá problema si le paso siempre mi IP correcta por más que ésta sea dinámica? Alguien tiene idea si se puede evitar esto último creando algún tipo de IP fija?

      Muchas gracias y para mi, un fanático del Diablo, un post muy interesante.

    2.    kennatj dijo

      Gunbound cuanto tiempo que no escuchaba de este juego. Acaso tiene version para linux?

      1.    eliotime3000 dijo

        Pues no hay versión para Linux, pero se está portando el juego para Facebook en respuesta a DragonBound. Ahora, de que usen HTML5 al igual que DragonBound lo veo dudoso, pero la verdad es que Softnyx no le interesa ni mejorar el actual GunBound ni menos portarlo hacia Linux.

  4.   Ezequiel dijo

    A propósito, el nombre de usuario «neji» estaba de casualidad en la imagen o está relacionado con vos, elav?

    1.    elav dijo

      Nop. Es el nick del autor original del post 😉

  5.   Hyuuga_Neji dijo

    Vaya… no me diste tiempo a ponerlo de alla para acá… pero bueno al final lo importante ya está hecho. Así que ahora veamos que hacen los demas viciosos xD

    1.    eliotime3000 dijo

      Y aquí está tu post (y de paso, les aviso que GUTL ha vuelto a la vida) >> http://gutl.jovenclub.cu/tips-para-jugadores-montar-un-servidor-de-bnet-en-debian/

  6.   Carlos dijo

    Instalando este servidor, puedo montar un ET (Enemy Territory)?

  7.   Leproso_Ivan dijo

    Una pregunta. Si es estúpida díganlo.. Pero más estúpido es quien no pregunta.

    ¿Para jugar Warcraft 3 o StartCraft u otros, los juegan sobre wine, no?

    1.    Hyuuga_Neji dijo

      Bueno… yo particularmente uso una version antigua de Crossover y una archivo llamado W3l.exe (un lanzador de W3 Frozen Throne) que es el que permite conectarse a Bnet privados o no oficiales como este que puse en la entrada.

  8.   José Torres dijo

    Gracias por el posr elav. si compartes acerca de como crear un servidor de counter strike estaría encantado. he leido sobre open game panel, pero no se si me vaya a interferir con el cpanel, y el cPGS lo descontinuarán el proximo mes.

  9.   kristianjgs dijo

    Esto me recuerda que gracias a haber montado un servidor de WoW (World of warcraft) privado, página web, foro, etc. Es que aprendí sobre servidores que es en lo que actualmente trabajo. Linux es lo mejor

  10.   Frostmourne dijo

    Hola!!!!
    Muy bueno el tutorial, pero alguien podría decirme como poder jugar Warcraft III en debian o deribados??? He intentado con el wine, pero hasta donde más pude, podía jugar bien, pero cuando regresaba al sistema operativo (alt+tab) después no podia volver al juego 🙁 Me he estado documentando y creo que existen buenos emuladores como el cedega, me pueden recomendar algunos para poderlos descargar y jugar mejor, y si pueden un tutorial sería excelente!!!! jejeje Como jugar Warcraft III en linux y no morir en el intento xD….Gracias!!!

  11.   pa dijo

    genial tu post, lamento haberlo leído ahora, me encanta el war y el linux, si se siguen dando la mano así me mudo de a 1000 pa SL, gracias elav por tu post, q viva el DOTA!!!!!

  12.   AccioN dijo

    Buenas ante todo buen post,
    Pero ahora, tengo una duda en el encabezado dice que se pueden conectar personas que no estén en nuestra lan, pero el problema que tengo es el siguiente, todos llegan a mi servidor por enrutamiento es decir que una lan de 10 maquinas llegan a mi servidor como si fuese una sola, y ahí esta el problema, la conexión perfecto sin ningún problema, pero a la hora de jugar es el problema, se crea una partida y sin problema pero dos personas que esten en una misma lan no se puede conectar al parecer porque viene por la misma ip.
    Si m pudieran aayudar con eso gracias.

  13.   alejandro nuñe cuella dijo

    debe estar buena lo que no he podido descargarla aun