Topic: D2GS On Debian 9 Issue: connection to bnetd s2s timeout
Hello!
I'm trying to spin up a server for me and some friends, so decided to go the wine 2.0.1 for d2gs + pvpgn solution
I've installed PVPGN this way:
sudo apt-get -y install build-essential zlib1g-dev clang libc++-dev git
wget cmakeorg/files/v3.7/cmake-3.7.1-Linux-x86_64.tar.gz
tar xvfz cmake-3.7.1-Linux-x86_64.tar.gz
git clone githubcom/pvpgn/pvpgn-server.git
cd pvpgn-server && CC=/usr/bin/clang CXX=/usr/bin/clang++ ../cmake-3.7.1-Linux-x86_64/bin/cmake -G "Unix Makefiles" -H./ -B./build
cd build && make
The version should be the newest because I git cloned from PVPGN's Github and the instructions above are provided on that page for Debian 8. I realize I probably don't have MySQL support, but I don't need it for the moment.
And compiled/installed Wine 2.0.1 (+sock.c patch for that version) this way: https://forums.pvpgn.pro/viewtopic.php?id=1875
Also edited the d2 registry file accordingly with proper IP and to allow More than 0 games to start, then added it to Wine registry.
This is what I see from netstat -npl :
tcp 0 0 212.212.156.56:6114 0.0.0.0:* LISTEN 5149/d2dbs
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 5169/D2GS.exe
tcp 0 0 0.0.0.0:6200 0.0.0.0:* LISTEN 5139/bnetd
tcp 0 0 0.0.0.0:4000 0.0.0.0:* LISTEN 5169/D2GS.exe
tcp 0 0 0.0.0.0:6112 0.0.0.0:* LISTEN 5139/bnetd
tcp 0 0 212.212.156.56:6113 0.0.0.0:* LISTEN 5141/d2cs
udp 0 0 0.0.0.0:6112 0.0.0.0:* 5139/bnetd
This is pretty self-explanatory - it just shows that the proper ports are open and listening. I have no firewall, all iptables chains are "ACCEPT".
I start bnetd, d2cs and d2dbs with the binaries under:
/usr/local/sbin/bnetd
/usr/local/sbin/d2cs
/usr/local/sbin/d2dbs
I can successfully connect and authenticate with the server using Diablo 1.13c client, however as soon as I login in I get a "No active Realms right now - please try again later"
Configuration files:
address_translation.conf:
########################################################################################################
#------------------------------------------------------------------------------------------------------#
# Address Translation table #
#----------------------------------------------------------------------------
#
# DO NOT, I REPEAT, DO NOT TOUCH THIS FILE UNLESS YOU RUN THE SERVER ON A
# COMPUTER INSIDE A LAN AND YOU NEED TO HAVE PLAYERS FROM "OUTSIDE" YOUR LAN
#
# This is a list of ip:port addresses that get translated
# EVERYTHING AFTER A "#" IS IGNORED (ie COMMENTED)
#
# The entries are broken into four parts:
#
# * the IP address w/port to be translated (what pvpgn wants to send initially)
# * the output IP address w/port (what pvpgn WILL send after translation)
# * comma delimited list of networks to be excluded from translation
# * comma delimited list of networks to be included in translation
#
# Each line must contain all four parts or the entire entry will be rejected
# There are no default ports, make sure input and output include the port number
#
# The entries are searched in the order listed in this file
# Exclude networks are searched before include networks
# Only the first matching line is used
# Lines begining with '#' are ignored
#
# If no match is found, the input ip will be returned.
#
# Network specification can be either NONE, ANY or x.y.z.t/bitlen:
# - NONE = no neworks (same as 0.0.0.0/32)
# - ANY = All networks (same as 0.0.0.0/0)
# x.y.z.t/bitlen : means matching the first bitlen bits from the x.y.z.t value
# Example: if you have the network 192.168.0.x (where x is from 1 to 255) to
# match any IP in it you use "192.168.0.0/24" meaning the first 24 bits of
# 192.168.0.0 HAVE TO match (the first 24 bits means the first 3 digits)
#
#################################################################################
################################################################################
# w3route server ip translation
#
# Here you can translate the IP/port of the w3route IP/port as sent by pvpgn
# to the WAR3 clients. You need this ONLY if you want to have external W3
# players that will play PlayGame/ArrangedTeam games.
# Set exclude to the range of clients you want to recieve the input address
# instead of the output address
# Set include to the range of clients you want to recieve the output address
#
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask)
#----------------- ------------------ ---------------------- ----------------------
# Example, if you left w3route = 0.0.0.0:6200 as it is by default in bnetd.conf
# AND you have the external IP 1.2.3.4 AND you want to exclude from translation
# the internal W3 clients (those with IPs 192.168.0.x) AND you port forward
# port 6200 TCP from your router to the pvpgn server port 6200 then here put:
# 0.0.0.0:6200 1.2.3.4:6200 192.168.0.0/24 ANY
###############################################################################
# Game Translations for clients/games (client data ports)
#
# You need this ONLY if you will have internal players that want to play with
# external ones.
#
# This setting is NOT NEEDED for D2 closed realm clients (they connect to d2gs
# to play games not to eachover).
#
# Set input address to the client to be translated
# Set output address to the address to be sent to the other clients
# Set exclude to the range of clients you want to recieve the input address
# instead of the output address
# Set include to the range of clients you want to recieve the output address
#
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask)
#----------------- ------------------ ---------------------- ----------------------
# Example, if you have an internal client on IP 192.168.1.10 AND you have the
# external IP 1.2.3.4 AND you want to exclude from translation the internal
# clients (those with IPs 192.168.1.x and 10.x.y.z) AND you port forward
# port 6118 TCP AND UDP from your router to the client IP and port 6112 then
# here put:
#192.168.1.10:6112 1.2.3.4:6118 192.168.1.0/24,10.0.0.0/8 ANY
################################################################################
# Diablo II Character Server translation (d2cs)
#
# You need this ONLY if you run a d2cs (ie ONLY if you will host a Diablo2
# closed realm).
#
# Set input address to the ip of d2cs (same as the ip in the realm.conf)
# Set output address to the address to be sent to the clients
# Set exclude to the range of clients you want to recieve the input address
# instead of the output address
# Set include to the range of client you want to recieve the output address
#
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask)
#----------------- ------------------ ---------------------- ----------------------
# Example, if you run a d2cs on IP 192.168.1.10 port 6113 and you have put the
# same IP/port in realm.conf AND you have the external IP 1.2.3.4 AND you want
# to exclude from translation the internal clients (those with IPs 192.168.1.x)
# AND you port forward port 6113 TCP from your router to the machine running
# d2cs and port 6113 then here put:
#192.168.1.10:6113 1.2.3.4:6113 192.168.1.0/24 ANY
################################################################################
# Diablo II Game Server Translation (d2gs)
#
# Set input address to the ip of d2gs (same as the gameservlist in d2cs.conf)
# Set output address to the address to be sent to the clients
# Set exclude to the range of clients you want to recieve the input address
# instead of the output address
# Set include to the range of client you want to recieve the output address
#
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask)
#----------------- ------------------ ---------------------- ----------------------
# Example, if you run a d2gs on IP 192.168.1.100 (and port 4000, d2gs cannot
# listen on other port, it will automatically listen on port 4000) and you have
# put the same IP in d2cs.conf and d2dbs.conf gameservlist setting AND you have
# the external IP 1.2.3.4 AND you dont want to exclude from translation anyone
# AND you port forward port 4000 TCP from your router to the machine running
# d2gs and port 4000 then here put:
#192.168.1.100:4000 1.2.3.4:4000 NONE ANY
#212.212.156.56:4000 212.212.156.56:4000 NONE ANY
################################################################################
# Westwood Online Game Server Translation (wwol)
#
#
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask)
#----------------- ------------------ ---------------------- ----------------------
#192.168.1.10:4005 1.2.3.4:4005 192.168.1.0/24 ANY
#212.212.156.56:4005 212.212.156.56:4005 192.168.1.0/24 ANY
d2dbs.conf:
#################################################################################
# d2dbs.conf - Configuration file for the Diablo2 Game database server #
#-------------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
#################################################################################
#################################################################################
# Server Major Settings #
#-------------------------------------------------------------------------------#
# This is a comma delimited list of hostnames that the server should
# listen on. Generally, YOU DONT NEED TO TOUCH THIS but it might be useful
# to make an internal-only server on a gateway machine for example. If the
# list is not set or if it has a entry with no host component, the server will
# bind to that port on all interfaces.
# d2dbs default listening port is 6114
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#servaddrs = 0.0.0.0:6114
servaddrs = 212.212.156.56:6114
# Put here EXACTLY the same thing you put in d2cs.conf gameservlist setting.
# For more information about this setting consult the d2cs.conf comments
# above it.
#
# YOU MUST CHANGE THIS OR D2DBS WON'T WORK PROPERLY
#
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#gameservlist = <d2gs-IP>,<another-d2gs-IP>
gameservlist = 212.212.156.56
# #
#################################################################################
#################################################################################
# Message logs #
#-------------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info
loglevels = fatal,error,warn,info,debug,trace
# #
#################################################################################
#################################################################################
# File and Path section #
# Use absolute paths in these lines to avoid problems! #
#-------------------------------------------------------------------------------#
logfile = "/usr/local/var/pvpgn/d2dbs.log"
logfile-gs = "/usr/local/var/pvpgn/d2dbs-gs.log"
charsavedir = "/usr/local/var/pvpgn/charsave"
charinfodir = "/usr/local/var/pvpgn/charinfo"
ladderdir = "/usr/local/var/pvpgn/ladders"
bak_charsavedir = "/usr/local/var/pvpgn/bak/charsave"
bak_charinfodir = "/usr/local/var/pvpgn/bak/charinfo"
#pidfile = "/usr/local/var/pvpgn/d2dbs.pid"
# #
#################################################################################
#################################################################################
# Misc #
#-------------------------------------------------------------------------------#
# #
# Ladder save interval
laddersave_interval = 3600
# Time that allow characters create after it insert into ladder
# These code should be rewritted to support string formmated time
ladderinit_time = 0
# create extra ladder file in XML format that can be parsed more easy
# 0 = turn extra output off (default)
# 1 = turn on the XML output
XML_ladder_output = 0
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 360
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
# connection max idle time in seconds
idletime = 300
# connection keep alive interval
keepalive_interval = 60
# connection time out check interval
timeout_checkinterval = 60
# experience threshold, minimum experience needed to register on the ladder
ladderupdate_threshold = 0
# What chars will be added to ladder?
# 0 = ladder and non-ladder chars
# 1 = only ladder chars
ladder_chars_only = 1
# This setting activates a workaround for the well known "Lvl 100" bug.
# It should be activated for mods where the max level is greater than 99.
# Activating this should work for mods with any max level
# If level is greater than 255, it will be set to 255
# 0 = deactivated
# 1 = activated
difficulty_hack = 0
# #
#################################################################################
d2cs.conf:
#################################################################################
# d2cs.conf - Configuration file for the diablo2 game control server #
#-------------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
#################################################################################
#################################################################################
# Server Major Settings #
#-------------------------------------------------------------------------------#
# #
# Your realm server name #
# Here you put the value of the first column from the realm line in realm.conf
# Example, if you have the line
# "MyRealm" "My Super Realm" <someIP>:6113
# in realm.conf then here you put realmname = "MyRealm"
realmname = D2CS
# This is a comma delimited list of hostnames that the server should
# listen on. Generally, YOU DONT NEED TO TOUCH THIS but it might be useful
# to make an internal-only server on a gateway machine for example. If the
# list is not set or if it has a entry with no host component, the server will
# bind to that port on all interfaces.
# d2cs default listening port is 6113
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#servaddrs = 0.0.0.0:6113
servaddrs = 212.212.156.56:6113
# This is a comma delimited list of game servers. Put here the IPs
# (without ports) of the machines running d2gs. If you run d2gs on the same
# machine as d2cs you put the IP of that machine here.
# Example: gameservlist = 192.168.1.10
# (if you have a d2gs running on a machine with the IP 192.168.1.10)
#
# YOU MUST CHANGE THIS OR D2CS WON'T WORK PROPERLY
#
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#gameservlist = <d2gs-IP>,<another-d2gs-IP>
gameservlist = 212.212.156.56
# Put here the address and port of the machine running bnetd (or pvpgn.exe).
# If you run d2cs on the same machine as bnetd (or pvpgn.exe) then here you
# put the IP of that machine.
#
# YOU MUST CHANGE THIS OR D2CS WON'T WORK PROPERLY
#
# bnetd default listening port is 6112
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#bnetdaddr = <bnetd-IP>:6112
bnetaddr = 212.212.156.56:6112
# Set this to the maximum number of concurrent connections allowed on
# this server. DO NOT TOUCH UNLESS STRICTLY NECESSARY!
max_connections = 1000
# This sets the realm to Classic or LOD or Both
# Classic = 0
# LOD = 1
# Both = 2 (default)
lod_realm = 1
# This sets whether you can convert a clasic char to
# an expansion char.
# Allow Convert = 1
# Don't allow Convert = 0
allow_convert = 1
# here u can enter the symbols allowed in accountnames (additional to
# alphanumerical symbals which are always accepted). please note that
# it is absolutly mandatory that u set up the same symbols here as in
# bnetd.conf or else u wont be able to play D2 with some characters
# (those whose symbols are allowed in bnetd.conf but not here)
# same warnings as in bnetd.conf apply here - be warned - and just
# change something if you know what you are doing
#default setting is "-_[]"
account_allowed_symbols = "-_[]"
# #
#################################################################################
#################################################################################
# Message logs #
#-------------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info
loglevels = fatal,error,warn,info,debug,trace
# #
#################################################################################
#################################################################################
# File and Path section #
# Use absolute paths in these lines to avoid problems! #
#-------------------------------------------------------------------------------#
# #
logfile = "/usr/local/var/pvpgn/d2cs.log"
charsavedir = "/usr/local/var/pvpgn/charsave"
charinfodir = "/usr/local/var/pvpgn/charinfo"
bak_charsavedir = "/usr/local/var/pvpgn/bak/charsave"
bak_charinfodir = "/usr/local/var/pvpgn/bak/charinfo"
ladderdir = "/usr/local/var/pvpgn/ladders"
transfile = "/usr/local/etc/pvpgn/address_translation.conf"
d2gsconffile = "/usr/local/etc/pvpgn/d2server.ini"
#pidfile = "/usr/local/var/pvpgn/d2cs.pid"
# d2s template for a new created characters
newbiefile_amazon = "/usr/local/var/pvpgn/files/newbie.save"
newbiefile_sorceress = "/usr/local/var/pvpgn/files/newbie.save"
newbiefile_necromancer = "/usr/local/var/pvpgn/files/newbie.save"
newbiefile_paladin = "/usr/local/var/pvpgn/files/newbie.save"
newbiefile_barbarian = "/usr/local/var/pvpgn/files/newbie.save"
newbiefile_druid = "/usr/local/var/pvpgn/files/newbie.save"
newbiefile_assasin = "/usr/local/var/pvpgn/files/newbie.save"
# #
#################################################################################
#################################################################################
# Misc #
#-------------------------------------------------------------------------------#
# #
# Message Of The Day
motd = "This is just a test"
# Set to non-zero to allow creation of new realm character
allow_newchar = 1
# Do you want d2cs to check client for multilogin for security reason?
check_multilogin = 0
# Maxinum number of character per account
# Max allowed value is 18 (enforced by server)
maxchar = 8
# Character sorting. Options are: level, ctime, mtime, name, none. (none assumed if
# not specified).
#charlist_sort = "none"
# Do we need ascending or descending order for charlist?
#charlist_sort_order = "ASC"
# Maxinum number of games will be shown in join game list
# Zero = infinite
maxgamelist = 20
# Set to non-zero to allow show all games with difficulty < character difficulty
# Otherwise, only game with difficulty = character difficulty will be shown
gamelist_showall = 0
# Maxinum time in seconds that a user can idle
# Zero = infinite
idletime = 3600
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 300
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
#
#################################################################################
#################################################################################
# Internal System Settings #
# You may just ignore them and use the default value #
#-------------------------------------------------------------------------------#
#
# How often will the server purge all list to clean unused data (in seconds)
listpurgeinterval = 300
# How often will the server check game queues (in seconds)
gqcheckinterval = 60
# How often will the server retry to connect to bnetd
# when connection lost (in seconds)
s2s_retryinterval = 10
# How long time the s2s connection will timeout
s2s_timeout = 10
# How often the server will check server queues for expired data
sq_checkinterval = 300
# How long time will a server queue data expire
sq_timeout = 300
# Game serer binary files checksum, use zero to skip this checking
d2gs_checksum = 0
# Game server version, use zero to skip this checking
d2gs_version = 0
# Game server password
d2gs_password = "myrandompassword"
# Maxinum number of second that a game will be shown on list( zero = infinite )
game_maxlifetime = 0
# Maximum level allowed in this (realm) game.
# Normal games have a max level 99, while the internal field size limit is 255.
# Extreme game MODs may have higher values, but be warned:
# !!! Use them at your own risk !!!
# game_maxlevel = 255
# A game will be automatically destroied after how long time idle
max_game_idletime = 0
# Allow Limitation created game with password, player number or level limit?
allow_gamelimit = 1
# Ladder refresh time
ladder_refresh_interval = 3600
# server to server connection max idle time in seconds
s2s_idletime = 300
# server to server connection keepalive interval
s2s_keepalive_interval = 60
# all connection timeout check interval
timeout_checkinterval = 60
# game server restart interval
# when sending SIGUSR2 signal to your d2cs this issues a restart
# of all connected d2gs after d2gs_restart_delay seconds
d2gs_restart_delay = 300
# ladder start time
# format: yyyy-mm-dd hh:mm:ss
# be carefull:
# all chars created before this date will revert to non-ladder chars
ladder_start_time = ""
# number of days before a char expires (default 0=unlimited)
char_expire_day = 0
#
#################################################################################
realm.conf:
#################################################################################
# realm.list - List of Diablo II Realms #
#-------------------------------------------------------------------------------#
# #
# Realms are areas that hold closed characters and games. #
# Users are given this list of realms to choose from when #
# creating a new character. Next time the character is #
# used, they will automatically join the same realm. #
# #
# The realm server runs on port 6113 by default. #
# If you do not specify a port number, it will use this by default. #
# #
# <realmname> : the realm name (mandatory; must start and end with " ) #
# <description> : the realm description (optional; must start and end with " ) #
# ip:port - actual ip the d2cs server is running on (mandatory) #
# #
# --- realm name --- --- description --- --- real address --- #
# (mandatory) (optional) (mandatory) #
#-------------------------------------------------------------------------------#
# "<realmname>" ["<description>"] <ip:port> #
# #
#################################################################################
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" FOR ANY IP ADDRESS
# example (having a d2cs server running on IP 1.2.3.4):
#"D2CS" "PvPGN Closed Realm" 1.2.3.4:6113
"D2CS" "PvPGN Closed Realm" 212.212.156.56:6113
bnetd.conf:
##############################################################################
# bnetd.conf - Configuration file for the main PvPGN service #
#----------------------------------------------------------------------------#
# #
# ############ READ THIS ######### READ THIS ########## READ THIS ############
# This file is an example configuration that should work UNMODIFIED for most #
# of the PvPGN setups and may require modification to suit your needs. #
# Blank lines and everything after a "#" are ignored. Use quotes around #
# values that contain spaces. #
# #
##############################################################################
##############################################################################
# Privileges to work under #
# Use either the names from the corresponding files or numerical id's (with #
# a leading '#'). If none are specified, the userid will not be changed. #
#----------------------------------------------------------------------------#
#effective_user = games
#effective_group = games
# effective_user = #12
# effective_group = #20
# #
##############################################################################
##############################################################################
# Storage section #
# storage_path will tell pvpgn how and where from/to to read/write accounts #
# right now it supports 2 "drivers" : file and sql #
# #
# Syntax: #
# * for plain file driver: #
# storage_path = file:mode=plain;dir=<path_to_user_files>;clan=<path_to_clan_files>;default=/path/to/default/account #
# * for sql driver: #
# storage_path = sql:variable=value;...;default=0 (0 is the default uid) #
# #
# Variables for sql can be: #
# - "mode" : tells PVPGN the sql mode you will use (mysql/pgsql/etc..) #
# - "host" : the database host #
# - "port" : the TCP/IP port if needed #
# - "socket" : the UNIX local socket if needed #
# - "name" : database name #
# - "user" : db username #
# - "pass" : db password #
# - "default" : specify the UID to use for the default account data #
# - "prefix" : prefix to use for all pvpgn tables (default "") #
# #
# Examples: #
# storage_path = "file:mode=plain;dir=/usr/local/var/pvpgn/users;clan=/usr/local/var/pvpgn/clans;team=/usr/local/var/pvpgn/teams;default=/usr/local/etc/pvpgn/bnetd_default_user.plain"
# storage_path = "sql:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_"
# storage_path = "sql:mode=pgsql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_"
# storage_path = "sql:mode=sqlite3;name=/usr/local/var/pvpgn/users.db;default=0;prefix=pvpgn_"
# storage_path = "sql:mode=odbc;name=PVPGN;prefix=pvpgn_"
#----------------------------------------------------------------------------#
storage_path = "file:mode=plain;dir=/usr/local/var/pvpgn/users;clan=/usr/local/var/pvpgn/clans;team=/usr/local/var/pvpgn/teams;default=/usr/local/etc/pvpgn/bnetd_default_user.plain"
# #
##############################################################################
##############################################################################
# File section #
# The pidfile can be set to "" to turn it off. #
# Use absolute paths in these lines to avoid problems! #
#----------------------------------------------------------------------------#
filedir = "/usr/local/var/pvpgn/files"
scriptdir = "/usr/local/var/pvpgn/lua"
reportdir = "/usr/local/var/pvpgn/reports"
chanlogdir = "/usr/local/var/pvpgn/chanlogs"
userlogdir = "/usr/local/var/pvpgn/userlogs"
i18ndir = "/usr/local/etc/pvpgn/i18n"
issuefile = "/usr/local/etc/pvpgn/bnissue.txt"
channelfile = "/usr/local/etc/pvpgn/channel.conf"
adfile = "/usr/local/etc/pvpgn/ad.json"
topicfile = "/usr/local/etc/pvpgn/topics.conf"
ipbanfile = "/usr/local/etc/pvpgn/bnban.conf"
mpqfile = "/usr/local/etc/pvpgn/autoupdate.conf"
logfile = "/usr/local/var/pvpgn/bnetd.log"
realmfile = "/usr/local/etc/pvpgn/realm.conf"
maildir = "/usr/local/var/pvpgn/bnmail"
versioncheck_file = "/usr/local/etc/pvpgn/versioncheck.json"
mapsfile = "/usr/local/etc/pvpgn/bnmaps.conf"
xplevelfile = "/usr/local/etc/pvpgn/bnxplevel.conf"
xpcalcfile = "/usr/local/etc/pvpgn/bnxpcalc.conf"
#pidfile = "/usr/local/var/pvpgn/bnetd.pid"
ladderdir = "/usr/local/var/pvpgn/ladders"
command_groups_file = "/usr/local/etc/pvpgn/command_groups.conf"
tournament_file = "/usr/local/etc/pvpgn/tournament.conf"
statusdir = "/usr/local/var/pvpgn/status"
aliasfile = "/usr/local/etc/pvpgn/bnalias.conf"
anongame_infos_file = "/usr/local/etc/pvpgn/anongame_infos.conf"
DBlayoutfile = "/usr/local/etc/pvpgn/sql_DB_layout.conf"
supportfile = "/usr/local/etc/pvpgn/supportfile.conf"
transfile = "/usr/local/etc/pvpgn/address_translation.conf"
customicons_file = "/usr/local/etc/pvpgn/icons.conf"
# #
##############################################################################
##############################################################################
# Localized files realm server settings #
#----------------------------------------------------------------------------#
# These filenames can have translated versions in
# the "i18ndir" directory specified above.
# (there are also two downloadable files: chathelp-war3.txt, newaccount.txt)
localizefile = common.xml
motdfile = bnmotd.txt
motdw3file = w3motd.txt
newsfile = news.txt
helpfile = bnhelp.conf
tosfile = termsofservice.txt
# Do localization by a game language or by user country?
localize_by_country = true
# #
##############################################################################
##############################################################################
# Message logs #
#----------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
loglevels = fatal,error,warn,info,debug,trace
#loglevels = fatal,error,warn,info
# #
##############################################################################
##############################################################################
# D2CS realm server settings #
#----------------------------------------------------------------------------#
# Version of D2CS server to connect with (set to zero to disable version check)
d2cs_version = 0
# Allow the D2CS server to change realm names?
allow_d2cs_setname = true
# #
##############################################################################
##############################################################################
# Downloadable files #
#----------------------------------------------------------------------------#
# These filenames are reported directly to the client and are relative to
# the "filedir" directory specified above.
iconfile = "icons.bni"
war3_iconfile = "icons-WAR3.bni"
star_iconfile = "icons_STAR.bni"
# #
##############################################################################
##############################################################################
# Client verification and upgrades #
#----------------------------------------------------------------------------#
# This option lists the client types allowed to connect (only valid for
# the bnet and wol protocol). The list is a comma separated list of any of
# the following elements:
# all : all client types allowed (default)
# chat : client type "CHAT" allowed (used by some bot software)
# dshr : client type Diablo 1 Shareware
# drtl : client type Diablo 1 (Retail)
# sshr : client type Starcraft Shareware
# star : client type Starcraft
# sexp : client type Starcraft Broodwar
# w2bn : client type Warcraft II Battle.Net Edition
# d2dv : client type Diablo 2
# d2xp : client type Diablo 2 LOD
# war3 : client type Warcraft III (Reign Of Chaos)
# w3xp : client type Warcraft III Frozen Throne
# tsun : client type Tiberian Sun
# tsxp : client type Tiberian Sun Firestorm
# ralt : client type Red Alert (with 4 players internet patche)
# ral2 : client type Red Alert 2
# dn2k : client type Dune 2000
# noxx : client type Nox
# noxq : client type Nox Quest
# rngd : client type Renegade
# rfds : client type Renegade Free Dedicated Server
# yuri : client type Yuri's Revenge
# ebfd : client type Emperor: Battle for Dune
#
# Example: allowed_clients = war3,w3xp
allowed_clients = d2dv,d2xp
# If you enable the version checks but want to allow clients that don't pass
# the checksum test then enable this.
allow_bad_version = no
# If you enable the version checks but want to allow clients that aren't
# listed in the versioncheck configuration file then enable this. Unless
# you have a very complete file or are very paranoid about cheaters this
# is a good idea.
allow_unknown_version = no
# #
##############################################################################
##############################################################################
# Time values #
#----------------------------------------------------------------------------#
# Time in seconds between account file updates, 0 means wait forever.
usersync = 300
# Number of seconds of inactivity before file is unloaded from memory.
# (only checked during account file updates)
userflush = 3600
# Number of users checked for updates at once. Higher values make sense if you
# either have very fast hardware or you don't have many number of accounts.
# Lower values make sense if you have very high CPU usage on the system you run
# the server (dont make it too low or your system will save accounts continously).
# Modify this value ONLY if you know what you are doing!!
userstep = 100
# Flush connected users? Set "false" and they will never flushed untill logout (it will consume more memory but less CPU usage, because of no queries to a file)
userflush_connected = true
# How often to send user latency tests in seconds.
latency = 600
# How often to send null or keepalive packets in seconds.
nullmsg = 120
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 300
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
# How often should bans be checked for expiration? (in seconds)
#ipban_check_int = 30
# #
##############################################################################
##############################################################################
# Policy options #
#----------------------------------------------------------------------------#
# If you don't want people to be able to create new accounts, set this to
# false.
new_accounts = true
# Set this to the maximum number of accounts you want to allow to be
# created on your server. A value of 0 means infinite and is the default.
max_accounts = 0
# If someone attempts to log in more than once, should it kick off the old
# login, or deny the new one?
kick_old_login = true
#kick_old_login = false
# With no passwords, this is bad to have enabled --NonReal
# load_new_account option has been eliminated and the functionality now is
# always active in PvPGN
# If a user is creating a new channel, should it be added automatically, or
# prompt them first?
ask_new_channel = true
# Should a game report be written for every game played or just ladder
# games?
#report_all_games = false
report_all_games = true
# Should Diablo I/II reports be written? There are no winners/losers.
report_diablo_games = false
# Should games with passwords be hidden on the game list?
hide_pass_games = true
# Should games already started be hidden on the game list? (for heavily
# loaded servers)
hide_started_games = true
# Should non-permanent channels hidden on the channel list?
hide_temp_channels = true
# Should any and all disconnects to be counted as losses?
# (Turning this on will override the user's choice in ladder games!)
disc_is_loss = false
# List additional game types to be counted as ladder games
# Curently allowed types: topvbot, melee, ffa, oneonone
# Example: ladder_games = "topvbot,oneonone"
ladder_games = "malee,oneonone,topvbot,ffa"
# If additional game types are configured (see above) to be counted as ladder
# games then this setting configures a game name prefix to make only games
# which match this game name prefix be counted as ladder. This allows to
# still have normal games of the game types configured with "ladder_games"
# directive. However if this setting is commented or "" then ALL games
# which match the game types configured with "ladder_games" are to be
# considered as ladder games. The prefix checking is CASE SENSITIVE!
# Example: ladder_prefix = "ldr_"
ladder_prefix = "ladder_"
# Should all users be able to use the /con and /connections commands?
enable_conn_all = true
# Should client IP addresses (from /con, /games, /gameinfo, /netinfo)
# be hidden from non-admins?
hide_addr = false
# Should private channel messages be logged to files in the chanlogdir
# directory? (see channels.list for public channels)
chanlog = false
# Do you want to use the channel quota feature?
quota = yes
# The following options deal with flood prevention.
#
# How many lines do you accept in quota_time seconds?
# (The default should allow 5 lines in 5 seconds,
# longer time periods allow "bursts" of traffic before the quota is full.)
quota_lines = 5 # must be between 1 and 100 lines
quota_time = 5 # must be between 1 and 60 seconds
# "virtual wrapping", so long lines count as multiple lines
quota_wrapline = 40 # must be between 1 to 256 chars
# absolute maximum characters allowed in a line
quota_maxline = 200 # must be between 1 to 256 chars
#
# How many lines do you accept in quota_time seconds before user is
# disconnected?
# (According to Jung-woo, Dobae is a Korean term for flooding the game server...
# it originally meant "to paint the wallpaper on a new or refurbished house").
# If it less than or equal to quota_lines, there is no warning before
# disconnection so don't set this too low.
quota_dobae = 10 # must be between 1 and 100 lines
# Mail support
mail_support = true
mail_quota = 5
# Channel logging message
log_notice = "*** Please note this channel is logged! ***"
# Ban on repeated password fails against bruteforce password thieves
# Fails required to get ip banned (0 to disable ban on password fail)
passfail_count = 0
# Password fail IP ban duration (in seconds)
passfail_bantime = 300
# Max users limit in private channels (0 = unlimited)
maxusers_per_channel = 0
# #
##############################################################################
##############################################################################
# Account configuration #
#----------------------------------------------------------------------------#
# Should account files be named by the account number or the player name?
savebyname = true
# Save the account data on logoff
sync_on_logoff = false
# How man rows should the account lookup hash table have? Servers with
# more accounts should use a larger table for better performance.
hashtable_size = 61
# Per default, only alphanumerical symbols are allowed in account names
# with this variable you can add some extra symbols to be allowed
# but be warned - that some of them might cause trouble - at least with
# savebyname=true (some symbols are forbidden in filenames or might cause
# you real trouble - plz neither allow wildcard symbols like '*' or '?'.
# Path delimiters like '/' or '\' are hardcoded filtered and can't be allowed.
# Also note that allowing the '.' might cause u some headache on win32 systems.
# You have been warned - the rest is up to you.
# default setting is "-_[]" as it was previous versions
account_allowed_symbols = "-_[]"
# This setting affects users that login with their uid rather than their
# username. If set to true their displayed username will be forcefully
# converted to their registered account name.
account_force_username = false
# maximum number of friends a user can add to there friends list
# default setting is 20
max_friends = 20
# #
##############################################################################
##############################################################################
# Tracking server info #
#----------------------------------------------------------------------------#
# Set track=0 to disable tracking. Any other number will set number
# of seconds between sending tracking packets. This is ON by default.
#track = 0
track = 60
# Tracking server(s)
# Use a comma delimited list of hostnames with optional UDP port numbers
# after colons. (port 6114 is the default for the newer tracking protocol)
trackaddrs = "track.pvpgn.pro,track.pvpgn.org,bntrack.darkwings.org,bnet.mivabe.nl,track.eurobattle.net"
# Change these to match your system, for example:
location = "unknown"
description = "unknown"
url = "/pvpgn/pvpgn-server"
contact_name = "a PvPGN user"
contact_email = "unknown"
# #
##############################################################################
##############################################################################
# Server network info #
#----------------------------------------------------------------------------#
# Servername by which the server identifies itself (default: "PvPGN Realm")
#servername = "PvPGN Realm"
# Set this to the maximum number of concurrent connections allowed on
# this server (minimum 32). This limit sets a general server connection
# limit, NOT the concurrent user limit (for that see next option)
max_connections = 1000
# Set maximum amount of packets in client packet queue
# If limit is reached, client connection will be dropped
# Set to 0 to disable
packet_limit = 1000
# Maximum number of concurrent users (0 means unlimited).
max_concurrent_logins = 0
# Set this option to true to allow TCP to detect and close stale
# connections.
use_keepalive = false
# Limit maximum number of connections per IP (0 = unlimited)
# this feature is new, so no recommended value so far
# (d2cs connections are exempted from this limitation)
max_conns_per_IP = 0
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
#servaddrs = ":9999"
#servaddrs = "myinternalname.some.com,localhost"
#servaddrs = ":" # default interface (all) and default port (6112)
#############
servaddrs = "212.233.156.56:6112"
#############
# Don't change these unless you really need to! You will need to run a proxy
# or modify the clients. Also note that these will not change when simply
# sending a HUP signal to the server; they are only read on startup.
# This is the port the server send the UDP test packets to by default.
# Setting it to zero makes the server use the same port as the TCP connection
# comes from. Newer clients can override this setting on a per connection
# basis.
#udptest_port = 6112
# W3 Play Game router address. Just put your server address in here
# or use 0.0.0.0:6200 for server to bind to all interfaces,
# but make sure you set up w3trans if you do.
w3routeaddr = "212.233.156.56:6200"
# w3routeshow has been removed.
# see the address_translation.conf for translating the w3route ip for local networks
# initkill_timer sets up a periodic timer on init/defer class connections
# this should detect and clean up stale connections to your server
initkill_timer = 120
# #
##############################################################################
##############################################################################
# Westwood Online (WOL) configuration #
#----------------------------------------------------------------------------#
# NOTE: WOL support is still experimental!
# This specifies the addresses where WOL connections should be accepted. See
# the description of servaddrs for formatting information. Leave this field
# blank if you do not want to accept WOL connections. If the wolv1 port is
# not specifed then 4005 will be used. Also if wolv2 port is not specifed
# then 4000 will be used.
# WOLv2 address includes servserv, game/chatting and ladder services.
#
# Note: DO NOT SET THE PORT TO ANYTHING OTHER THEN 4000 for WOLv1 or 4005 for
# WOLv2, WOL WILL FAIL IF YOU DO!
#wolv1addrs = ":4000"
#wolv2addrs = ":4005"
#wgameresaddrs = ":4807"
#apiregaddrs = ":5400"
# Just leave these as default (unless you know the timezone, longitiude and latitude
# of your server
woltimezone = "-8"
wollongitude = "36.1083"
wollatitude = "-115.0582"
# These as default means that WOL autoupdate will use official WOL FTP server.
# As "wol_update_serverhost" can be used also an IP address. FTP server is not
# component of PvPGN so for that purpose can be used any FTP server.
# Note that username and password is specifiable only in WOLv2 protocol. WOLv1
# will always use the default values.
wol_autoupdate_serverhost = "westwood-patch.ea.com"
wol_autoupdate_username = "update"
wol_autoupdate_password = "world96"
# #
##############################################################################
##############################################################################
# Internet Relay Chat (IRC) configuration #
#----------------------------------------------------------------------------#
# NOTE: IRC support is still experimental!
# This specifies the addresses where IRC connections should be accepted. See
# the description of servaddrs for formatting information. Leave this field
# blank if you do not want to accept IRC connections. If the port is not
# specified then 6667 will be used.
#ircaddrs = ":6667"
# This is the IRC network name. If this is not specified then the default of
# "PvPGN" will be used.
#irc_network_name = "PvPGN"
# This is the hostname used for IRC connections. Set this to your
# hostname, if the automatic detection doesn't correctly.
#hostname = "none"
# Set this to the desired IRC connection timeout in seconds.
#irc_latency = 180
# #
##############################################################################
##############################################################################
# Telnet configuration #
#----------------------------------------------------------------------------#
# This specifies the addresses where telnet connections should be accepted.
# See the description of servaddrs for formatting information. Leave this
# field # blank if you do not want to accept telnet connections. If the port
# is not specifed then 23 will be used.
#telnetaddrs = ":23"
###############################################################################
# war3 ladder textual output #
#-----------------------------------------------------------------------------#
# this is for all the guys, that want Warcraft 3 ladder, but don't want their
# server to run with MySQL support.
# For each ladder (solo, team, ffa, at) a corresponing file is created,
# so it's easy to build your ladder pages with them
# the following value determines, at which rate, these files are created
# set to 0 if you don't want or need these files
war3_ladder_update_secs = 300
# jfro's latest ladder is based on XML... so we can switch to XML output of ladder
# on demand
XML_output_ladder = true
###############################################################################
# server status textual output #
#-----------------------------------------------------------------------------#
# This is for writing status of the server in an attempt to see number of user
# on line actually, and games/chans.
# This is store in file var\status\warcraft3.dat as a *.ini format.
# Shouldn't be so hard in php to create dynamic website using this content.
# the following value determines, at which rate, these files are created
# set to 0 if you don't want or need these files
output_update_secs = 60
# jfro's latest ladder is based on XML... so we can switch to XML output of ladder
# on demand. Maybe we should set update interval bigger cause XML output version
# is much more verbose than the standard output
XML_status_output = false
###############################################################################
# clan settings #
#-----------------------------------------------------------------------------#
# Time in hours for a new member of clan to be a newer(Peon icon, cannot promote to Grunt)
# default value 168(7 days). If set to 0, all new members could be promote in no time
clan_newer_time = 0
# max members count allowed in a clan, set between 10 and 100, default 50.
clan_max_members = 50
# Default clan channel status when create a clan, 1 for private, 0 for public
clan_channel_default_private = 0
# Minimum accepted invites for create new clan. 0 = clans will be created
# without accepted invitations need. This does not affect WAR3/W3XP ingame
# clan management.
clan_min_invites = 2
###############################################################################
# user commands logging #
#-----------------------------------------------------------------------------#
# Should commands from users be logged to files in the userlogdir?
log_commands = true
# Commands will be logged for users with these command groups
# (global operators and admins are included)
log_command_groups = 2345678
# List of commands that will be logged
# can be defined by connecting them with a comma (,)
# set empty to log all commands
log_command_list = ""
In the address_translation.conf you can see some configs in the last two sections - but I have commented them out, because I am using a VPS with its external IP directly attached to the Network Interface.
There is one repeating error in the log:
==> d2cs.log <==
Mar 30 00:45:00 [warn ] bnetd_check: connection to bnetd s2s timeout
Mar 30 00:45:00 [info ] d2cs_conn_destroy: [2] closed connection 92 (1 left)
Mar 30 00:45:11 [info ] s2s_create: try make s2s connection to 192.168.0.1
Mar 30 00:45:11 [info ] s2s_create: connection to s2s server 192.168.0.1 is in progress
Mar 30 00:45:11 [info ] d2cs_conn_create: created session=93 socket=2 (2 current connections)
Mar 30 00:45:22 [warn ] bnetd_check: connection to bnetd s2s timeout
Mar 30 00:45:22 [info ] d2cs_conn_destroy: [2] closed connection 93 (1 left)
Mar 30 00:45:33 [info ] s2s_create: try make s2s connection to 192.168.0.1
Mar 30 00:45:33 [info ] s2s_create: connection to s2s server 192.168.0.1 is in progress
Mar 30 00:45:33 [info ] d2cs_conn_create: created session=94 socket=2 (2 current connections)
Mar 30 00:45:44 [warn ] bnetd_check: connection to bnetd s2s timeout
Mar 30 00:45:44 [info ] d2cs_conn_destroy: [2] closed connection 94 (1 left)
I have no idea where this host is taken from - 192.168.0.1 - it is not contained in any of the configuration files I posted, or anywhere else among any pvpgn files. I have no such IP address up on any interface, even.
I'd really appreciate some help at this point, thank you!