jammsen / docker-palworld-dedicated-server

Docker container to easily provision and manage Palworld Dedicated Server
https://hub.docker.com/r/jammsen/palworld-dedicated-server
MIT License
898 stars 151 forks source link

[Bug Report] rcon connection fails #207

Closed Funkelfetisch closed 4 months ago

Funkelfetisch commented 4 months ago

Have you read the Important information text above

Current behavior

firstly the rcon and rconcli inside the container didn't have a config, which I fixed with: docker cp configs/rcon.yaml palworld-dedicated-server:/home/steam/steamcmd/rcon.yaml

but still, apparently the rcon server isn't running:

cli: execute: auth: rcon: rcon: read packet size: read tcp 172.22.0.2:44020->10.0.0.10:25575: read: connection reset by peer

I copied netstat into the container and ran it:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 127.0.0.11:46681        0.0.0.0:*               LISTEN      0          10610793   -
tcp        0      0 0.0.0.0:1985            0.0.0.0:*               LISTEN      1000       10613235   -
tcp        0      0 127.0.0.1:45689         0.0.0.0:*               LISTEN      1000       10608593   -
udp        0      0 0.0.0.0:27015           0.0.0.0:*                           1000       10611954   -
udp        0      0 127.0.0.11:51791        0.0.0.0:*                           0          10610792   -
udp        0      0 0.0.0.0:8211            0.0.0.0:*                           1000       10613234   -

Desired behavior

rcon working.

Links to screenshots

No response

To Reproduce

follow the README.md ??? I have no idea what I did wrong or even differently...

Software setup

Hardware setup

Additional context

version: '3.9'
services:
  palworld-dedicated-server:
    #build: .
    container_name: palworld-dedicated-server
    image: jammsen/palworld-dedicated-server:latest
    restart: unless-stopped
    ports:
      - target: 8211 # Gamerserver port inside of the container
        published: 8211 # Gamerserver port on your host
        protocol: udp
        mode: host
      - target: 25575 # RCON port inside of the container
        published: 25575 # RCON port on your host
        protocol: tcp
        mode: host
    env_file:
      - ./default.env
    volumes:
      - ~/docker-data/palworld:/palworld
