• 0
Mangolicious

Failed to connect to server

Question

Posted (edited)

Sup folks.

Well, as the title says, I have mounted a new Hercules server to play with my friends, I have installed MySQL 8 server with RO database and tables, I use a 2018-07-12 KRO client with a 20180704aRagexe diffed with only recommended patches, Im using Asheraf´s data and system folders updated, the client opens with no problem.

Aparently, my server runs fune, with no errors, only with one warning about using 0.0.0.0 wildcard on subnets, sclientinfo file is configured with my wan, my 5121, 6121 and 6900 ports are forwarded and verified with a port inspector, my firewall disabled and even with DMZ on, my friends cant log into the server, they always get "Failed to connect to server" message. However, when I modify the sclientinfo to run as localhost or LAN ip, I can connect with no problems.

I suspect, this could be an issue related to subnets, but I havent worked with subnets in the past, so I dont know how to deal with them, I come here to ask for advice, because I dont know what else could be causing this trouble.

Char-server.conf

Spoiler

//================= Hercules Configuration ================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2014-2018  Hercules Dev Team
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Character Server configuration file.
//=========================================================================

char_configuration: {
    @include "conf/global/console.conf"
    @include "conf/global/sql_connection.conf"

    // Server name, use alternative character such as ASCII 160 for spaces.
    // NOTE: Do not use spaces or any of these characters which are not allowed in
    //       Windows filenames \/:*?"<>|
    //       ... or else guild emblems won't work client-side!
    server_name: "Test"

    // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
    wisp_server_name: "Test"

    // Guild earned exp modifier.
    // Adjusts taxed exp before adding it to the guild's exp. For example,
    // if set to 200, the guild receives double the player's taxed exp.
    guild_exp_rate: 100

    // Information related to inter-server behavior
    inter: {
        // Server Communication username and password.
        userid: "admin"
        passwd: "admin"
        
        // Login Server IP
        // The character server connects to the login server using this IP address.
        // NOTE: This is useful when you are running behind a firewall or are on
        // a machine with multiple interfaces.
        login_ip: LAN IP

        // The character server listens on the interface with this IP address.
        // NOTE: This allows you to run multiple servers on multiple interfaces
        // while using the same ports for each server.
        //bind_ip: "127.0.0.1"

        // Login Server Port
        login_port: 6900

        // Character Server IP
        // The IP address which clients will use to connect.
        // Set this to what your server's public IP address is.
        char_ip: WAN IP

        // Character Server Port
        char_port: 6121
    }

    // Connection permission
    permission: {
        // Enable or disable creation of new characters.
        enable_char_creation: true

        // Display (New) in the server list.
        display_new: false

        // Maximum users able to connect to the server.
        // Set to 0 to disable users to log-in. (-1 means unlimited)
        max_connect_user: -1

        // Group ID that is allowed to bypass the server limit of users.
        // Default: -1 = nobody (there are no groups with ID < 0)
        // See: conf/groups.conf
        gm_allow_group: -1

        // Type of server.
        // No functional side effects at the moment.
        // Displayed next to the server name in the client.
        // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=F2P
        server_type: 0

        // Minimum Group ID to join char server when it is on char_server_type 1 (maintenance)
        maintenance_min_group_id: 99
    }

    // Player-related configuration
    player: {
        new: {
            // Start point (Renewal)
            start_point_re: {
                map: "iz_int"
                x: 18
                y: 27
            }
            // Start point (Pre-Renewal)
            //start_point_pre: {
            //    map: "new_1-1"
            //    x: 53
            //    y: 111
            //}

            // Starting items for new characters
            //{
            //    id: Item id
            //    amount: Item amount
            //    loc: Item position, same as in item_db if you want the item to be equipped, otherwise 0 (optional)
            //    stackable: Is stackable? (not stackable item types: weapon, armor, egg, pet armor)
            //},
            start_items: (
            {
                id: 1201 // Knife
                amount: 1
                loc: 2
                stackable: false
            },
            {
                id: 2301 // Cotton_Shirt
                amount: 1
                loc: 16
                stackable: false
            },
            )

            // Starting zeny
            zeny: 0
        }

        // Character name configuration
        name: {
            // Name used for unknown characters
            unknown_char_name: "Unknown"

            // Allow or not identical name for characters but with a different case (upper/lower):
            // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
            name_ignoring_case: false

            // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
            // NOTE: Applies to character, party and guild names.
            // 0: no restriction (default)
            // 1: only letters/symbols in 'name_letters' option.
            // 2: Letters/symbols in 'name_letters' option are forbidden. All others are possibles.
            name_option: 1

            // Set the letters/symbols that you want use with the 'char_name_option' option.
            // Note: Don't add spaces unless you mean to add 'space' to the list.
            name_letters: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
        }

        deletion: {
            // Restrict character deletion by BaseLevel
            // 0: no restriction (players can delete characters of any level)
            // -X: you can't delete chars with BaseLevel <= X
            // Y: you can't delete chars with BaseLevel >= Y
            // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
            level: 0

            // Amount of time in seconds by which the character deletion is delayed.
            // Default: 86400 (24 hours)
            // NOTE: Requires client 2010-08-03aragexeRE or newer.
            delay: 86400

            // Block deletion if character is inside a guild or a party? (BOOL)
            // default: false    official: true
            // !!This check is imposed by Aegis to avoid dead entries in databases and _is_not_needed_ as we clear data properly!!
            use_aegis_delete: false
        }

        // Size for the fame-lists
        fame: {
            alchemist: 10
            blacksmith: 10
            taekwon: 10
        }
    }

    database: {
        // How often should server save all guild related information? (character save interval is defined on the map config)
        // (in seconds)
        autosave_time: 60

        // What folder the DB files are in (abra_db.txt, etc.)
        db_path: "db"

        // To log the character server?
        log_char: true
    }

    //==================================================================
    // Pincode system
    //==================================================================
    pincode: {
        // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse
        // NOTE: Requires client 2011-03-09aragexeRE or newer.
        // 0: disabled
        // 1: enabled
        enabled: false

        // Request Pincode only on login or on everytime char select is accessed?
        // 0: only on login (default)
        // 1: everytime the char select window is accessed
        request: 0

        // How often does a user have to change his pincode?
        // Default: 0
        // 0: never
        // X: every X minutes
        change_time: 0

        // How often can a user enter the wrong password?
        // Default: 3
        // Maximum allowed by clientside: 3
        max_tries: 3

        // Whether or not to refuse pincodes that are blacklisted
        // Default: true
        check_blacklisted: true

        // Blacklisted pincodes
        blacklist: [
            "0000",
            "1111",
            "2222",
            "3333",
            "4444",
            "5555",
            "6666",
            "7777",
            "8888",
            "9999",
            "0123",
            "1234",
            "2345",
            "3456",
            "4567",
            "5678",
            "6789",
            "7890"
        ]
    }
}

