Swofty-Developments / HypixelSkyBlock

Minecraft 1.8-1.21 (no Spigot) recreation of Hypixel SkyBlock with a goal of a properly abstracted and scalable codebase.
https://discord.gg/paper
GNU Affero General Public License v3.0
105 stars 41 forks source link

[BUG] Linux Debian 12 problem with join to the server #50

Closed TRLKO closed 8 months ago

TRLKO commented 8 months ago

Describe the bug After successful join to server hosted locally on windows PC I want to move all to linux VPS. All firewalls are disabled and I cannot join. Same configuration, connection with MongoDB is establish and Redis as well.

Screenshots

Strange thing is ??? instead of numer of players

Zrzut ekranu 2024-01-17 o 12 31 41

Island server on port 20000 is reachable

Zrzut ekranu 2024-01-17 o 12 35 39

Additional context VELOCITY CONSOLE LOGS

root@violet-mosquito-74077:~/proxy# java -jar velocity-proxy-3.3.0-SNAPSHOT-all.jar 
[06:17:12 INFO]: Booting up Velocity 3.3.0-SNAPSHOT (git-408b420a)...
[06:17:12 INFO]: Loading localizations...
[06:17:12 INFO]: Connections will use epoll channels, libdeflate (Linux x86_64) compression, OpenSSL 3.0.x (Linux x86_64) ciphers
[06:17:12 WARN]: You don't have any servers configured.
[06:17:12 INFO]: Loading plugins...
[06:17:12 INFO]: Loaded plugin skyblock 1.0 by Swofty
[06:17:12 INFO]: Loaded 1 plugins
[06:17:12 INFO] [org.mongodb.driver.cluster]: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
[06:17:13 INFO] [org.mongodb.driver.cluster]: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
[06:17:13 INFO] [org.mongodb.driver.cluster]: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
[06:17:13 INFO] [org.mongodb.driver.connection]: Opened connection [connectionId{localValue:1, serverValue:131}] to localhost:27017
[06:17:13 INFO] [org.mongodb.driver.connection]: Opened connection [connectionId{localValue:2, serverValue:132}] to localhost:27017
[06:17:13 INFO] [org.mongodb.driver.connection]: Opened connection [connectionId{localValue:3, serverValue:133}] to localhost:27017
[06:17:13 INFO] [org.mongodb.driver.cluster]: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[7, 0, 5]}, minWireVersion=0, maxWireVersion=21, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=1072398}
[06:17:13 INFO] [org.mongodb.driver.cluster]: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[7, 0, 5]}, minWireVersion=0, maxWireVersion=21, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=5965754}
[06:17:13 INFO] [org.mongodb.driver.cluster]: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[7, 0, 5]}, minWireVersion=0, maxWireVersion=21, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=1546751}
[06:17:13 INFO] [org.reflections.Reflections]: Reflections took 57 ms to scan 1 urls, producing 2 keys and 8 values
[06:17:13 INFO]: Listening on /[0:0:0:0:0:0:0:0%0]:25565
[06:17:13 INFO]: Done (1.91s)!
[06:17:16 INFO]: ISLAND: [mini1F (7e4c25b6-09b0-4c47-8373-1c6eb67adc03)]
[06:17:16 INFO]: [connected player] XYZ (/85.**.**.*37:58880) has connected
[06:17:16 INFO] [org.mongodb.driver.connection]: Opened connection [connectionId{localValue:4, serverValue:144}] to localhost:27017
[06:17:16 ERROR]: [connected player] XYZ (/85.**.**.*37:58880): unable to connect to server 7e4c25b6-09b0-4c47-8373-1c6eb67adc03
io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: 0.0.0.0/0.0.0.0:20000
Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused
        at io.netty.channel.unix.Errors.newConnectException0(Errors.java:166) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:131) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.unix.Socket.finishConnect(Socket.java:359) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:710) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:687) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:567) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity-proxy-3.3.0-SNAPSHOT-all.jar:3.3.0-SNAPSHOT (git-408b420a)]
        at java.lang.Thread.run(Thread.java:840) [?:?]
[06:17:17 INFO]: [connected player] XYZ (/85.**.**.*37:58880) has disconnected: §cUnable to connect you to 7e4c25b6-09b0-4c47-8373-1c6eb67adc03. Please try again later.
[06:17:17 INFO]: ISLAND: [mini1F (7e4c25b6-09b0-4c47-8373-1c6eb67adc03)]

ISLAND CONSOLE LOG

[main] net.swofty.loader.SkyBlock.lambda$main$1() INFO: Found TypeLoader: ISLAND
[main] net.swofty.type.island.TypeIslandLoader.onInitialize() INFO: TypeIslandLoader initialized!
[main] net.swofty.loader.SkyBlock.main() INFO: Initializing proxy support...
[Thread-2] net.minestom.server.ServerProcessImpl.start() INFO: Starting SkyBlock server.
[Thread-2] net.minestom.server.ServerProcessImpl.start() INFO: SkyBlock server started successfully.
[Thread-2] net.swofty.loader.SkyBlock.lambda$main$2() INFO: Started server on port 20000 in 2214ms
[Thread-2] net.swofty.loader.SkyBlock.lambda$main$2() INFO: Server Type: ISLAND
[Thread-2] net.swofty.loader.SkyBlock.lambda$main$2() INFO: Internal ID: 7e4c25b6-09b0-4c47-8373-1c6eb67adc03

CONFIGURATION/RESOURCES.JSON

{
  "mongodb": "mongodb://localhost",
  "cracked_domain": "4*.***.***.*51",
  "redis-uri": "redis://localhost:6379",
  "velocity-secret": "XYZXYZ",
  "limbo-port": "65535"
}