# Container-setttings
PUID=1000
PGID=1000
TZ=Europe/Berlin
# SteamCMD-settings
ALWAYS_UPDATE_ON_START=true
STEAMCMD_VALIDATE_FILES=true
# Backup-settings
BACKUP_ENABLED=true
BACKUP_CRON_EXPRESSION=0 * * * *
BACKUP_RETENTION_POLICY=true
BACKUP_RETENTION_AMOUNT_TO_KEEP=72
# Restart-settings
RESTART_ENABLED=false
RESTART_CRON_EXPRESSION="0 3,15 * * *"
# Webhook-settings
WEBHOOK_ENABLED=false
WEBHOOK_DEBUG_ENABLED=false
WEBHOOK_URL="YOUR-URL-IN-HERE"
WEBHOOK_INFO_TITLE="Info"
WEBHOOK_INFO_DESCRIPTION="This is an info from the server"
WEBHOOK_INFO_COLOR="2849520"
WEBHOOK_INSTALL_TITLE="Installing server"
WEBHOOK_INSTALL_DESCRIPTION="Server is being installed"
WEBHOOK_INSTALL_COLOR="2849520"
WEBHOOK_RESTART_TITLE="Server is restarting soon"
WEBHOOK_RESTART_DESCRIPTION="The gameserver is restarting in 15 minutes"
WEBHOOK_RESTART_COLOR="15593515"
WEBHOOK_START_TITLE="Server is starting"
WEBHOOK_START_DESCRIPTION="The gameserver is starting"
WEBHOOK_START_COLOR="2328576"
WEBHOOK_STOP_TITLE="Server has been stopped"
WEBHOOK_STOP_DESCRIPTION="The gameserver has been stopped"
WEBHOOK_STOP_COLOR="7413016"
WEBHOOK_UPDATE_TITLE="Updating server"
WEBHOOK_UPDATE_DESCRIPTION="Server is being updated"
WEBHOOK_UPDATE_COLOR="2849520"
# Config-setting - Warning: Every setting below here will be affected!
SERVER_SETTINGS_MODE=manual
# Gameserver-start-settings
MULTITHREAD_ENABLED=true
COMMUNITY_SERVER=false
# Engine.ini settings
NETSERVERMAXTICKRATE=120
# PalWorldSettings.ini settings
DIFFICULTY=normal
DAYTIME_SPEEDRATE=1.000000
NIGHTTIME_SPEEDRATE=1.000000
EXP_RATE=1.000000
PAL_CAPTURE_RATE=1.000000
PAL_SPAWN_NUM_RATE=1.000000
PAL_DAMAGE_RATE_ATTACK=1.000000
PAL_DAMAGE_RATE_DEFENSE=1.000000
PLAYER_DAMAGE_RATE_ATTACK=1.000000
PLAYER_DAMAGE_RATE_DEFENSE=1.000000
PLAYER_STOMACH_DECREASE_RATE=1.000000
PLAYER_STAMINA_DECREACE_RATE=1.000000
PLAYER_AUTO_HP_REGENE_RATE=1.000000
PLAYER_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000
PAL_STOMACH_DECREACE_RATE=1.000000
PAL_STAMINA_DECREACE_RATE=1.000000
PAL_AUTO_HP_REGENE_RATE=1.000000
PAL_AUTO_HP_REGENE_RATE_IN_SLEEP=1.000000
BUILD_OBJECT_DAMAGE_RATE=1.000000
BUILD_OBJECT_DETERIORATION_DAMAGE_RATE=1.000000
COLLECTION_DROP_RATE=1.000000
COLLECTION_OBJECT_HP_RATE=1.000000
COLLECTION_OBJECT_RESPAWN_SPEED_RATE=1.000000
ENEMY_DROP_ITEM_RATE=1.000000
DEATH_PENALTY=All
ENABLE_PLAYER_TO_PLAYER_DAMAGE=false
ENABLE_FRIENDLY_FIRE=false
ENABLE_INVADER_ENEMY=true
ACTIVE_UNKO=false
ENABLE_AIM_ASSIST_PAD=true
ENABLE_AIM_ASSIST_KEYBOARD=false
DROP_ITEM_MAX_NUM=3000
DROP_ITEM_MAX_NUM_UNKO=100
BASE_CAMP_MAX_NUM=128
BASE_CAMP_WORKER_MAXNUM=15
DROP_ITEM_ALIVE_MAX_HOURS=1.000000
AUTO_RESET_GUILD_NO_ONLINE_PLAYERS=false
AUTO_RESET_GUILD_TIME_NO_ONLINE_PLAYERS=72.000000
GUILD_PLAYER_MAX_NUM=20
PAL_EGG_DEFAULT_HATCHING_TIME=72.000000
WORK_SPEED_RATE=2.000000
IS_MULTIPLAY=true
IS_PVP=false
CAN_PICKUP_OTHER_GUILD_DEATH_PENALTY_DROP=false
ENABLE_NON_LOGIN_PENALTY=true
ENABLE_FAST_TRAVEL=true
IS_START_LOCATION_SELECT_BY_MAP=true
EXIST_PLAYER_AFTER_LOGOUT=false
ENABLE_DEFENSE_OTHER_GUILD_PLAYER=false
COOP_PLAYER_MAX_NUM=6
MAX_PLAYERS=32
SERVER_NAME=[redacted]
SERVER_DESCRIPTION=[redacted]
ADMIN_PASSWORD=[redacted]
SERVER_PASSWORD=[redacted]
PUBLIC_PORT=8211
PUBLIC_IP=
RCON_ENABLED=true
RCON_PORT=25575
REGION=
USEAUTH=true
BAN_LIST_URL=https://api.palworldgame.com/api/banlist.txt
jammsen commented 4 months ago

Hey @Funkelfetisch - Please provide server startuplogs and the way you called the rcon commands. Thank you!