import: "conf/import/char-server.conf"

 

Login-server.conf

Spoiler

//================= Hercules Configuration ================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2014-2018  Hercules Dev Team
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Login Server configuration file.
//=========================================================================

login_configuration: {
    // Login-server's console configuration
    @include "conf/global/console.conf"

    inter: {
        // The login server listens on the interface with this IP address.
        // NOTE: This allows you to run multiple servers on multiple interfaces
        // while using the same ports for each server.
        //bind_ip: "127.0.0.1"

        // Login Server Port
        login_port: 6900

        // Interval (in minutes) to execute a DNS/IP update. Disabled by default.
        // Enable it if your server uses a dynamic IP which changes with time.
        //ip_sync_interval: 10
    }

    log: {
        // To log the login server?
        // NOTE: The login-sql server needs the login logs to enable dynamic pass failure bans.
        log_login: true

        // Indicate how to display date in logs, to players, etc.
        date_format: "%Y-%m-%d %H:%M:%S"
    }

    // for packet version >= 20170726
    users_count: {
        // if false, dont show any colored strings.
        // if true, show special users count numbers for coloring char servers.
        send_user_count_description: true

        // users counts for use different colors.
        // below 'low' show green text
        // below 'medium' show oragne text
        // below 'high' show red text
        // higher 'high' show purple text
        low: 200
        medium: 500
        high: 1000
    }

    // Account engine configuration
    account: {
        // Can you use _M/_F to make new accounts on the server?
        new_account: true

        //If new_account is enabled, minimum length to userid and passwords should be 4?
        //Must be 'true' unless your client uses both 'Disable 4 LetterUserID/Password' Diffs
        new_acc_length_limit: true

        // Account registration flood protection system
        // allowed_regs is the number of registrations allowed in time_allowed (in seconds)
        allowed_regs: 1
        time_allowed: 10

        // Starting additional sec from now for the limited time at creation of account
        // -1: new account are created with UNlimited time (default value)
        // 0 or more: new accounts was created by addition of the value (in sec) to the actual time (to set first limited time)
        start_limited_time: -1

        // Store passwords as MD5 hashes instead of plaintext ?
        // NOTE: Will not work with clients that use <passwordencrypt>
        use_MD5_passwords: false

        // Account data engine storage configuration
        @include "conf/global/sql_connection.conf"

        //==================================================================
        // IP banning system
        //==================================================================
        ipban: {
            enabled: true

            // Interval (in seconds) to clean up expired IP bans. 0 = disabled. default = 60.
            // NOTE: Even if this is disabled, expired IP bans will be cleaned up on login server start/stop.
            // Players will still be able to login if an ipban entry exists but the expiration time has already passed.
            cleanup_interval: 60

            // SQL connection settings
            @include "conf/global/sql_connection.conf"

            // Dynamic password failure ipban system
            dynamic_pass_failure: {
                enabled: true

                // Interval in minutes between failed tries
                // Only failed tries between this interval will be accounted when banning
                ban_interval: 5

                // How many failures before adding a temporary ban entry?
                ban_limit: 7

                // Duration of the ban in minutes
                ban_duration: 5
            }
        } // login_configuration.account.ipban
    } // login_configuration.account

    permission: {
        // Required account group id to connect to server.
        // -1: disabled
        // 0 or more: group id
        group_id_to_connect: -1

        // Minimum account group id required to connect to server.
        // Will not function if group_id_to_connect config is enabled.
        // -1: disabled
        // 0 or more: group id
        min_group_id_to_connect: -1

        // Check The clientversion set in the clientinfo ?
        check_client_version: false

        // What version we would allow to connect? (if check_client_version is enabled)
        client_version_to_connect: 20

        //==================================================================
        // Client hash checking system
        //==================================================================
        // Note: see doc/md5_hashcheck.txt for more details.
        hash: {
            // Client MD5 hash check
            // If turned on, the login server will check if the client's hash matches
            // the value below, and will not connect tampered clients.
            enabled: false

            // Client MD5 hashes
            // The client with the specified hash can be used to log in by players with
            // a group_id equal to or greater than the given value.
            // If you specify 'disabled' as hash, players with a group_id greater than or
            // equal to the given value will be able to log in regardless of hash (and even
            // if their client does not send a hash at all.)
            MD5_hashes: (
            //{
            //    group_id: group id
            //    hash: client hash
            //},
            //{
            //    group_id: 0
            //    hash: "113e195e6c051bb1cfb12a644bb084c5"
            //},
            //{
            //    group_id: 10
            //    hash: "cb1ea78023d337c38e8ba5124e2338ae"
            //},
            //{
            //    group_id: 99
            //    hash: "disabled"
            //},
            )
        } // login_configuration.permission.hash

        DNS_blacklist: {
            // DNS Blacklist Blocking
            // If enabled, each incoming connection will be tested against the blacklists
            // on the specified dnsbl_servers
            enabled: false

            dnsbl_servers: (
                // Here are some free DNS Blacklist Services: http://en.wikipedia.org/wiki/Comparison_of_DNS_blacklists
                "bl.blocklist.de",        // IP-Addresses who attack other servers/honeypots over SSH, FTP, IMAP, etc.
                //"ircbl.ahbl.org",       // AHBL (open proxies, compromised machines, comment spammers)
                //"safe.dnsbl.sorbs.net", // All zones in dnsbl.sorbs.net except "recent" and "escalations"
                //"sbl-xbl.spamhaus.org", // Spamhaus blacklist (spammers, open proxies)
                "socks.dnsbl.sorbs.net",  // Open SOCKS proxy servers
                //"tor.ahbl.org",         // Current tor relay and exit nodes
            )
        } // login_configuration.DNS_blacklist
    } // login_configuration.permission
}

