MUnique / OpenMU

This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online".
https://munique.net
MIT License
731 stars 317 forks source link

Failed to connect to the public Game Server #127

Closed najoast closed 5 years ago

najoast commented 5 years ago

Hi @sven-n, After the server is started on the public network, the client connects to the public IP, ConnectServer is connected normally, and the IP sent to the client is also the public IP, but the client connection is 127.0.0.1:55901. Is the client writing the address to the main.exe?

najoast commented 5 years ago
[INFO ] 2019-07-02 22:25:42,500 [MUnique.OpenMU.Startup.Program] [(null)] - Start initializing sub-components
[INFO ] 2019-07-02 22:25:43,109 [MUnique.OpenMU.Startup.Program] [(null)] - Start initializing game servers
[INFO ] 2019-07-02 22:25:43,237 [MUnique.OpenMU.Startup.Program] [0] - Game Server 0 - [Server 0] initialized
[INFO ] 2019-07-02 22:25:43,299 [MUnique.OpenMU.Startup.Program] [1] - Game Server 1 - [Server 1] initialized
[INFO ] 2019-07-02 22:25:43,363 [MUnique.OpenMU.Startup.Program] [2] - Game Server 2 - [Server 2] initialized
[INFO ] 2019-07-02 22:25:43,364 [MUnique.OpenMU.Startup.Program] [(null)] - All game servers initialized, elapsed time: 00:00:00.2500684
[INFO ] 2019-07-02 22:25:43,365 [MUnique.OpenMU.Startup.Program] [(null)] - Start initializing admin panel
[INFO ] 2019-07-02 22:25:44,706 [MUnique.OpenMU.Startup.Program] [(null)] - Admin panel initialized
[INFO ] 2019-07-02 22:25:44,710 [MUnique.OpenMU.ChatServer.ChatServer] [(null)] - Begin starting
[INFO ] 2019-07-02 22:25:44,723 [MUnique.OpenMU.ChatServer.ChatServer] [(null)] - Finished starting
[INFO ] 2019-07-02 22:25:44,727 [MUnique.OpenMU.GameServer.GameServer] [0] - Starting Server Listener, port 55901
[INFO ] 2019-07-02 22:25:45,895 [MUnique.OpenMU.ConnectServer.ConnectServer] [0] - GameServer 0 - [Server 0] is registering with endpoint *.221.26.*:55901
[INFO ] 2019-07-02 22:25:45,905 [MUnique.OpenMU.ConnectServer.ConnectServer] [0] - GameServer 0 - [Server 0] has registered with endpoint *.221.26.*:55901
[INFO ] 2019-07-02 22:25:45,905 [MUnique.OpenMU.GameServer.GameServer] [0] - Server listener started.
[INFO ] 2019-07-02 22:25:45,905 [MUnique.OpenMU.GameServer.GameServer] [1] - Starting Server Listener, port 55902
[INFO ] 2019-07-02 22:25:45,906 [MUnique.OpenMU.ConnectServer.ConnectServer] [1] - GameServer 1 - [Server 1] is registering with endpoint *.221.26.*:55902
[INFO ] 2019-07-02 22:25:45,907 [MUnique.OpenMU.ConnectServer.ConnectServer] [1] - GameServer 1 - [Server 1] has registered with endpoint *.221.26.*:55902
[INFO ] 2019-07-02 22:25:45,907 [MUnique.OpenMU.GameServer.GameServer] [1] - Server listener started.
[INFO ] 2019-07-02 22:25:45,907 [MUnique.OpenMU.GameServer.GameServer] [2] - Starting Server Listener, port 55903
[INFO ] 2019-07-02 22:25:45,907 [MUnique.OpenMU.ConnectServer.ConnectServer] [2] - GameServer 2 - [Server 2] is registering with endpoint *.221.26.*:55903
[INFO ] 2019-07-02 22:25:45,907 [MUnique.OpenMU.ConnectServer.ConnectServer] [2] - GameServer 2 - [Server 2] has registered with endpoint *.221.26.*:55903
[INFO ] 2019-07-02 22:25:45,907 [MUnique.OpenMU.GameServer.GameServer] [2] - Server listener started.
[INFO ] 2019-07-02 22:25:45,908 [MUnique.OpenMU.ConnectServer.ConnectServer] [(null)] - Begin starting
[INFO ] 2019-07-02 22:25:45,912 [MUnique.OpenMU.ConnectServer.ClientListener] [(null)] - Client Listener started, Port 44405
[INFO ] 2019-07-02 22:25:45,912 [MUnique.OpenMU.ConnectServer.ConnectServer] [(null)] - Finished starting
sven-n commented 5 years ago

👋 Hi

The client needs to use another IP than 127.0.0.1 to be able to connect to the server. If the server runs on the same machine as the client, try 127.127.127.127. You can either change this IP in the client launcher settings or in the main.exe itself using a hex editor.

najoast commented 5 years ago

I already know that connect to the local server using 127.127.127.127. Now I have to connect to the public network server. I set the public IP address to ClientLauncher. I can connect to ConnectServer, but it failed when I connect to GameServer. I found it by using Wireshark. ServerInfoRequestHandler responded to the client is the public network IP:PORT, but the client is connected to the local GameServer.

sven-n commented 5 years ago

Okay, then maybe a firewall/router is blocking the connection through the public IP