Funkelfetisch commented 4 months ago

Hey @Funkelfetisch - Please provide server startuplogs and the way you called the rcon commands. Thank you!

server startup with docker-compose up -d

I tried aaaalll the variants:

 1891  docker exec palworld-dedicated-server rconcli save
 1892  docker exec palworld-dedicated-server rconcli info
 1897  RCON_PORT=25575 docker exec palworld-dedicated-server rconcli info
 1898  docker exec palworld-dedicated-server RCON_PORT=25575 rconcli info
 1899  docker exec palworld-dedicated-server bash -c "RCON_PORT=25575 rconcli info"
 1901  docker exec palworld-dedicated-server rconcli info
 1910  docker exec palworld-dedicated-server rconcli -a 10.0.0.10:25521 save
 1915  docker exec palworld-dedicated-server rconcli -a 10.0.0.10:25575 -p [redacted] save
 1916  docker exec palworld-dedicated-server rconcli --address 10.0.0.10:25575 -p [redacted] save
 1918  docker exec palworld-dedicated-server bash -c "rconcli -a 10.0.0.10:25575 save"
 1920  docker exec palworld-dedicated-server rconcli -a 10.0.0.10:25575 -p [redacted] -c save
 1921  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -p [redacted] -c save
 1922  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -p [redacted] -c info
 1924  docker exec palworld-dedicated-server rcon -a 127.0.0.1:25575 -p [redacted] -c info
 1925  docker exec palworld-dedicated-server rcon -a 0.0.0.0:25575 -p [redacted] -c info
 1926  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -p [redacted] -c info
 1928  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -p [redacted] -c info
 1929  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -c info
 1930  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 --command info
 1931  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -command info
 1932  docker exec palworld-dedicated-server rcon --help
 1933  docker exec palworld-dedicated-server rcon -a 10.0.0.10:25575 -c info
 1947  docker exec palworld-dedicated-server rcon -a 127.0.0.1:25575 -p [redacted] info
 1948  docker exec palworld-dedicated-server rcon -a 127.0.0.1:25575 info
 1960  docker exec palworld-dedicated-server cat rcon.yaml
 1963  cat configs/rcon.yaml | docker exec palworld-dedicated-server bash -c "echo > rcon.yaml"
 1964  docker exec palworld-dedicated-server cat rcon.yaml
 1965  cat configs/rcon.yaml | docker exec palworld-dedicated-server bash -c "echo -e default: > rcon.yaml"
 1966  docker exec palworld-dedicated-server cat rcon.yaml
 1967  docker cp configs/rcon.yaml palworld-dedicated-server:rcon.yaml
 1970  docker exec palworld-dedicated-server rconcli info
 1971  docker exec palworld-dedicated-server rcon info
 1972  docker exec palworld-dedicated-server rcon --help
 1973  docker exec palworld-dedicated-server rcon -c rcon.yaml
 1974  docker exec palworld-dedicated-server cat rcon.yaml
 1976  docker cp configs/rcon.yaml palworld-dedicated-server:/home/steam/steamcmd/rcon.yaml
 1978  docker exec palworld-dedicated-server rcon info
jammsen commented 4 months ago

@Funkelfetisch - Ping

Hey @Funkelfetisch - Please provide server startuplogs and the way you called the rcon commands. Thank you!

server startup with docker-compose up -d

Still waiting for the server startuplogs 😕

jammsen commented 4 months ago

Im closing this issue as inactive, feel free to reach out again if you need help or have time.

If you like this project, please consider giving this repo and the Docker-Hub-Repo a Star.

Funkelfetisch commented 4 months ago

sorry for the delay, here's the startuplog:

>>> Server stopped gracefully
> Current steam user PUID is '1000' and PGID is '1000'
> PUID and PGID matching what is requested for user steam
> id steam: uid=1000(steam) gid=1000(steam) groups=1000(steam)
>>> Starting server manager
> Started at: 2024-02-26 13:21:42
> Server main thread started with pid 24
> Checking for existence of default credentials
> No default passwords found
>>> Doing an update with validation of the gameserver files...
tid(29) burning pthread_key_t == 0 so we never use it
Redirecting stderr to '/home/steam/Steam/logs/stderr.txt'
Logging directory: '/home/steam/Steam/logs'
[  0%] Checking for available updates...
[----] Verifying installation...
Steam Console Client (c) Valve Corporation - version 1705108307
-- type 'quit' to exit --
Loading Steam API...OK

Connecting anonymously to Steam Public...OK
Waiting for client config...OK
Waiting for user info...OK
 Update state (0x5) verifying install, progress: 0.32 (7340032 / 2260368082)
 Update state (0x5) verifying install, progress: 18.18 (410950404 / 2260368082)
 Update state (0x5) verifying install, progress: 41.15 (930074013 / 2260368082)
 Update state (0x5) verifying install, progress: 63.77 (1441398437 / 2260368082)
 Update state (0x5) verifying install, progress: 87.09 (1968635502 / 2260368082)
Success! App '2394010' fully installed.
>>> Done updating and validating the gameserver files
>>> Adding crons to Supercronic
> Added backup cron
>>> Supercronic started
>>> SERVER_SETTINGS_MODE is set to 'manual', NOT using environment variables to configure the server!
>>> ALL SETTINGS including setup of rcon.yaml has to be done manually by the user!
>>> Preparing to start the gameserver
> Setting Multi-Core-Enhancements to enabled
>>> Starting the gameserver
time="2024-02-26T13:21:57+01:00" level=info msg="read crontab: cronlist"
[S_API] SteamAPI_Init(): Loaded local 'steamclient.so' OK.
Shutdown handler: initalize.
- Existing per-process limit (soft=1048576, hard=1048576) is enough for us (need only 1048576)
Increasing per-process limit of core file size to infinity.
- Existing per-process limit (soft=18446744073709551615, hard=18446744073709551615) is enough for us (need only 18446744073709551615)
CAppInfoCacheReadFromDiskThread took 2 milliseconds to initialize
Setting breakpad minidump AppID = 2394010
[S_API FAIL] Tried to access Steam interface SteamUser021 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamFriends017 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface STEAMAPPS_INTERFACE_VERSION008 before SteamAPI_Init succeeded.
[S_API FAIL] Tried to access Steam interface SteamNetworkingUtils004 before SteamAPI_Init succeeded.
time="2024-02-26T14:00:00+01:00" level=info msg=starting iteration=0 job.command="backup create" job.position=0 job.schedule="0 * * * *"
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
>>> Backup 'saved-20240226_140000.tar.gz' created successfully
time="2024-02-26T14:00:20+01:00" level=info msg="job succeeded" iteration=0 job.command="backup create" job.position=0 job.schedule="0 * * * *"
time="2024-02-26T15:00:00+01:00" level=info msg=starting iteration=1 job.command="backup create" job.position=0 job.schedule="0 * * * *"
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
>>> Backup 'saved-20240226_150000.tar.gz' created successfully
time="2024-02-26T15:00:20+01:00" level=info msg="job succeeded" iteration=1 job.command="backup create" job.position=0 job.schedule="0 * * * *"
time="2024-02-26T16:00:00+01:00" level=info msg=starting iteration=2 job.command="backup create" job.position=0 job.schedule="0 * * * *"
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
cli: execute: auth: rcon: dial tcp: address tcp/###RCON_PORT###: unknown port
> RCON:
>>> Backup 'saved-20240226_160000.tar.gz' created successfully
time="2024-02-26T16:00:20+01:00" level=info msg="job succeeded" iteration=2 job.command="backup create" job.position=0 job.schedule="0 * * * *"
jammsen commented 4 months ago

Hey @Funkelfetisch - You did choose manual there will no settings to be auto-filled for RCON. Thats on purpose and it says that in the startup log of the server.

If you want to change that, read up on this here - https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/docs/ENV_VARS.md#container-settings - See SERVER_SETTINGS_MODE and the explainer for that.