import: "conf/import/login-server.conf"

 

Map-server.conf

Spoiler

//================= Hercules Configuration ================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2014-2018  Hercules Dev Team
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Map Server Configuration File
//=========================================================================

map_configuration: {
    @include "conf/global/console.conf"
    @include "conf/global/sql_connection.conf"

    // map_list and map_removed
    @include "conf/map/maps.conf"

    // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
    help_txt: "conf/map/help.txt"
    charhelp_txt: "conf/map/charhelp.txt"

    // Enable the @guildspy and @partyspy at commands?
    // Note that enabling them decreases packet sending performance.
    enable_spy: false

    // Read map data from GATs and RSWs in GRF files or a data directory
    // as referenced by grf-files.txt rather than from the mapcache?
    use_grf: false

    // When employing more than one language (see db/translations.conf),
    // this setting is used as a fallback
    default_language: "English"

    // Information related to inter-server behavior
    inter: {
        // Interserver communication passwords, set in the login server database
        userid: "admin"
        passwd: "admin"

        // Character Server IP
        // The map server connects to the character server using this IP address.
        // NOTE: This is useful when you are running behind a firewall or are on
        // a machine with multiple interfaces.
        char_ip: LAN IP

        // The map server listens on the interface with this IP address.
        // NOTE: This allows you to run multiple servers on multiple interfaces
        // while using the same ports for each server.
        //bind_ip: "127.0.0.1"

        // Character Server Port
        char_port: 6121

        // Map Server IP
        // The IP address which clients will use to connect.
        // Set this to what your server's public IP address is.
        map_ip: WAN IP

        // Map Server Port
        map_port: 5121
    }

    database: {
        // Where should all database data be read from?
        db_path: "db"

        // Database autosave time
        // All characters are saved on this time in seconds (example:
        // autosave of 60 secs with 60 characters online -> one char is
        // saved every second)
        autosave_time: 300

        // Min database save intervals (in ms)
        // Prevent saving characters faster than at this rate (prevents
        // char-server save-load getting too high as character-count
        // increases)
        minsave_time: 100

        // Apart from the autosave_time, players will also get saved
        // when involved in the following (add as needed):
        // 0x001: After every successful trade
        // 0x002: After every vending transaction
        // 0x004: After closing storage/guild storage.
        // 0x008: After hatching/returning to egg a pet.
        // 0x010: After successfully sending a mail with attachment
        // 0x020: After successfully submitting an item for auction
        // 0x040: After successfully get/delete/complete a quest
        // 0x080: After every buying store transaction
        // 0x100: After every bank transaction (deposit/withdraw)
        // NOTE: These settings decrease the chance of dupes/lost items
        // when there's a server crash at the expense of increasing the
        // map/char server lag. If your server rarely crashes, but
        // experiences interserver lag, you may want to set these off.
        save_settings: 0x1ff
    }
}

