Battlefield 3 / 4 – PRoCon auf Linux installieren

PRoCon ist ein super Verwaltungs-Tool für deinen Battlefield-Server.
Leider ist es eigentlich nur für Windows programmiert worden und nicht direkt auf Linux lauffähig.
Wäre es aber nicht super, den PRoCon Deamon auf einem Linux-Server zum laufen zu bekommen?
Ja! Deshalb gibt es diese tolle Anleitung hier!

WARNUNG: Es kann immer zu Fehlern oder Problemen mit PRoCon auf Linux kommen! Verwendung auf eigene Gefahr!

Erfolgreich getestet auf:
– Ubuntu 18.04 LTS
– Debian 10

Was brauchen wir?

– Einen Linux-Server (x64 / x86! – kein ARM!)
– Vollen Root-Zugang
– Einen Battlefield 3 oder 4 Server (Venice Unleashed auch möglich!)



1. Füge dir die Paketquellen von Mono auf deinem Server hinzu

Du findest HIER die passenden Anleitungen, Links und Keys.
Ich habe diese nicht hier eingebudnen, da sie sich scheinbar des öfteren ändern.

2. Installiere die notwendigne Pakete

# apt install mono-4.0-service mono-complete libmono-system-windows-forms4.0-cil mono-devel supervisor mono-mcs unzip -y

3. Lege einen neuen Nutzer für PRoCon an

Es ist nicht empfehlenswert alls mit dem Root-Account laufen zu lassen.

# adduser NUTZERNAME

4. Logge dich mit deinem neuen Nutzer ein und wechsel in sein Home-Verzeichnis

# cd /home/NUTZERNAME

5. Downloade dir PRoCon und entpacke es

Den aktuellen Download findest du HIER.
Da der Downloader leicht bescheiden ist, lade es dir auf deinen PC herunter und z.B. via FileZilla auf dein Server.

# unzip procon_1.5.1.1.zip

6. Starte PRoCon 1x um alle Configs generieren zu lassen

# mono PRoCon.Console.exe

Warte ca. 10-20 Sekunden, damit alle Daten generiert werden. Drücke anschließend eine beliebige Taste.

7. Wechsel in den Ordner “Configs”

# cd Configs

8. Öffne die Datei “procon.cfg” mit einem Editor

# nano procon.cfg

9. Editiere sie wie folgt

Setze folgende Parameter auf “False” und / oder füge sie hinzu:

procon.private.options.runPluginsSandbox False
procon.private.options.autoCheckDownloadUpdates False
procon.private.options.autoApplyUpdates False
procon.private.options.allowanonymoususagedata False

Füge am Ende der Konfiguration folgendes hinzu:

procon.private.servers.add "IP-DES-GAMESERVERS" 47200 "Password-des-RCON-Serveradmins"
procon.private.servers.name "IP-DES-GAMESERVERS" 47200 "Gameserver-Name - Frei definierbar"

Ersetze IP-DES-GAMESERVERS durch die IP deines Gameservers. Läuft dieser auf dem gleichen System wie ProCon, trage hier 127.0.0.1 ein. Die IP muss in den Anführungszeichen stehen! Diese sind keine Deko 😉
Ersetze den Port 47200 durch deinen RCON-Port des Battlefield-Servers, falls dieser abweichen sollte.
Ersetze Password-des-RCON-Serveradmins durch dein RCON-Passwort des Battlefield-Servers. Schreibe das Passwort zwischen die Anführungszeichen.
Gebe bei “Gameserver-Name – Frei definierbar” noch einen Namen für den Server an. Dieser sieht man nache rin PRoCon.

10. Öffne die Datei “accounts.cfg”

Die Datei muss auch im Configs-Ordner angelegt werden.

# nano accounts.cfg

11. Lege einen Admin-Account für PRoCon an

In der accounts.cfg-Datei können wir nun direkt Admin-Accounts für PRoCon anlegen.
Füge einfach am Ende der Datei pro Account diese Zeile an:

procon.public.accounts.create "BENUTZERNAME" "SuperTollesPasswort"

Ersetze BENUTZERNAME durch ein beliebigen Namen und SuperTollesPasswort durch ein sicheres Passwort. Vermeide hier Sonderzeichen, die könnten Probleme bereiten.

12. Lege die Serverkonfiguration an

Erstelle im Configs-Ordner einen Unterordner PRO Server, der über die PRoCon-Instanz gesteuert werden soll.

mkdir IP-DES-GAMESERVERS_RCON-PORT

IP-DES-GAMESERVERS_RCON = IP des Battlefield-Servers. Wenn er Lokal auf dem System läuft, reicht hier 127.0.0.1, ansonst die öffentliche IP
RCON-PORT = Der RCON-Port des Battlefield-Servers.

Wechsel in den Ordner:

cd IP-DES-GAMESERVERS_RCON-PORT

Lege hier eine Config mit ebenfalls dem gleichen Muster wie der Ordnername an. Achte auf das .cfg am Ende!

