Connectivity Problem with Farming Simulator 25 - Clients stuck joining; server only contacts client's private LAN IP

System Information

Field Value
Operating System Linux - Debian GNU/Linux 12 on x86_64
Product AMP ‘Proteus’ v2.8.0.8 (Mainline)
Virtualization QEMU_KVM
Application Farming Simulator 25
Module GenericModule
Running in Container No
Current State Ready

Problem Description

Issue

Server: ZAP-Hosting VPS, Debian 12, public IP 45.146.253.13 directly on eth0, plus Docker bridges 172.17-172.20.x.x. FS25 1.25.0.0 (GIANTS eShop), separate key for the server.

The server keeps constant UDP traffic with GIANTS servers (148.251.3.211 / 148.251.48.12), so master/NAT service registration works. But when a client joins, the client never sends anything directly to the server’s public IP, and the server only tries to reach the client’s private LAN IP - never its public IP. Game log shows no network errors. Suspicion: the game under Wine reports a wrong local/external address (possibly a Docker bridge IP) to the GIANTS NAT service. Removing the Docker bridges for testing is not possible because AMP stops working without Docker.

Template issues found along the way:

  1. fs-install line 116: bash arithmetic error on “2.33614e+10” during download progress
  2. xvfb and xdotool not installed/checked
  3. GE-Proton11-11 requires GLIBC_2.38, not available on Debian 12
  4. Wine prefix missing DXVK/vkd3d DLLs (d3d12/dxgi not found, c0000135) → “Unable to start game server process”
  5. Dedicated server web interface binds only to 127.0.0.1:8083

Question: Is there a way to force the external IP / network interface for the FS25 game server, or is this a known issue?

Verbatim errors / log excerpts:

[AMP console - download]
fs-install: line 116: ((: 2.33614e+10: syntax error: invalid arithmetic operator (error token is “.33614e+10”)

[AMP console - missing packages]
ERROR: Xvfb is not installed, and the installer cannot run without a display.
ERROR: xdotool is not installed, so the product key cannot be entered.

[fs25_proton.log - GE-Proton11-11 on Debian 12]
wine: could not load ntdll.so: /home/amp/.ampdata/instances/FarmingSimulator2501/farming-simulator-25/.proton/files/lib/wine/ntdll.so: cannot open shared object file: No such file or directory
ldd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38’ not found (required by …/.proton/files/lib/wine/x86_64-unix/ntdll.so)

[Dedicated server web interface log]
Error: Unable to start game server process
Unable to start game server

[Wine, WINEDEBUG=err+all, before prefix fix]
err:module:import_dll Library libvkd3d-1.dll (which is needed by L"C:\windows\system32\wined3d.dll") not found
err:module:import_dll Library d3d12.dll (which is needed by L"Z:\…\game\x64\FarmingSimulator2025Game.exe") not found
err:module:import_dll Library dxgi.dll (which is needed by L"Z:\…\game\x64\FarmingSimulator2025Game.exe") not found
err:module:loader_init Importing dlls for L"Z:\…\game\x64\FarmingSimulator2025Game.exe" failed, status c0000135

[Game log - one start failed with DNS error, worked after retry]
Warning: Could not resolve master server host name.
Error: Failed to connect: 1
Error: Could not connect to the server.

[Current state - no error in game log; tcpdump during client join]
15:26:57.603695 eth0 Out IP 45.146.253.13.10823 > 192.168.2.150.10823: UDP, length 7
15:26:57.803971 eth0 Out IP 45.146.253.13.10823 > 192.168.2.150.10823: UDP, length 7
(0 packets from client’s public IP on any port, crossplay true and false)

Reproduction Steps

  • Installed instance on Debian 12 VPS (no GPU, Docker installed), set product key and GIANTS .img download link
  • Fixed install manually: installed xvfb + xdotool, replaced GE-Proton11-11 with GE-Proton9-27 (glibc 2.36), ran “proton run” once to add missing DXVK/vkd3d DLLs
  • Started server: activation successful, “Entered Gameplay”, listening on UDP 0.0.0.0:10823, visible in server list
  • Joined from a PC behind home NAT: client hangs at 55% “Waiting for host to accept” (crossplay on and off)
  • Ran tcpdump on server during join: no packets from client’s public IP; server only sends 2 UDP packets to client’s private IP 192.168.2.150:10823