import: "conf/import/map-server.conf"

 

network.conf

Spoiler

// Network configuration file

/*
 * List here any LAN subnets this server is in.
 * Example:
 * - char- (or map-) server's IP in LAN is 192.168.0.10
 * - Public IP is 198.51.100.37
 * If the list contains "192.168.0.10:255.255.255.0", any clients connecting
 * from the same 192.168.0.0/24 network will be presented with the LAN IP
 * (192.168.0.10) in the server list, rather than the public IP (198.51.100.37).
 */
lan_subnets: (
    "127.0.0.1:255.0.0.0",
    //    "192.168.1.1:255.255.255.0",
)

/*
 * List here any IP ranges a char- or map-server can connect from.
 * A wildcard of "0.0.0.0:0.0.0.0" means that server connections are allowed
 * from ANY IP. (not recommended).
 */
allowed: (
    "0.0.0.0:0.0.0.0",
)

/*
 * List here any IP ranges a char- or map-server can connect from. These ranges
 * will also be excluded from the automatic ipban in casee of password failure.
 * Any entry present in this list is also automatically included in the
 * allowed IP list.
 * Note: This may be a security threat. Only edit this list if you know what
 * you are doing.
 */
trusted: (
    "127.0.0.1:255.0.0.0",
)

 

sclientinfo.xml

Spoiler

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
    <desc>Ragnarok Client Information</desc>
    <servicetype>korea</servicetype>
    <servertype>primary</servertype>
    <connection>
        <display>Test</display>
              <address>WAN IP</address>
              <port>6900</port>
              <version>55</version>
              <langtype>0</langtype>
        <registrationweb>https://rathena.org/board/</registrationweb>
        <loading>
            <image>loading00.jpg</image>
            <image>loading01.jpg</image>
            <image>loading02.jpg</image>
            <image>loading03.jpg</image>
            <image>loading04.jpg</image>
            <image>loading05.jpg</image>
            <image>loading06.jpg</image>
        </loading>
       </connection>