# nano IP-DES-GAMESERVERS_RCON-PORT.cfg

Füge hier folgenden Inhalt ein:

/////////////////////////////////////////////
// This config will be overwritten by procon.
/////////////////////////////////////////////
procon.protected.layer.setPrivileges "BENUTZERNAME" 3972679
procon.protected.layer.enable True 27260 "0.0.0.0" "[%servername%]"
procon.protected.playerlist.settings true 1 0.5 0.5
procon.protected.chat.settings False False True 0 0 False False
procon.protected.events.captures False 200 False False
procon.protected.lists.settings False
procon.protected.console.settings True False False True True True
procon.protected.timezone_UTCoffset 0

Ersetze hier BENUTZERNAME durch den angelegten Admin-Account aus Schritt 11. Der Name muss in den Anführungszeichen stehen.
Port 27260 ist der PRoCon-Port, über welchen das System nacher erreichbar ist. Hast du mehrere Instanzen am laufen, ändere hier den Port auf einen anderen ab.

13. PRoCon starten

Nun ist es an der Zeit mal zu testen, ob PRoCon läuft.
Wechsel dazu ins Home-Verzeichnis.

# cd /home/NUTZERNAME

Starte PRoCon einmal direkt im Terminal:

# mono PRoCon.Console.exe

14. Versuche dich mit der PRoCon-Desktop-Version auf deinen Daemon zu verbinden

IP = IP des Servers
PORT = Port, welcher in der Server-Config aus Schritt 12 angelegt wurde. (Standardgemäß Port 27260)
Benutzername = Benutzername aus Schritt 11
Passwort = Passwort aus Schritt 11

Läufts? Dann können wir weiter machen!

15. PRoCon dauerhaft laufen lassen

Du kannst PRoCon nun auf zwei Wege laufen lassen.
Entweder per Screen oder mit einer einfachen Start und Stopp-Datei.
Ich habe hier Beispiele für dich.

Screen:

# nano PRoCon-Screen.sh

 

screen -S PRoCon mono PRoCon.Console.exe

START/STOPP-Datei:

# nano start.sh

 

#!/bin/bash
cd /home/procon/
mono-service -l:./proconservice.lock PRoCon.Service.exe
nano stop.sh

 

#!/bin/bash
cd /home/procon/
kill `cat ./proconservice.lock`

 

# chmod +rx start.sh
# chmod +rx stop.sh

Auftrendende Probleme:

Ich erhalte nach ca. 10 Sekunden im PRoCon-Terminal eine Fehlermeldung.
Du hast ggf. nicht alle Pakete von Mono installiert. Hier sind mono-complete und mono-devel wichtig.

Ich sehe keine Plugins.
Aus welchem Grund auch immer, konnten die Plugins nicht richtig eingelesen werden und Standarddaten erstellt werden.
Es sollten normalerweise im Ordner Plugins und dann im jeweiligen Spieleordner (BF3 / BF4) für die Plugins jeweils eine .dll-Datei erstellt werden. Dies geschah scheinbar nicht.
Versuch die Installation von PRoCon noch einmal. Falls es weiterhin nicht klappt, nutze HIER meinen vorgefertigten Download. Hier sind die Daten enthalten. Ich habe diesen Download extra hier runter gepackt, das du immer zuerst den aktuellen Download der Webseite nutzt.

Ich werden abgemeldet, sobald ich was in Chat schreibe.
Du siehst vermutlich auch keine Plugins oder? Installiere alles noch einmal von Vorne. Hier scheint ein Bug drin zu sein.

2 Kommentare

  1. Hi Hoerli,

    ich habe schon vor längerer Zeit die obige Anleitung von der Proconseite direkt nachgebaut und hat bei mir auch wunderbar funktioniert. Allerdings habe ich leider das Problem, dass ich mein Procon einfach nicht als Dienst laufen lassen kann sprich der Abschnitt mit start.sh und stop.sh funktioniert bei mir nicht oder ich mache irgendwas falsch.
    Wenn ich meine start.sh ausführe dann bekomme ich zunächst einmal keinerlei Fehlermeldung o.ä. zurück. Allerdings läuft dann auch mein Procon nicht denn ich kann mich nicht auf den Layer verbinden.
    Wenn ich den proconlayer aber normal über die Konsole starte dann kann ich mich auch problemlos drauf verbinden.
    Ich weiß halt nicht warum es nicht funktioniert das ganze als Dienst laufen zu lassen.
    Eventuell hättest du da noch einen Tipp?

    • Ich schätze mal, das hier die Rechte falsch gesetzt sind, um ProCon dann zu starten.
      Wenn gar nichts läuft und auch absolut kein Feedback kommt, wurde auch nichts im Ansatz gestartet.
      Ich habe auf meinem Server das ganze so ohne Probleme starten können.
      Zurzeit hänge ich nur an einem Autostart-Script. Das will bei mir (noch) nicht 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.