Die Installation der Metin2 Server Files ist der erste und wichtigste Schritt, der einen leeren VPS in einen funktionierenden Gameserver verwandelt. In dieser Anleitung zeige ich von Grund auf, wie du die Dateien auf den Server hochlädst, die richtigen Berechtigungen setzt, die MySQL-Datenbanken importierst, CONFIG und my.cnf konfigurierst und die Prozesse db und game (core) zum ersten Mal startest. Da die meisten klassischen Server-Files-Pakete mit für FreeBSD kompilierten Binaries ausgeliefert werden, folgen meine Beispiele einer FreeBSD-basierten Installation.
Voraussetzungen und Wahl des richtigen Betriebssystems
Stelle vor dem Start sicher, dass du Folgendes hast:
- Einen VPS mit Root-Zugang (ältere Server Files benötigen meist FreeBSD und 32-bit-Binaries; wähle die von deinen Dateien geforderte Version).
- Einen SSH- und SFTP-Client: PuTTY + WinSCP oder FileZilla.
- Einen MySQL/MariaDB-Server (meist im Paket enthalten oder über Ports installiert).
- Einen Datenbank-Client: HeidiSQL oder Navicat.
- Das Server-Files-Archiv (meist eine
.tar.gz) und den passenden Client.
Der häufigste Fehler ist die Verwendung einer OS-Architektur, die nicht zu den Binaries passt. Eine für FreeBSD kompilierte game-Binary läuft nicht unter Linux; die Übereinstimmung von Architektur und Version ist zwingend erforderlich.
Die Dateien auf den Server hochladen
Das Archiv direkt auf den Server hochzuladen ist weitaus schneller, als jede Datei einzeln per SFTP zu übertragen. Verbinde dich per SSH und entpacke das Archiv im Zielverzeichnis:
cd /usr/home
mkdir -p metin2 && cd metin2
# Lade das Archiv mit WinSCP/FileZilla in dieses Verzeichnis, dann:
tar -xzvf serverfiles.tar.gz
Eine typische Verzeichnisstruktur sieht so aus:
/usr/home/metin2/db/— Datenbank-Core (db core),conf.txt/usr/home/metin2/game/— Game-Core, Kanalordner (channel1,channel2...)/usr/home/metin2/share/— gemeinsame Daten (proto, mob, item)
Vergiss nach dem Hochladen nicht, die Dateiberechtigung zu korrigieren; wenn du als Root entpackt hast, übertrage sie an den Benutzer, der den Server ausführt:
chown -R metin2:metin2 /usr/home/metin2
Die MySQL-Datenbanken importieren
Metin2 verwendet mehrere Datenbanken. Das gängigste Schema besteht aus diesen vier:
- account — Konten und Anmeldedaten
- player — Charaktere, Items, Quests, Gildendaten
- common — gesperrte Wörter, GM-Liste, Einstellungen
- log — In-Game-Logs
Erstelle zuerst die leeren Datenbanken und importiere dann die .sql-Dumps. Über die Kommandozeile:
mysql -u root -p -e "CREATE DATABASE account; CREATE DATABASE player; CREATE DATABASE common; CREATE DATABASE log;"
mysql -u root -p account < account.sql
mysql -u root -p player < player.sql
mysql -u root -p common < common.sql
mysql -u root -p log < log.sql
Wenn du dich nicht mit der Kommandozeile befassen möchtest, öffne einen SSH-Tunnel mit HeidiSQL oder Navicat und importiere jede .sql-Datei über „Run SQL File / Execute" in die passende Datenbank. Vergiss nach dem Import nicht, dein eigenes Konto als GM in die Tabelle common.gmlist einzutragen; sonst hast du keinen Zugriff auf die In-Game-Befehle.
Um ein Testkonto anzulegen, füge eine Zeile in account.account ein. Die meisten Server Files speichern das Passwort mit der Funktion password():
INSERT INTO account.account (login, password, social_id, email)
VALUES ('test', password('1234'), '1111111', 'test@local');
conf.txt, CONFIG und my.cnf konfigurieren
Ohne korrekte Netzwerkeinstellungen kann der Client keine Verbindung zum Server herstellen. Drei Dateien sind entscheidend.
db/conf.txt — legt fest, wie der db core eine Verbindung zu MySQL herstellt. Passe Benutzername, Passwort und Datenbanknamen an deine Installation an:
SQL_ACCOUNT: localhost account root PASSWORT
SQL_PLAYER: localhost player root PASSWORT
SQL_COMMON: localhost common root PASSWORT
SQL_HOTBACKUP: localhost log root PASSWORT
PLAYER_SQL_DIRECT: 1
game/<Kanal>/CONFIG — enthält IP, Port und Kanalnummer jedes Kanals. Setze BIND_IP auf die öffentliche IP des VPS; wenn du 127.0.0.1 belässt, kann sich niemand von außen verbinden:
HOSTNAME: ch1
CHANNEL: 1
BIND_IP: 11.22.33.44
PORT: 13001
P2P_PORT: 14001
DB_ADDR: 127.0.0.1
DB_PORT: 15000
my.cnf — die Listen-Adresse und Performance-Einstellungen von MySQL. Liegt die Datenbank lokal, belasse bind-address = 127.0.0.1; halte auf kleinen VPS-Instanzen innodb_buffer_pool_size im Verhältnis zu deinem RAM angemessen. Stelle außerdem sicher, dass IP/Port in der serverinfo.py des Clients exakt mit der CONFIG auf dem Server übereinstimmt.
Berechtigungen und erster Start
Die Binaries starten nicht, wenn sie nicht ausführbar sind. Erteile den Binaries db und game Ausführungsrechte:
cd /usr/home/metin2
chmod +x db/db
chmod +x game/channel1/game
# und etwaige Startskripte:
chmod +x *.sh
Die Startreihenfolge ist wichtig: zuerst der db core, dann der game core. Der game core kann sich nicht verbinden, bevor der db core seine MySQL-Verbindung geöffnet hat und auf seinem Port lauscht.
# 1) den db core starten
cd /usr/home/metin2/db
./db &
# 2) ein paar Sekunden warten, dann den game core starten
cd /usr/home/metin2/game/channel1
./game &
Um die Ausgabe zu verfolgen, sieh dir die Dateien tail -f syserr und tail -f syslog an. Prüfe mit ps aux | grep -E 'db|game', ob die Prozesse tatsächlich laufen, und kontrolliere die lauschenden Ports mit sockstat -4 -l. An diesem Punkt kannst du deinen Client auf die Server-IP richten und dich mit dem Testkonto anmelden.
Häufig gestellte Fragen
Der Server startet, aber der Client verbindet sich nicht — warum?
Fast immer liegt es an einer Netzwerkeinstellung. BIND_IP in CONFIG steht eventuell noch auf 127.0.0.1, die serverinfo.py des Clients zeigt auf die falsche IP/Port, oder die Firewall blockiert Ports wie 13001/15000. Bestätige mit sockstat -4 -l auf dem Server, dass die Ports tatsächlich abgehört werden.
Der db core gibt den Fehler „can't connect to MySQL" aus.
Benutzername, Passwort oder Datenbanknamen in db/conf.txt sind falsch. Versuche, dich manuell mit mysql -u root -p account zu verbinden; schlägt das fehl, liegt das Problem nicht am Core, sondern am MySQL-Benutzer oder seinen Rechten.
Laufen FreeBSD Server Files auf meinem Linux-VPS?
Nein. Für FreeBSD kompilierte Binaries laufen nicht direkt auf einem Linux-Kernel. Installiere entweder die von den Dateien geforderte FreeBSD-Version oder verwende ein für Linux kompiliertes Paket; die Übereinstimmung von Architektur und Version ist zwingend.
Bei der Installation festgefahren? Ich arbeite seit Jahren mit der Installation von Metin2 Server Files, der Quest/Lua-Bearbeitung und der VPS-Optimierung. Um deinen Server von Grund auf aufzusetzen oder eine bestehende Installation abzusichern, nimm Kontakt mit mir auf.