</clientinfo>

If you need more info, dont hesitate to ask.

Thanks in advance, peace folks.

Edited by Mangolicious

Share this post


Link to post
Share on other sites

12 answers to this question

  • 0

Multiple things to consider:

1) I think ragexe checks clientinfo instead of sclientinfo

2) show the map/login/char server console (any message in those when your friend tried to connect?)

Share this post


Link to post
Share on other sites
  • 0

Sup.

Coming from this thread:

Newer exes, use sclientinfo instead clientinfo, when I use localhost in my sclientinfo, I can log in without any problems, the problem comes when someone else tries to connect with my wan.

All the server runs without any errors but a warning about using 0.0.0.0 wildcard in subnets and when anybody tries to login, the server does not register their login.

When I edit network.conf using my wan, I cant login even with localhost, when I leave localhost (127.0.0.1) as default subnet, I can log in again, when I use VLAN, and I register my VLAN IP with network.conf, I can log in, but when my friends try to connect, their exe crashes after they log into the character selection screen, and the character server registers their log in.

Thats why I suspect, this could be an issue related to subnets in network.conf.

Share this post


Link to post
Share on other sites
  • 0

If your friend exe crashes, that means it's client problem. They might be missing some texture or sprite.

That's why I suggested to show screenshots of login,Char and map-server. But as you have mentioned client is crashing, show screenshot of crash message too.

It's not problem of network.conf, it should always be LAN IP (it's related to from where can map,char and login server to each other)

Share this post


Link to post
Share on other sites
  • 0

Extended info.

When I use my WAN ip, my friends get:

Servers when I use my WAN ip and my friends try to connect:

When I use localhost in the client, I can login with no problems:

Servers when I login using localhost in the client:

Patches used in 20180704aRagexe:

Spoiler

9 Disable 1rag1 type parameters (Recommended)
13 Disable Ragexe Filename Check (Recommended)
23 Enable /who command (Recommended)
24 Fix Camera Angles (Recommended)
33 Always Call SelectKoreaClientInfo() (Recommended)
34 Enable /showname (Recommended)
36 Read msgstringtable.txt (Recommended)
38 Remove Gravity Ads (Recommended)
39 Remove Gravity Logo (Recommended)
40 Restore Login Window (Recommended)
41 Disable Nagle Algorithm (Recommended)
44 Translate Client (Recommended)
46 Use Normal Guild Brackets (Recommended)
48 Use Plain Text Descriptions (Recommended)
49 Enable Multiple GRFs (Recommended)
53 Use Ascii on All LangTypes (Recommended)
64 @ Bug Fix (Recommended)
65 Load Custom lua file instead of iteminfo*.lub (Recommended)
73 Remove Hourly Announce (Recommended)
84 Remove Serial Display (Recommended)
90 Enable DNS Support (Recommended)
97 Cancel to Login Window (Recommended)
213 Disable Help Message on Login (Recommended)

 

 

Share this post


Link to post
Share on other sites
  • 0

For ragexe clients after 2018-03-14 need enable patch "Disable Cheat Defender Game Guard"

and also put cdclient.dll from nemo into client directory.

 

Share this post


Link to post
Share on other sites
  • 0

Posted (edited)

8 minutes ago, 4144 said:

For ragexe clients after 2018-03-14 need enable patch "Disable Cheat Defender Game Guard"

and also put cdclient.dll from nemo into client directory.

Little correction, its not regular ragexe, its a ragexeRE one.

Edited by Mangolicious

Share this post


Link to post
Share on other sites
  • 0

ah then this patch dont need

Share this post


Link to post
Share on other sites
  • 0

I added the empty cdclient dll to my client and it keeps displaying the same message, its weird, like the client not receiving any signal from the server.

I have mounted several eathena servers back in late 2000´s and early 2010´s and this is the first time I encounter this kind of issues, really weird.

Share this post


Link to post
Share on other sites
  • 0

More info:

This is when I use a VLAN to mount the server:

map-server.conf

Spoiler

