Skip to forum content

You are not logged in. Please login or register.


forums.pvpgn.pro → [EN] Tech Support → No Realms Are Available (Diablo II LoD)

Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 15

1

Topic: No Realms Are Available (Diablo II LoD)

I've been banging my head against the wall for a couple days on this, changing various IP settings from internal to external, etc. I've even tried using the external IP for all entries since the port forwarding is all correct. All of the NAT is correctly configured for external access to the best of my knowledge.

I am able to connect, create an account, and use D2 open. I am not able to join closed and load the character list (none yet created), instead receiving error "No Realms Are Available Right Now, Please Try Again Later."

This entire setup is intended to be used primarily by players OUTSIDE of the servers' local network, in case that is relevant.

PvPGN, D2CS, D2DBS are installed on a Debian 9.9 (Stretch) server at 192.168.1.23
D2GS is installed on a Windows Server 2019 server at 192.168.1.21

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"
storage_path = "sql:mode=mysql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass={removed};default=0;prefix=pvpgn_"

#                                                                            #
##############################################################################

##############################################################################
# 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 = false

#                                                                            #
##############################################################################


##############################################################################
# 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 = all

# If you enable the version checks but want to allow clients that don't pass
# the checksum test then enable this.
allow_bad_version = true

# 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 = true

#                                                                            #
##############################################################################


##############################################################################
# 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 = "none"

# 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 = ""

# 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 = "https://github.com/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 = "Battle.NetBlues.org"

# 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 = "192.168.1.23:6112,72.223.62.236:6112,battle.netblues.org:6112" # default interface (all) and default port (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 = "0.0.0.0: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 = false

###############################################################################
# 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 = ""

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):
#"Battle.NetBlues.org"            "Team NetBlues Private Realm"        192.168.1.23:6113

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        =    Battle.NetBlues.org

# 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        =    72.223.62.236: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        =    192.168.1.21

# 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        =    192.168.1.23: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 = 2

# 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                    =       "You should be listening to System of a Down right now. If you aren't, you're not doing it right. - Logan" 

# 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            =    18

# Character sorting. Options are: level, ctime, mtime, name, none. (none assumed if
# not specified).
#charlist_sort = "level"

# 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        =    200

# 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    =    1

# Maxinum time in seconds that a user can idle
# Zero = infinite
idletime        =    0

# 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    =    5

# 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        =    ""

# 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

#
#################################################################################

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    = 72.223.62.236:6114,192.168.1.23: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            =       192.168.1.21

#                                        #
#################################################################################

#################################################################################
# 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

#                                        #
#################################################################################

2

Re: No Realms Are Available (Diablo II LoD)

Upload your adress_translation.conf

3

Re: No Realms Are Available (Diablo II LoD)

Welcome!

First thing I notice without looking through each of your config files is that it seems that your realm.conf has its main line commented out. And I'd refrain from using your 192.168.X.X IP anywhere, it should always be your public one.

If you feel comfortable giving someone TeamViewer control or Remote Desktop login, I'm more than happy to jump in and get it finished/working for you.  TeamViewer is good then you can follow what I do, if you want.

Owner of SlashDiablo - One of the oldest and most well known Diablo II servers
Admin of Resurgence - Vanilla++ mod
Co-Founder of Hellforged - Diablo 09 built on 1.13 engine (current work in progress)
Founder of Diablo2.org - Dedicated Discord server for PvPGN/D2GS questions

4

Re: No Realms Are Available (Diablo II LoD)

Thank you for helping out. I am still seeing this issue.

@Meanski - This is a Debian server with no GUI, so RDP/TV aren't an option, but I can get you temporary SSH access if you'd like.

