AzerothCore Server-Konsole & Admin-Zugriff
Übersicht
Der AzerothCore-Server (CT119) hat drei Admin-Zugangswege:
| Methode | Zugriff | Für was |
|---|---|---|
| In-Game | WoW-Client als GM-Account | Einfachste Methode für GM-Commands |
| SSH → Systemd | ssh root@192.168.178.89 |
Logs, Service-Neustart, Config-Änderungen |
| SOAP | 127.0.0.1:7878 (nur intern) |
Automatisierung, Scripts |
SSH-Zugang (CT119)
# Von Proxmox-Host: ssh root@192.168.178.89 # Oder direkt per pct exec (von Proxmox): pct exec 119 -- bash -c "systemctl status acore-world"
Services verwalten
# Status prüfen: systemctl status acore-auth systemctl status acore-world # Neustarten: systemctl restart acore-auth systemctl restart acore-world # Stoppen / Starten: systemctl stop acore-world systemctl start acore-world
Reihenfolge: Bei Neustart zuerst
acore-worldstoppen, dannacore-auth. Starten in umgekehrter Reihenfolge.
Logs anzeigen
# Live-Log (Worldserver): journalctl -u acore-world -f # Letzten 100 Zeilen: journalctl -u acore-world -n 100 # Log-Datei direkt (schneller bei vielen Einträgen): tail -f /opt/azerothcore/logs/Server.log # Fehler filtern: journalctl -u acore-world -p err -n 50
SOAP-Interface
Der Worldserver stellt einen SOAP XML-RPC-Endpunkt auf 127.0.0.1:7878 bereit.
Credentials = Admin-Account (Login: admin, PW in /root/acore-credentials.txt).
SOAP per PHP (einfachste Methode):
# In CT119 als root – beliebigen GM-Command ausführen: php -r " \$c = new SoapClient(null, [ 'location' => 'http://127.0.0.1:7878/', 'uri' => 'urn:AC', 'style' => SOAP_RPC, 'login' => 'admin', 'password' => 'ADMINPASS' ]); echo \$c->executeCommand(new SoapParam('.server info', 'command')); "
SOAP per curl:
curl -s -u admin:ADMINPASS \ -H "Content-Type: text/xml" \ -d '<?xml version="1.0"?> <methodCall> <methodName>execute</methodName> <params> <param><value><string>.server info</string></value></param> </params> </methodCall>' \ http://127.0.0.1:7878/
Wichtig: Der SOAP-Port ist nur auf
127.0.0.1gebunden – kein externer Zugriff möglich.
Direkte MySQL-Konsole
# In CT119 als root: mysql -u root # Direkte Abfragen: USE acore_auth; SELECT username, last_login FROM account ORDER BY last_login DESC LIMIT 10; USE acore_characters; SELECT name, level, class, race FROM characters WHERE online=1; # Account-GM-Level setzen (direkt in DB): UPDATE acore_auth.account_access SET SecurityLevel=3 WHERE id=( SELECT id FROM acore_auth.account WHERE username='SPIELERNAME' );
Config neu laden (ohne Neustart)
# In-Game oder per SOAP: .reload config # worldserver.conf neu laden .reload all # Alle Configs (langsamer)
Nicht alle Einstellungen können live neu geladen werden – XP-Rates, Bot-Anzahl und DB-Verbindungen brauchen einen Neustart.
CPU-Last reduzieren
Falls der Server zu viel CPU verbraucht (häufig durch journald bei vielen Log-Einträgen):
# worldserver nice-Level erhöhen (niedrigere Priorität): renice 10 $(pgrep worldserver) # Console-Logging in worldserver.conf reduzieren: # Logger.root = 3,Console Server → Logger.root = 2,Server # Dann: systemctl restart acore-world
Passwort ändern
Für den Admin-Account nutzt AzerothCore SHA1 SRP6 (WotLK-kompatibel).
Über SOAP (funktioniert NUR ohne " im Passwort):
php -r " \$c = new SoapClient(null, ['location'=>'http://127.0.0.1:7878/','uri'=>'urn:AC','style'=>SOAP_RPC,'login'=>'admin','password'=>'ALTESPASSWORT']); echo \$c->executeCommand(new SoapParam('.account set password admin ALTESPASSWORT NEUESPASSWORT NEUESPASSWORT', 'command')); "
Direkt per Python (wenn Sonderzeichen im PW):
#!/usr/bin/env python3 import hashlib, os, struct username = "ADMIN" # Immer UPPERCASE password = "NEUESPASSWORT" # Immer UPPERCASE N = int.from_bytes(bytes.fromhex( '894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7'), 'big') g = 7 salt_bytes = os.urandom(32) h1 = hashlib.sha1((username.upper() + ':' + password.upper()).encode()).digest() x_bytes = hashlib.sha1(salt_bytes + h1).digest() x = int.from_bytes(x_bytes, 'little') verifier = pow(g, x, N).to_bytes(32, 'little') salt_hex = salt_bytes.hex().upper() verifier_hex = verifier.hex().upper() print(f"""UPDATE acore_auth.account SET salt=0x{salt_hex}, verifier=0x{verifier_hex} WHERE username='{username}';""")
python3 srp6_pass.py | mysql -u root
Danach auch SOAP-Passwort in FusionCMS-DB aktualisieren:
mysql -u root fusioncms -e "UPDATE realms SET console_password='NEUESPASSWORT' WHERE id=1;"
FusionCMS Web-Panel
- URL: https://panel.ls-cloud.biz
- Login:
admin/ Passwort aus/root/acore-credentials.txt - GM-Commands über FusionCMS: Nur vordefinierte Aktionen (Kick, Ban, Item senden) — kein freies Command-Eingabefeld!
Das Panel nutzt SOAP intern. SOAP-Credentials entsprechen dem Admin-Account.
Verwandte Seiten
- azerothcore – Installation, Config-Pfade, XP-Rates
- gm-commands – Vollständige GM-Command-Referenz
- home
