Het installeren van Metin2 server files is de eerste en meest cruciale stap die een lege VPS verandert in een werkende gameserver. In deze gids loop ik vanaf nul door hoe je de bestanden naar de server uploadt, de juiste permissies instelt, de MySQL-databases importeert, CONFIG en my.cnf configureert en de processen db en game (core) voor het eerst start. Omdat de meeste klassieke server files-pakketten worden geleverd met binaries gecompileerd voor FreeBSD, volgen mijn voorbeelden een installatie op basis van FreeBSD.
Vereisten en het juiste besturingssysteem kiezen
Zorg dat je voor je begint het volgende hebt:
- Een VPS met root-toegang (oudere server files vereisen meestal FreeBSD en 32-bit binaries; kies de versie die jouw bestanden vragen).
- Een SSH- en SFTP-client: PuTTY + WinSCP of FileZilla.
- Een MySQL/MariaDB-server (meestal meegeleverd in het pakket of geïnstalleerd via ports).
- Een databaseclient: HeidiSQL of Navicat.
- Het server files-archief (meestal een
.tar.gz) en de bijbehorende client.
De meest voorkomende fout is een OS-architectuur gebruiken die niet compatibel is met de binaries. Je kunt een game-binary die voor FreeBSD is gecompileerd niet draaien op Linux; de architectuur en versie moeten overeenkomen.
De bestanden naar de server uploaden
Het archief rechtstreeks naar de server uploaden is veel sneller dan elk bestand afzonderlijk via SFTP overzetten. Verbind via SSH en pak het archief uit in de doelmap:
cd /usr/home
mkdir -p metin2 && cd metin2
# Upload het archief naar deze map met WinSCP/FileZilla, daarna:
tar -xzvf serverfiles.tar.gz
Een typische mapstructuur ziet er zo uit:
/usr/home/metin2/db/— database core (db core),conf.txt/usr/home/metin2/game/— game core, kanaalmappen (channel1,channel2...)/usr/home/metin2/share/— gedeelde data (proto, mob, item)
Vergeet na het uploaden niet de bestandseigendom te corrigeren; als je als root hebt uitgepakt, draag het over aan de gebruiker die de server draait:
chown -R metin2:metin2 /usr/home/metin2
De MySQL-databases importeren
Metin2 gebruikt meerdere databases. Het meest voorkomende schema bestaat uit deze vier:
- account — accounts en inloggegevens
- player — personages, items, quests, guild-data
- common — verboden woorden, GM-lijst, instellingen
- log — in-game logs
Maak eerst de lege databases aan en importeer daarna de .sql-dumps. Vanaf de commandoregel:
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
Wil je liever niet met de commandoregel werken, open dan een SSH-tunnel met HeidiSQL of Navicat en importeer elk .sql-bestand in de bijbehorende database via "Run SQL File / Execute". Vergeet na het importeren niet je eigen account als GM toe te voegen aan de tabel common.gmlist; anders heb je geen toegang tot in-game commando's.
Om een testaccount te maken, voeg je een rij toe aan account.account. De meeste server files slaan het wachtwoord op met de functie password():
INSERT INTO account.account (login, password, social_id, email)
VALUES ('test', password('1234'), '1111111', 'test@local');
conf.txt, CONFIG en my.cnf configureren
Zonder juiste netwerkinstellingen kan de client geen verbinding maken met de server. Drie bestanden zijn cruciaal.
db/conf.txt — bepaalt hoe de db core verbinding maakt met MySQL. Pas de gebruikersnaam, het wachtwoord en de databasenamen aan op jouw installatie:
SQL_ACCOUNT: localhost account root WACHTWOORD
SQL_PLAYER: localhost player root WACHTWOORD
SQL_COMMON: localhost common root WACHTWOORD
SQL_HOTBACKUP: localhost log root WACHTWOORD
PLAYER_SQL_DIRECT: 1
game/<kanaal>/CONFIG — bevat het IP, de poort en het kanaalnummer van elk kanaal. Stel BIND_IP in op het publieke IP van de VPS; als je 127.0.0.1 laat staan, kan niemand van buitenaf 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 — het luisteradres en de prestatie-instellingen van MySQL. Als de database lokaal staat, laat bind-address = 127.0.0.1 staan; houd op kleine VPS-instances innodb_buffer_pool_size redelijk in verhouding tot je RAM. Zorg er ook voor dat het IP/poort in de serverinfo.py van de client exact overeenkomt met de CONFIG op de server.
Permissies en de eerste start
De binaries starten niet als ze niet uitvoerbaar zijn. Geef de binaries db en game uitvoerrechten:
cd /usr/home/metin2
chmod +x db/db
chmod +x game/channel1/game
# en eventuele startscripts:
chmod +x *.sh
De startvolgorde is belangrijk: eerst de db core, daarna de game core. De game core kan geen verbinding maken voordat de db core zijn MySQL-verbinding heeft geopend en op zijn poort begint te luisteren.
# 1) start de db core
cd /usr/home/metin2/db
./db &
# 2) wacht een paar seconden en start de game core
cd /usr/home/metin2/game/channel1
./game &
Volg de output via de bestanden tail -f syserr en tail -f syslog. Controleer met ps aux | grep -E 'db|game' of de processen echt draaien en bekijk de luisterende poorten met sockstat -4 -l. Op dit punt kun je je client naar het server-IP wijzen en inloggen met het testaccount.
Veelgestelde vragen
De server start, maar de client maakt geen verbinding — waarom?
Het is bijna altijd een netwerkinstelling. BIND_IP in CONFIG staat mogelijk nog op 127.0.0.1, de serverinfo.py van de client wijst naar het verkeerde IP/poort, of de firewall blokkeert poorten zoals 13001/15000. Bevestig met sockstat -4 -l op de server dat de poorten echt worden afgeluisterd.
De db core geeft een "can't connect to MySQL"-fout.
De gebruikersnaam, het wachtwoord of de databasenamen in db/conf.txt zijn onjuist. Probeer handmatig te verbinden met mysql -u root -p account; lukt dat niet, dan ligt het probleem niet bij de core maar bij de MySQL-gebruiker of zijn rechten.
Werken FreeBSD server files op mijn Linux-VPS?
Nee. Binaries die voor FreeBSD zijn gecompileerd draaien niet rechtstreeks op een Linux-kernel. Installeer de FreeBSD-versie die de bestanden vereisen, of gebruik een pakket dat voor Linux is gecompileerd; de architectuur en versie moeten overeenkomen.
Vastgelopen tijdens de installatie? Ik werk al jaren met het installeren van Metin2 server files, quest/Lua-bewerking en VPS-optimalisatie. Om je server vanaf nul op te zetten of een bestaande installatie te versterken, neem contact met me op.