//================= Hercules Configuration ================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2014-2018  Hercules Dev Team
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Map Server Configuration File
//=========================================================================

map_configuration: {
    @include "conf/global/console.conf"
    @include "conf/global/sql_connection.conf"

    // map_list and map_removed
    @include "conf/map/maps.conf"

    // When @help or @h is typed when you are a gm, this is displayed for helping new gms understand gm commands.
    help_txt: "conf/map/help.txt"
    charhelp_txt: "conf/map/charhelp.txt"

    // Enable the @guildspy and @partyspy at commands?
    // Note that enabling them decreases packet sending performance.
    enable_spy: false

    // Read map data from GATs and RSWs in GRF files or a data directory
    // as referenced by grf-files.txt rather than from the mapcache?
    use_grf: false

    // When employing more than one language (see db/translations.conf),
    // this setting is used as a fallback
    default_language: "English"

    // Information related to inter-server behavior
    inter: {
        // Interserver communication passwords, set in the login server database
        userid: "admin"
        passwd: "admin"

        // Character Server IP
        // The map server connects to the character server using this IP address.
        // NOTE: This is useful when you are running behind a firewall or are on
        // a machine with multiple interfaces.
        char_ip: VLAN IP

        // The map server listens on the interface with this IP address.
        // NOTE: This allows you to run multiple servers on multiple interfaces
        // while using the same ports for each server.
        //bind_ip: "127.0.0.1"

        // Character Server Port
        char_port: 6121

        // Map Server IP
        // The IP address which clients will use to connect.
        // Set this to what your server's public IP address is.
        map_ip: VLAN IP

        // Map Server Port
        map_port: 5121
    }

    database: {
        // Where should all database data be read from?
        db_path: "db"

        // Database autosave time
        // All characters are saved on this time in seconds (example:
        // autosave of 60 secs with 60 characters online -> one char is
        // saved every second)
        autosave_time: 300

        // Min database save intervals (in ms)
        // Prevent saving characters faster than at this rate (prevents
        // char-server save-load getting too high as character-count
        // increases)
        minsave_time: 100

        // Apart from the autosave_time, players will also get saved
        // when involved in the following (add as needed):
        // 0x001: After every successful trade
        // 0x002: After every vending transaction
        // 0x004: After closing storage/guild storage.
        // 0x008: After hatching/returning to egg a pet.
        // 0x010: After successfully sending a mail with attachment
        // 0x020: After successfully submitting an item for auction
        // 0x040: After successfully get/delete/complete a quest
        // 0x080: After every buying store transaction
        // 0x100: After every bank transaction (deposit/withdraw)
        // NOTE: These settings decrease the chance of dupes/lost items
        // when there's a server crash at the expense of increasing the
        // map/char server lag. If your server rarely crashes, but
        // experiences interserver lag, you may want to set these off.
        save_settings: 0x1ff
    }
}

import: "conf/import/map-server.conf"

 

char-server.conf

Spoiler

//================= Hercules Configuration ================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2014-2018  Hercules Dev Team
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Character Server configuration file.
//=========================================================================