I've applied the below changes and the behavior has not changed:
- Found and replaced *ALL* instances of 192.168.1.21 & .23 with true external IP, however this has introduced the error shown below under "bnetd.log"
- Uncommented line in question (per @Meanski's feedback in last post) in realm.conf
- Removed host IP from servaddrs in d2cs.conf to successfully resolve error "net_listen: error bind listen socket" observed in d2cs.log
- Removed host IP from servaddrs in d2dbs.conf to successfully resolve error "psock_bind() failed : Cannot assign requested address" observed in d2dbs.log
- See address_translation.conf below (AFTER aforementioned IP changes)

bnetd.log

Jun 25 04:04:19 [info ] sd_accept: [21] accepted connection from 192.168.1.1:34102 on 0.0.0.0:6112
Jun 25 04:04:19 [debug] conn_create: [21][19] sessionkey=0x959352826 sessionnum=0x00000001
Jun 25 04:04:19 [debug] sd_accept: [21] client connected to a bnet listening address
Jun 25 04:04:19 [info ] handle_init_packet: [21] client initiated d2cs_bnetd connection
Jun 25 04:04:19 [info ] handle_init_packet: [21] d2cs connection from unknown ip address 192.168.1.1:34102
Jun 25 04:04:19 [trace] conn_shutdown: [21] connection already closed
Jun 25 04:04:19 [info ] conn_destroy: [21] closed init connection

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:

72.223.62.236:6113   72.223.62.236: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:

72.223.62.236:4000  72.223.62.236:4000       192.168.1.0/24                    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

d2cs.log

Jun 25 01:55:49 [info ] main: D2CS Version 1.10.1.1 Built Jun 24 2019
Jun 25 01:55:49 [info ] d2gs_create: added game server 72.223.62.236 (id: 1) to list
Jun 25 01:55:49 [info ] d2ladder_readladder: ladder file loaded successfully (28 types 35 maxtype)
Jun 25 01:55:49 [info ] d2ladder_init: ladder data initialized
Jun 25 01:55:49 [debug] trans_load: non d2gs input (ignoring) "72.223.62.236:6113"
Jun 25 01:55:49 [debug] trans_load: Adding Host -> 72.223.62.236:4000, Output -> 72.223.62.236:4000, Network 192.168.1.0/0xffffff00 - (exclude)
Jun 25 01:55:49 [debug] trans_load: Adding Host -> 72.223.62.236:4000, Output -> 72.223.62.236:4000, Network 0.0.0.0/0x00000000 - (include)
Jun 25 01:55:49 [info ] trans_load: trans file loaded
Jun 25 01:55:49 [info ] FDWEpollBackend: fdwatch epoll() based layer initialized (max 960 sockets)
Jun 25 01:55:49 [info ] main: server initialized
Jun 25 01:55:49 [info ] d2cs_server_process: network initialized
Jun 25 01:55:49 [info ] s2s_create: try make s2s connection to 72.223.62.236:6112
Jun 25 01:55:49 [info ] s2s_create: connection to s2s server 72.223.62.236:6112 is in progress
Jun 25 01:55:49 [info ] d2cs_conn_create: created session=1 socket=2 (1 current connections)
Jun 25 01:55:49 [info ] server_listen: listen on 0.0.0.0:6113
Jun 25 01:55:49 [info ] d2cs_server_process: entering server loop
Jun 25 01:55:49 [info ] conn_handle_connecting: connected to 72.223.62.236:6112
Jun 25 01:55:49 [info ] handle_bnetd_init: sent init class packet to bnetd
Jun 25 01:55:49 [info ] d2cs_conn_destroy: [2] closed connection 1 (0 left)
Jun 25 01:55:50 [info ] s2s_create: try make s2s connection to 72.223.62.236:6112
Jun 25 01:55:50 [info ] s2s_create: connection to s2s server 72.223.62.236:6112 is in progress
Jun 25 01:55:50 [info ] d2cs_conn_create: created session=2 socket=2 (1 current connections)
Jun 25 01:55:50 [info ] d2ladder_readladder: ladder file loaded successfully (28 types 35 maxtype)
Jun 25 01:55:50 [info ] conn_handle_connecting: connected to 72.223.62.236:6112
Jun 25 01:55:50 [info ] handle_bnetd_init: sent init class packet to bnetd
Jun 25 01:55:50 [info ] d2cs_conn_destroy: [2] closed connection 2 (0 left)

5 (edited by hehpe 26.06.2019 01:08)

Re: No Realms Are Available (Diablo II LoD)

Here I edited it for you give it a try now.

Adress_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.23:6112   72.223.62.236: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.23:6113  72.223.62.236: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.21:4000  72.223.62.236:4000       192.168.1.0/24                    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

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        =    Battle.NetBlues.org

# 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        =    192.168.1.23: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        =    192.168.1.21

# 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        =    192.168.1.23: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 = 2

# 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                    =       "You should be listening to System of a Down right now. If you aren't, you're not doing it right. - Logan" 

# 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            =    18

# Character sorting. Options are: level, ctime, mtime, name, none. (none assumed if
# not specified).
#charlist_sort = "level"

# 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        =    200

# 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    =    1

# Maxinum time in seconds that a user can idle
# Zero = infinite
idletime        =    0

# 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    =    5

# 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        =    ""

# 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

#
#################################################################################

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    =  192.168.1.23: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            =       192.168.1.21

#                                        #
#################################################################################

#################################################################################
# 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

#                                        #
#################################################################################

6 (edited by Feofilaktt 25.06.2019 20:25)

Re: No Realms Are Available (Diablo II LoD)

That's the problem!


#"Battle.NetBlues.org"            "Team NetBlues Private Realm"        192.168.1.23:6113

Remove the # at the beginning of the line

Diablo 2 Online

Itens - Armory - Market - Clans - Builds - Planner

7

Re: No Realms Are Available (Diablo II LoD)

@hehpe - Thanks for that. I'm not actually using Wine, *.21 is an actual Windows Server 2019 installation. I can see that I forgot to uncomment the game translations line in the address translations, so that was helpful. This does get me past the original message, however, I'm now encountering a new error where the realm screen will say it was unable to connect to realm. Here's the error in bnetd.log.

bnetd.log

Jun 25 11:32:27 [debug] conn_set_realm: [22] set to "Battle.NetBlues.org"
Jun 25 11:32:27 [debug] trans_net: checking 192.168.1.23:6113 for client 72.201.233.211 ...
Jun 25 11:32:27 [debug] trans_net: against entry -> 72.223.62.236:6112 output 72.223.62.236:6112 network 192.168.1.0/0xffffff00
Jun 25 11:32:27 [debug] trans_net: entry does match input address
Jun 25 11:32:27 [debug] trans_net: against entry -> 72.223.62.236:6112 output 72.223.62.236:6112 network 10.0.0.0/0xff000000
Jun 25 11:32:27 [debug] trans_net: entry does match input address
Jun 25 11:32:27 [debug] trans_net: against entry -> 72.223.62.236:6112 output 192.168.1.23:6112 network 0.0.0.0/0x00000000
Jun 25 11:32:27 [debug] trans_net: entry does match input address
Jun 25 11:32:27 [debug] trans_net: against entry -> 72.223.62.236:6113 output 72.223.62.236:6113 network 192.168.1.0/0xffffff00
Jun 25 11:32:27 [debug] trans_net: entry does match input address
Jun 25 11:32:27 [debug] trans_net: against entry -> 72.223.62.236:6113 output 192.168.1.23:6113 network 0.0.0.0/0x00000000
Jun 25 11:32:27 [debug] trans_net: entry does match input address
Jun 25 11:32:27 [debug] trans_net: no match found for 192.168.1.23:6113 (not translated)

8

Re: No Realms Are Available (Diablo II LoD)

NetBlues wrote:

Oops my bad I had a long day... here is the correct 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.23:6112   72.223.62.236: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.23:6113  72.223.62.236: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.21:4000  72.223.62.236:4000       192.168.1.0/24                    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

9

Re: No Realms Are Available (Diablo II LoD)

@hehpe - This appears to be the exact same file content as before, did I miss something?

When I use the local IPs first then the external IP in address_translation.conf, I receive this error in the bnetd.log:

Jun 25 15:09:06 [debug] trans_net: checking 192.168.1.23:6113 for client 72.201.233.211 ...
Jun 25 15:09:06 [debug] trans_net: against entry -> 192.168.1.23:6112 output 192.168.1.23:6112 network 192.168.1.0/0xffffff00
Jun 25 15:09:06 [debug] trans_net: entry does match input address
Jun 25 15:09:06 [debug] trans_net: against entry -> 192.168.1.23:6112 output 192.168.1.23:6112 network 10.0.0.0/0xff000000
Jun 25 15:09:06 [debug] trans_net: entry does match input address
Jun 25 15:09:06 [debug] trans_net: against entry -> 192.168.1.23:6112 output 72.223.62.236:6118 network 0.0.0.0/0x00000000
Jun 25 15:09:06 [debug] trans_net: entry does match input address
Jun 25 15:09:06 [debug] trans_net: against entry -> 192.168.1.23:6113 output 192.168.1.23:6113 network 192.168.1.0/0xffffff00
Jun 25 15:09:06 [debug] trans_net: client is not in the correct network
Jun 25 15:09:06 [debug] trans_net: against entry -> 192.168.1.23:6113 output 72.223.62.236:6113 network 0.0.0.0/0x00000000
Jun 25 15:09:06 [debug] trans_net: 192.168.1.23:6113 translated to 72.223.62.236:6113

10 (edited by itarachiu 26.06.2019 04:10)

Re: No Realms Are Available (Diablo II LoD)

It took me about 1 week a few years ago untill I got the server running... anyways.

Also do this

d2cs.conf

You forgot the columns for realname(also beware that long names if I remember correctly will not work properly, try something shorter like "NetBlues" only. Edit in realm.conf as well the name of the realm.

realmname        =    Battle.NetBlues.org
to
realmname        =    "NetBlues"

!!!Use your external IP only in address_translation.conf!!!

servaddrs        =    72.223.62.236:6113
to
servaddrs        =    192.168.1.23:6113

d2dbs.conf
servaddrs    = 72.223.62.236:6114,192.168.1.23:6114
to
servaddrs    = 192.168.1.23:6114

address_translation.conf

Delete your address_translation.conf and copy a new fresh one from the PvPGN archive and paste those 3 lines on the top of the file

192.168.1.23:16112   72.223.62.236:16112      192.168.1.0/24    ANY
192.168.1.23:6113     72.223.62.236:6113        192.168.1.0/24    ANY
192.168.1.23:4000     72.223.62.236:4000        NONE                   ANY

It should work, then you have to telnet to via PuTTY to the PvPGN D2GS service to unlock the players limit.
ALSO take a look on those links that help me to build the server.

https://sourceforge.net/projects/pvpgn.berlios/files/
www.pvpgn.pl/d2gs/
pvpgn.wikia.com/wiki/Windows_Diablo_II_Server
pvpgn.wikia.com/wiki/D2GS_Server
pvpgn.wikia.com/wiki/How_to_get_ … _7_64-bit)

EDIT:
Check your process list, I remember untill I got d2gs to run it took me forever, so if d2gs is running that means your regfile was configured correctly, if the service starts like 2-3 seconds and then stops something is wrong. So you have to find 4 processes running, pvpgn, d2cs, d2dbs and d2gs. If one of them is not running(usually d2gs) you will get the error with No Realm Available.

EDIT2:
Try to telnet 192.168.1.23 port 8888, if you see a message looking like this "Diablo II Close Game Server Administration Console" means your d2gs is working, if not there are some mistakes in your configuration files. See the links for help.

RNYBattle.net - Diablo II Private Server.

11

Re: No Realms Are Available (Diablo II LoD)

@itarachiu - I believe the current issues are not related to d2gs as I am able to create characters in local network now but not externally. I tried with the suggested changes and the behavior has not changed.

The root of the issue appears to be related to bnetd thinking the client is in the wrong network.

12 (edited by itarachiu 27.06.2019 14:54)

Re: No Realms Are Available (Diablo II LoD)

Ok, did you tried to telnet the server machine via port 8888(local ip one)? Did you see any message? If yes, are you sure you setup the firewall correctly for outside network? Ports that need to be allowed outside network are TCP: 4000, 6112, 6113, 6114(8888 does not matter but for security reasons you must to keep it blocked, only for inside network)

Edit: You said that the server machine is using linux, my server is build on windows(same machine all services) so I have no experience with this, but one thing I can tell you, try to build the server on the same machine with Windows as OS... You complicate things running the server on different OS(PvPGN and D2gs). It's a pain untill you learn and get the server running, even with instructions, you resolve a problem and then is another one.

RNYBattle.net - Diablo II Private Server.

13

Re: No Realms Are Available (Diablo II LoD)

@itarachiu - No, I have not yet attempted to telnet to the d2gs service. My understanding is that the d2gs service is responsible for managing the actual game instances, rather than the realm management. The current issue seems to be related to the d2cs, as there is an error posting to indicate so. You're probably right that there will just be another error after resolving this one, but sometimes that's how it goes. As far as running bnetd, d2cs, and d2dbs on Windows, this was the initial approach I took and after lengthy configuration and troubleshooting attempts I have determined with some certainty that PvPGN is not compatible with Windows Server 2019, which also does not support a compatibility mode for older Windows versions. Installing runtimes and Visual Studio, along with DirectX and other dependencies, continued to yield runtime errors even when the requested runtimes were confirmed present. PvPGN simply will not open in Windows Server 2019. While one solution would be to provision a virtual machine with Windows XP or similar, I'm afraid that I'm not comfortable running Windows XP software in this network. While that server is moderately robust at 40 cores and ~500gb RAM, I am apprehensive about using a desktop OS like Windows 10 with a reputation for poor resource management and runaway services. I'd much prefer to use purpose-built server software for the purposes of running a server.

14

Re: No Realms Are Available (Diablo II LoD)

I use Windows 2012 Server Standard on my server and is working fine with 1.8.5 PvPGN version, the latest one I had some problems with Visual Studio runtime too so because of that I got back to 1.8.5 older version. Keep in mind that d2gs must be set to run as a Windows XP(SP2) OS from Properties, otherwise it will not start, actually it does start but it crashes after 2-3 seconds.
Trying to telnet to d2gs machine, you can get an ideea if your d2gs is running correctly. If you get connection refused means that your d2gs is not working and may be the reason why you get no realm available.

Added: 27.06.2019 22:06

OK let's try start from scratch.

Download PvPGN-1.8.5-0-Win32-ODBC-BIN.zip from https://sourceforge.net/projects/pvpgn.berlios/files/
Download D2GS_v1.13c.zip from www.pvpgn.pl/d2gs/

Install the 1.13c patch to your diablo 2 game folder and copy those files into a separate folder:
    d2data.mpq
    d2exp.mpq
    d2sfx.mpq
    d2speech.mpq
    Patch_D2.mpq
    D2Client.dll
    D2CMP.dll
    D2Common.dll
    D2Game.dll
    D2gfx.dll
    D2Lang.dll
    D2MCPClient.dll
    D2Net.dll
    D2sound.dll
    D2Win.dll
    Fog.dll
    ijl11.dll
    Storm.dll

Now, PvPGN-1.8.5-0-Win32-ODBC-BIN.zip and go to conf folder.

Now some lines that need to be edited may contain '#' in the beginning of the line(delete the '#' if is present)

Edit bnetd.conf
allowed_clients = all
allowed_clients = d2dv,d2xp

Edit realm.conf
"Test"                 "PvPGN Closed Realm"            192.168.1.23:6113

Edit d2cs.conf
realmname              =       "Test"
gameservlist           = 192.168.1.21
bnetdaddr          = 192.168.1.23

Edit d2dbs.conf
gameservlist = 192.168.1.21

Edit address_translation.conf
192.168.1.21:16112   YOUR_PUBLIC_IP:16112      192.168.1.0/24    ANY
192.168.1.23:6113     YOUR_PUBLIC_IP:6113        192.168.1.0/24    ANY
192.168.1.21:4000     YOUR_PUBLIC_IP:4000        NONE                   ANY

Now extract d2gs archive in your wine machine and copy the diablo 2 files(that you copied from the diablo 2 game folder) and copy them into the d2gs extracted folder.

Edit d2gs.reg file from d2gs folder
Replace
[HKEY_LOCAL_MACHINE\SOFTWARE\D2Server\D2GS]
with
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\D2Server\D2GS]

and edit those

"D2CSIP"="192.168.1.21"
"D2DBSIP"="192.168.1.21"

Now run the regfile to add the information to the registry.

Set d2gs.exe compatibility to run on Win XP(SP3) for all users.

Now, start the server, pvpgn.exe, d2cs.exe, d2dbs.exe, d2gs.exe and see now.

EDIT: If after this is working, there are other stuffs to do, but let me know if is working untill now.

RNYBattle.net - Diablo II Private Server.

15

Re: No Realms Are Available (Diablo II LoD)

Any updates @NetBlues?

Owner of SlashDiablo - One of the oldest and most well known Diablo II servers
Admin of Resurgence - Vanilla++ mod
Co-Founder of Hellforged - Diablo 09 built on 1.13 engine (current work in progress)
Founder of Diablo2.org - Dedicated Discord server for PvPGN/D2GS questions

Posts: 15

Pages 1

You must login or register to post a reply

Who now at forum

Currently view post: 1 guest, 0 registered users

forums.pvpgn.pro → [EN] Tech Support → No Realms Are Available (Diablo II LoD)