Page 1 of 1

Running local server, but people cannot connect?

PostPosted: 20 Mar 2020, 18:18
by pulli23
I try to run a local server to evade the pressure of laggy public servers (with action times taking several seconds).

However when I try to run it for "public" I get the following error:


Code: Select all
FATAL 2020-03-20 19:04:32,623 Failed to start server - MYPUBLICIP:17171/?serializationtype=jboss&maxPoolSize=300      =>[main] Main.main
java.io.IOException: SocketServerInvoker[MYPUBLICIP:17171] error creating ServerSocket[MYPUBLICIP:17171]: Cannot assign requested address: JVM_Bind
        at org.jboss.remoting.transport.socket.SocketServerInvoker.createServerSockets(SocketServerInvoker.java:375)
        at org.jboss.remoting.transport.socket.SocketServerInvoker.start(SocketServerInvoker.java:251)
        at org.jboss.remoting.transport.bisocket.BisocketServerInvoker.start(BisocketServerInvoker.java:193)
        at org.jboss.remoting.transport.Connector.start(Connector.java:376)
        at org.jboss.remoting.transporter.TransporterServer.start(TransporterServer.java:198)
        at mage.server.Main.main(Main.java:212)
This happened after I changed the line

Code: Select all
serverAddress="0.0.0.0"
to my public address

Re: Running local server, but people cannot connect?

PostPosted: 27 Mar 2020, 08:01
by pulli23
Anyone? Is this a common problem?

Re: Running local server, but people cannot connect?

PostPosted: 28 Mar 2020, 06:43
by Treebeardz
You need to change your "Hosts" file in windows. If you're not sure what this is or how to accomplish it there are plenty of guides all over the net. Also if you haven't already you may need to set an exception in whatever software firewall you are using and in the Windows firewall. Last you will need to forward the port you are hosting the server on in your router settings. This is going to be a different process for each make and model of modem/router. If you're using the default ports 17171 and 17172 are the ports you want to forward to your local IP address the server is running on, it might also be a good idea to set a static local IP address. Last I would recommended using a ddns service like "no-ip".

Here is an example of what will be needed in your host file. You will need to know what you local IP is. AKA EXAMPLE "192.168.1.12" or "10.0.0.14". You will also need the link from the ddns service. AKA EXAMPLE "myxmage.ddns.net".

The Entry should look something like this
Code: Select all
# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
192.168.1.12            myxmage.ddns.net
Last you will need to edit the config file in "XMage\xmage\mage-server\config". You can do this with any text editor. I like notepad++

Code: Select all
    <server serverAddress="myxmage.ddns.net"
            serverName="xmage"
            port="17171"
            secondaryBindPort="17172"
            backlogSize="200"
            numAcceptThreads="2"
            maxPoolSize="300"
            leasePeriod="5000"
            socketWriteTimeout="10000"
            maxGameThreads="10"
            maxSecondsIdle="600"
            minUserNameLength="3"
            maxUserNameLength="14"
            invalidUserNamePattern="[^a-z0-9_]"
            minPasswordLength="8"
            maxPasswordLength="100"
            maxAiOpponents="15"
            saveGameActivated="false"
            authenticationActivated="false"
            googleAccount=""
            mailgunApiKey=""
            mailgunDomain=""
            mailSmtpHost=""
            mailSmtpPort=""
            mailUser=""
            mailPassword=""
            mailFromAddress=""
    />

Re: Running local server, but people cannot connect?

PostPosted: 19 Apr 2020, 12:48
by pulli23
That's the only answer I do not wish to do: that would mean I cannot run this on a shared server where I do not have the rights for the host file. - Which is my goal (running on linux docker container from my office).

Changing host file means all other servers are affected, so that's not an option. It would also mean containerizing of a server is impossible: dockers have an IP that might change when network layout changes (which often happens due to virtual servers moving to other physical spaces automatically nightly in our system).