char_configuration: {
    @include "conf/global/console.conf"
    @include "conf/global/sql_connection.conf"

    // Server name, use alternative character such as ASCII 160 for spaces.
    // NOTE: Do not use spaces or any of these characters which are not allowed in
    //       Windows filenames \/:*?"<>|
    //       ... or else guild emblems won't work client-side!
    server_name: "KwetiRO"

    // Wisp name for server: used to send wisp from server to players (between 4 to 23 characters)
    wisp_server_name: "KwetiRO"

    // Guild earned exp modifier.
    // Adjusts taxed exp before adding it to the guild's exp. For example,
    // if set to 200, the guild receives double the player's taxed exp.
    guild_exp_rate: 100

    // Information related to inter-server behavior
    inter: {
        // Server Communication username and password.
        userid: "admin"
        passwd: "admin"
        
        // Login Server IP
        // The character server connects to the login server using this IP address.
        // NOTE: This is useful when you are running behind a firewall or are on
        // a machine with multiple interfaces.
        login_ip: VLAN IP

        // The character server listens on the interface with this IP address.
        // NOTE: This allows you to run multiple servers on multiple interfaces
        // while using the same ports for each server.
        //bind_ip: "127.0.0.1"

        // Login Server Port
        login_port: 6900

        // Character Server IP
        // The IP address which clients will use to connect.
        // Set this to what your server's public IP address is.
        char_ip: VLAN IP

        // Character Server Port
        char_port: 6121
    }

    // Connection permission
    permission: {
        // Enable or disable creation of new characters.
        enable_char_creation: true

        // Display (New) in the server list.
        display_new: false

        // Maximum users able to connect to the server.
        // Set to 0 to disable users to log-in. (-1 means unlimited)
        max_connect_user: -1

        // Group ID that is allowed to bypass the server limit of users.
        // Default: -1 = nobody (there are no groups with ID < 0)
        // See: conf/groups.conf
        gm_allow_group: -1

        // Type of server.
        // No functional side effects at the moment.
        // Displayed next to the server name in the client.
        // 0=normal, 1=maintenance, 2=over 18, 3=paying, 4=F2P
        server_type: 0

        // Minimum Group ID to join char server when it is on char_server_type 1 (maintenance)
        maintenance_min_group_id: 99
    }

    // Player-related configuration
    player: {
        new: {
            // Start point (Renewal)
            start_point_re: {
                map: "iz_int"
                x: 18
                y: 27
            }
            // Start point (Pre-Renewal)
            //start_point_pre: {
            //    map: "new_1-1"
            //    x: 53
            //    y: 111
            //}

            // Starting items for new characters
            //{
            //    id: Item id
            //    amount: Item amount
            //    loc: Item position, same as in item_db if you want the item to be equipped, otherwise 0 (optional)
            //    stackable: Is stackable? (not stackable item types: weapon, armor, egg, pet armor)
            //},
            start_items: (
            {
                id: 1201 // Knife
                amount: 1
                loc: 2
                stackable: false
            },
            {
                id: 2301 // Cotton_Shirt
                amount: 1
                loc: 16
                stackable: false
            },
            )

            // Starting zeny
            zeny: 0
        }

        // Character name configuration
        name: {
            // Name used for unknown characters
            unknown_char_name: "Unknown"

            // Allow or not identical name for characters but with a different case (upper/lower):
            // example: Test-test-TEST-TesT; Value: 0 not allowed (default), 1 allowed
            name_ignoring_case: false

            // Manage possible letters/symbol in the name of charater. Control character (0x00-0x1f) are never accepted. Possible values are:
            // NOTE: Applies to character, party and guild names.
            // 0: no restriction (default)
            // 1: only letters/symbols in 'name_letters' option.
            // 2: Letters/symbols in 'name_letters' option are forbidden. All others are possibles.
            name_option: 1

            // Set the letters/symbols that you want use with the 'char_name_option' option.
            // Note: Don't add spaces unless you mean to add 'space' to the list.
            name_letters: "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
        }

        deletion: {
            // Restrict character deletion by BaseLevel
            // 0: no restriction (players can delete characters of any level)
            // -X: you can't delete chars with BaseLevel <= X
            // Y: you can't delete chars with BaseLevel >= Y
            // e.g. char_del_level: 80 (players can't delete characters with 80+ BaseLevel)
            level: 0

            // Amount of time in seconds by which the character deletion is delayed.
            // Default: 86400 (24 hours)
            // NOTE: Requires client 2010-08-03aragexeRE or newer.
            delay: 86400

            // Block deletion if character is inside a guild or a party? (BOOL)
            // default: false    official: true
            // !!This check is imposed by Aegis to avoid dead entries in databases and _is_not_needed_ as we clear data properly!!
            use_aegis_delete: false
        }

        // Size for the fame-lists
        fame: {
            alchemist: 10
            blacksmith: 10
            taekwon: 10
        }
    }

    database: {
        // How often should server save all guild related information? (character save interval is defined on the map config)
        // (in seconds)
        autosave_time: 60

        // What folder the DB files are in (abra_db.txt, etc.)
        db_path: "db"

        // To log the character server?
        log_char: true
    }

    //==================================================================
    // Pincode system
    //==================================================================
    pincode: {
        // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse
        // NOTE: Requires client 2011-03-09aragexeRE or newer.
        // 0: disabled
        // 1: enabled
        enabled: false

        // Request Pincode only on login or on everytime char select is accessed?
        // 0: only on login (default)
        // 1: everytime the char select window is accessed
        request: 0

        // How often does a user have to change his pincode?
        // Default: 0
        // 0: never
        // X: every X minutes
        change_time: 0

        // How often can a user enter the wrong password?
        // Default: 3
        // Maximum allowed by clientside: 3
        max_tries: 3

        // Whether or not to refuse pincodes that are blacklisted
        // Default: true
        check_blacklisted: true

        // Blacklisted pincodes
        blacklist: [
            "0000",
            "1111",
            "2222",
            "3333",
            "4444",
            "5555",
            "6666",
            "7777",
            "8888",
            "9999",
            "0123",
            "1234",
            "2345",
            "3456",
            "4567",
            "5678",
            "6789",
            "7890"
        ]
    }
}