LIMBO CONSOLE LOG

root@violet-mosquito-74077:~/nanolimbo# java -jar NanoLimbo-1.7-all.jar 
[06:09:18] [INFO]: Starting server...
[06:09:19] [INFO]: Server started on localhost/127.0.0.1:65535

VELOCITY.TOML

# Config version. Do not change this
config-version = "2.6"

# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25565"

# What should be the MOTD? This gets displayed when the player adds your server to
# their server list. Only MiniMessage format is accepted.
motd = "<#09add3>A Velocity Server"

# What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.)
show-max-players = 500

# Should we authenticate players with Mojang? By default, this is on.
online-mode = true

# Should the proxy enforce the new public key security standard? By default, this is on.
force-key-authentication = true

# If client's ISP/AS sent from this proxy is different from the one from Mojang's
# authentication server, the player is kicked. This disallows some VPN and proxy
# connections but is a weak form of protection.
prevent-client-proxy-connections = false

# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none":        No forwarding will be done. All players will appear to be connecting
#                  from the proxy and will have offline-mode UUIDs.
# - "legacy":      Forward player IPs and UUIDs in a BungeeCord-compatible format. Use this
#                  if you run servers using Minecraft 1.12 or lower.
# - "bungeeguard": Forward player IPs and UUIDs in a format supported by the BungeeGuard
#                  plugin. Use this if you run servers using Minecraft 1.12 or lower, and are
#                  unable to implement network level firewalling (on a shared host).
# - "modern":      Forward player IPs and UUIDs as part of the login process using
#                  Velocity's native forwarding. Only applicable for Minecraft 1.13 or higher.
player-info-forwarding-mode = "MODERN"

# If you are using modern or BungeeGuard IP forwarding, configure a file that contains a unique secret here.
# The file is expected to be UTF-8 encoded and not empty.
forwarding-secret-file = "forwarding.secret"

# Announce whether or not your server supports Forge. If you run a modded server, we
# suggest turning this on.
# 
# If your network runs one modpack consistently, consider using ping-passthrough = "mods"
# instead for a nicer display in the server list.
announce-forge = false

# If enabled (default is false) and the proxy is in online mode, Velocity will kick
# any existing player who is online if a duplicate connection attempt is made.
kick-existing-players = false

# Should Velocity pass server list ping requests to a backend server?
# Available options:
# - "disabled":    No pass-through will be done. The velocity.toml and server-icon.png
#                  will determine the initial server list ping response.
# - "mods":        Passes only the mod list from your backend server into the response.
#                  The first server in your try list (or forced host) with a mod list will be
#                  used. If no backend servers can be contacted, Velocity won't display any
#                  mod information.
# - "description": Uses the description and mod list from the backend server. The first
#                  server in the try (or forced host) list that responds is used for the
#                  description and mod list.
# - "all":         Uses the backend server's response as the proxy response. The Velocity
#                  configuration is used if no servers could be contacted.
ping-passthrough = "ALL"

# If not enabled (default is true) player IP addresses will be replaced by <ip address withheld> in logs
enable-player-address-logging = true

[servers]
# Configure your servers here. Each key represents the server's name, and the value
# represents the IP address of the server to connect to.

# In what order we should try servers when a player logs in or is kicked from a server.
try = []

[forced-hosts]
# Configure your forced hosts here.

[advanced]
# How large a Minecraft packet has to be before we compress it. Setting this to zero will
# compress all packets, and setting it to -1 will disable compression entirely.
compression-threshold = 256

# How much compression should be done (from 0-9). The default is -1, which uses the
# default level of 6.
compression-level = -1

# How fast (in milliseconds) are clients allowed to connect after the last connection? By
# default, this is three seconds. Disable this by setting this to 0.
login-ratelimit = 3000

# Specify a custom timeout for connection timeouts here. The default is five seconds.
connection-timeout = 5000

# Specify a read timeout for connections here. The default is 30 seconds.
read-timeout = 30000

# Enables compatibility with HAProxy's PROXY protocol. If you don't know what this is for, then
# don't enable it.
haproxy-protocol = false

# Enables TCP fast open support on the proxy. Requires the proxy to run on Linux.
tcp-fast-open = false

# Enables BungeeCord plugin messaging channel support on Velocity.
bungee-plugin-message-channel = true

# Shows ping requests to the proxy from clients.
show-ping-requests = false

# By default, Velocity will attempt to gracefully handle situations where the user unexpectedly
# loses connection to the server without an explicit disconnect message by attempting to fall the
# user back, except in the case of read timeouts. BungeeCord will disconnect the user instead. You
# can disable this setting to use the BungeeCord behavior.
failover-on-unexpected-server-disconnect = true

# Declares the proxy commands to 1.13+ clients.
announce-proxy-commands = true

# Enables the logging of commands
log-command-executions = false

# Enables logging of player connections when connecting to the proxy, switching servers
# and disconnecting from the proxy.
log-player-connections = true

[query]
# Whether to enable responding to GameSpy 4 query responses or not.
enabled = false

# If query is enabled, on what port should the query protocol listen on?
port = 25577

# This is the map name that is reported to the query services.
map = "Velocity"

# Whether plugins should be shown in query response by default or not
show-plugins = false
Swofty-Developments commented 8 months ago

The only thing I can think of is if maybe 0.0.0.0:20000 isn’t liked and instead the full server IP should be there instead of the 0.0.0.0 shorthand. I’ll push a new key into the resources.json to allow you to change this.

Swofty-Developments commented 8 months ago

I've pushed the update aswell as 1.20.4 - You can now update the hostname here, in which you would put your machines remote address. This should be updated in both your servers resources.json and your proxy servers resources.json.