najoast commented 5 years ago

Client -> ConnectServer -> ServerInfoRequestHandler -> Send GameServer's IP/PORT(154.221.xx.xx:55901) to Client -> BUT the client connect to GameServer use 127.0.0.1:55901 instead 154.221.xx.xx:55901

not firewall's issue, don't image me like a fool =.=

sven-n commented 5 years ago

I just wanted to help. It’s strange that the connect server reports the correct IP and the client tries to connect to 127.0.0.1 :-/ I never had such an issue yet.

sven-n commented 5 years ago

I think this was the same issue which we encountered in #126. https://github.com/MUnique/OpenMU/commit/d9e4e669f3b4a2be40ab06c69448655060b09d22 fixed your issue, too :)

dukuo commented 5 years ago

I can't connect to the GameServer from 127.127.127.127, only to the Connect Server.. any ideas on what could be causing this ?

sven-n commented 5 years ago

Hard to tell without knowing your setup. By default, the connect server of OpenMU tries to determine your public ip and returns this when you click on a server. So, it could be possible that ports 55901-55903 are somehow blocked for this IP. If you run your server on the same machine as your client, you can try to add the -local parameter. I hope I could help :)

dukuo commented 5 years ago

oh you are right I didn't use the -local flag ! Whenever I try to run with docker-compose run -d munique -local the ports aren't exposed as opposed to docker-compose up -d --build, so I added a command: -local to the munique service at docker-compose.yml which got it up and running as expected, but the issue when connecting remains. I'm using a 1.04d client (googled season 6 episode 3 mu client and got 2 clients an none are working atm) and I built the launcher project from this repo. I'm looking for another client for now, maybe i'm not nailing down the correct version to log from. Thanks for the help so far @sven-n, i'm amazed at this project, specially for dockerizing it!

I remember as a child playing with SQL Servers and crappy account sites in XAMPP, this was at the beginning of my developer career! It brings so many good memories :-)

Update: I ran the command like this: docker-compose run -p 1234:1234 -p 44405:44405 -p 55901:55901 -p 55902:55902 -p 55903:55903 -p 55980:55980 -d munique -local docker-compose run -d --service-ports munique -local which binded the ports but still, it shows the 3 available servers, andwhenever you try to log into one it gets stuck for a while and then disconnects.

Update 2: I don't know if this is an issue, but in the Admin panel you can't really change the connection server type to Season 6 Episode 3 GMO Client from the Version Client 0.75 settings. Whenever you try to change it it says that it was edited successfully but the original option sticks.

dukuo commented 5 years ago

Here are some logs from the admin panel:

Timestamp Logger Message
2019-09-29T19:02:16.630Z MUnique.OpenMU.GameServer.GameServer Stopping listener on port 55903.
2019-09-29T19:02:16.631Z MUnique.OpenMU.GameServer.GameServer Stopped listener on port 55903.
2019-09-29T19:02:16.631Z MUnique.OpenMU.ConnectServer.ConnectServer GameServer 2 - [Server 2] is unregistering
2019-09-29T19:02:16.631Z MUnique.OpenMU.ConnectServer.ConnectServer GameServer 2 - [Server 2] has unregistered
2019-09-29T19:02:16.631Z MUnique.OpenMU.GameServer.GameServer Stopping listener on port 55923.
2019-09-29T19:02:16.631Z MUnique.OpenMU.GameServer.GameServer Stopped listener on port 55923.
2019-09-29T19:02:16.631Z MUnique.OpenMU.GameServer.GameServer Saving all open sessions...
2019-09-29T19:02:16.632Z MUnique.OpenMU.GameServer.GameServer Server shutted down.
2019-09-29T19:02:16.632Z MUnique.OpenMU.GameServer.GameServer Starting Server Listener, port 55903
2019-09-29T19:02:16.634Z MUnique.OpenMU.ConnectServer.ConnectServer GameServer 2 - [Server 2] is registering with endpoint 172.28.0.3:55903
2019-09-29T19:02:16.634Z MUnique.OpenMU.ConnectServer.ConnectServer GameServer 2 - [Server 2] has registered with endpoint 172.28.0.3:55903
2019-09-29T19:02:16.634Z MUnique.OpenMU.GameServer.GameServer Server listener started.
2019-09-29T19:02:16.634Z MUnique.OpenMU.GameServer.GameServer Starting Server Listener, port 55923
2019-09-29T19:02:16.636Z MUnique.OpenMU.ConnectServer.ConnectServer GameServer 2 - [Server 2] is registering with endpoint 172.28.0.3:55923
2019-09-29T19:02:16.637Z MUnique.OpenMU.ConnectServer.ConnectServer GameServer 2 - [Server 2] has registered with endpoint 172.28.0.3:55923
2019-09-29T19:02:16.637Z MUnique.OpenMU.GameServer.GameServer Server listener started.
2019-09-29T19:02:48.915Z MUnique.OpenMU.AdminPanel.Controllers.ServerController requested shutdown for server 65538
2019-09-29T19:02:48.915Z MUnique.OpenMU.ConnectServer.ConnectServer Begin stopping
2019-09-29T19:02:48.916Z MUnique.OpenMU.ConnectServer.ClientListener Client Listener stopped
2019-09-29T19:02:48.916Z MUnique.OpenMU.ConnectServer.ConnectServer Finished stopping