import: "conf/import/char-server.conf"

 

sclientinfo.xml

Spoiler

<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
    <desc>Ragnarok Client Information</desc>
    <servicetype>korea</servicetype>
    <servertype>primary</servertype>
    <connection>
        <display>KwetiRO</display>
              <address>VLAN IP</address>
              <port>6900</port>
              <version>55</version>
              <langtype>0</langtype>
        <registrationweb>https://rathena.org/board/</registrationweb>
        <loading>
            <image>loading00.jpg</image>
            <image>loading01.jpg</image>
            <image>loading02.jpg</image>
            <image>loading03.jpg</image>
            <image>loading04.jpg</image>
            <image>loading05.jpg</image>
            <image>loading06.jpg</image>
        </loading>
       </connection>
</clientinfo>

network.conf

Spoiler

// Network configuration file

/*
 * List here any LAN subnets this server is in.
 * Example:
 * - char- (or map-) server's IP in LAN is 192.168.0.10
 * - Public IP is 198.51.100.37
 * If the list contains "192.168.0.10:255.255.255.0", any clients connecting
 * from the same 192.168.0.0/24 network will be presented with the LAN IP
 * (192.168.0.10) in the server list, rather than the public IP (198.51.100.37).
 */
lan_subnets: (
    "127.0.0.1:255.0.0.0",
    //    "192.168.1.1:255.255.255.0",
)

/*
 * List here any IP ranges a char- or map-server can connect from.
 * A wildcard of "0.0.0.0:0.0.0.0" means that server connections are allowed
 * from ANY IP. (not recommended).
 */
allowed: (
    "192.168.191.147:255.255.255.0",
    //    "0.0.0.0:0.0.0.0",
)

/*
 * List here any IP ranges a char- or map-server can connect from. These ranges
 * will also be excluded from the automatic ipban in casee of password failure.
 * Any entry present in this list is also automatically included in the
 * allowed IP list.
 * Note: This may be a security threat. Only edit this list if you know what
 * you are doing.
 */
trusted: (
    "127.0.0.1:255.0.0.0",
    "172.30.223.130:255.255.0.0",
)

 

I can login with no problem when I login using VLAN IP in the client.

Servers when I login using VLAN IP in the client.

My friends get this after they login and when entering the character selecction screen while they use VLAN IP in the client.

Servers when my friend connects to the server using VLAN IP in the client.

As you can see, using VLAN, my friend can connect to the server, but immediately, she crashes after connecting, even if she is using the same client and kro like me. In the server logs, the server accepted her connection(Minerva), while when I use WAN to connect, the server and the client dont have any kind of interaction.

 

Share this post


Link to post
Share on other sites
  • 0

look like you posted two same screens of servers two times. But in this screens missing connection to map server from client.

this probably mean map server listen on wrong ip or some configuration address issue

Share this post


Link to post
Share on other sites
  • 0

Posted (edited)

57 minutes ago, 4144 said:

look like you posted two same screens of servers two times. But in this screens missing connection to map server from client.

this probably mean map server listen on wrong ip or some configuration address issue

The server screen is the same, because it shows both cases well, you can see how the server allows me to enter with no problems, also, it shows you how the server allows her to enter with no error, but once she logs, her game crashes, as you can see in the screenshot, she gets auth by the server and then her client closes.

Edited by Mangolicious

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, Mangolicious said:

The server screen is the same, because it shows both cases well, you can see how the server allows me to enter with no problems, also, it shows you how the server allows her to enter with no error, but once she logs, her game crashes, as you can see in the screenshot, she gets auth by the server and then her client closes.

You should focus on client crashing. Try another client with only recommended patches? Or check if data/rdata are fully updated?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now