Fiecare parte a serverului Metin2 (login, canale, baza de date) își citește setările dintr-un fișier text numit `CONFIG`. Dacă înțelegi câteva rânduri din el, poți rezolva singur multe probleme de tipul „nu se conectează” sau „un canal nu pornește”. În această lecție le luăm pe rând.
CONFIG spune fiecărei părți a jocului pe ce „ușă” (port) ascultă, ce hărți are și cum ajunge la baza de date. Două părți nu au voie să folosească același port.Ce e un port, pe înțelesul tuturor
Gândește-te la server ca la un bloc cu multe apartamente. IP-ul e adresa blocului, iar portul e numărul apartamentului. Loginul stă la un apartament, canalul 1 la altul, canalul 2 la altul. Clientul jucătorului trebuie să știe și adresa, și numărul apartamentului.
Exemplu de CONFIG, explicat rând cu rând
Acesta e un exemplu dintr-un pachet des folosit (canalul 1). Parola e ascunsă cu ***:
CHANNEL: 1
HOSTNAME: first
PORT: 13000
P2P_PORT: 14000
DB_ADDR: 127.0.0.1
DB_PORT: 15000
MAP_ALLOW: 1 4 5 6 3 23 43 112 107 67 68 72 208 302 304
PLAYER_SQL: 127.0.0.1 metin2 *** player
COMMON_SQL: 127.0.0.1 metin2 *** common
LOG_SQL: 127.0.0.1 metin2 *** log
MAX_LEVEL: 105| Rând | Ce înseamnă |
|---|---|
CHANNEL: 1 | Acest proces face parte din canalul 1 (CH1). |
HOSTNAME: first | Un nume dat procesului, ca să-l recunoști în jurnale. |
PORT: 13000 | „Ușa” pe care intră jucătorii în acest canal. |
P2P_PORT: 14000 | „Ușa” prin care procesele jocului vorbesc între ele (nu pentru jucători). |
DB_ADDR / DB_PORT | Unde găsește programul db al jocului (aici: același server, portul 15000). |
MAP_ALLOW | Ce hărți încarcă acest proces (numerele hărților). |
PLAYER_SQL etc. | Adresa MySQL, utilizatorul, parola și numele bazei de date. |
MAX_LEVEL | Nivelul maxim al personajelor. |
Pachetul tău poate avea mai multe sau mai puține rânduri. Nu te speria de cele pe care nu le recunoști: nu le modifica dacă nu știi ce fac.
Ce porturi are un server Metin2
Un exemplu de împărțire, din același pachet (la tine pot fi alte numere):
| Parte | Port (exemplu) | Cine se conectează |
|---|---|---|
auth (login) | 11000 | Jucătorii, la login |
| CH1 | 13000, 13001… | Jucătorii |
| CH2 | 13010… | Jucătorii |
db al jocului | 15000 | Doar procesele jocului |
| P2P | 14000… | Doar procesele jocului |
| MySQL | 3306 | Doar serverul însuși |
Regulă importantă: jucătorii au nevoie doar de porturile pentru login și canale. Porturile db, P2P și MySQL trebuie să rămână închise pentru internet. Așa e mult mai sigur.
Cum găsești toate fișierele CONFIG
find /usr/home -name CONFIGVei vedea câte un CONFIG pentru auth și pentru fiecare bucată a fiecărui canal. Setările bazei de date pentru programul db sunt de obicei în alt fișier, db/conf.txt.
Cum vezi ce porturi sunt deschise acum
Cu serverul pornit, scrie:
sockstat -4 -lComanda afișează programele care „ascultă” și pe ce port. Ar trebui să regăsești porturile din CONFIG. Dacă un port din CONFIG lipsește din listă, acel proces nu a pornit: citește-i jurnalul syserr.
Cum schimbi o setare în siguranță
- Fă o copie a fișierului
CONFIG: în WinSCP îl tragi pe calculator. - Deschide-l cu dublu-click în WinSCP (sau cu Notepad++).
- Schimbă un singur rând.
- Salvează.
- Repornește partea respectivă (sau tot serverul) și verifică
syserr.
Nu schimba porturile „din plictiseală”. Dacă schimbi portul unui canal, trebuie să-l schimbi și în client, altfel jucătorii nu mai intră pe acel canal.
Greșeli des întâlnite
- Același port la două procese. Al doilea nu pornește și scrie
Address already in use. Fiecare proces trebuie să aibă porturile lui. - Parola MySQL schimbată doar într-un loc. Trebuie schimbată în toate fișierele care o conțin.
- O hartă trecută la două procese ale aceluiași canal. Poate da erori ciudate. Fiecare hartă se încarcă o singură dată pe canal.
- Ai deschis portul MySQL pentru internet. Închide-l: jocul nu are nevoie de asta.
Întrebări frecvente
Pot avea 6 canale?
Da, dacă procesorul și memoria serverului duc. Fiecare canal nou are nevoie de propriile porturi și trebuie adăugat și în client.
De ce un canal apare „offline” în client, deși merge?
De obicei portul din client nu e același cu cel din CONFIG, sau portul e blocat de firewall.
Ce e 127.0.0.1?
Înseamnă „acest server”. Când MySQL e pe același calculator cu jocul, adresa lui este 127.0.0.1.
Ce urmează
Lecția următoare: cum conectezi clientul Metin2 la serverul tău. Toate lecțiile sunt în lista tutorialelor Metin2.
Server Metin2 gata de joc
Găzduire Metin2 în România, cu instalare de serverfiles, bază de date MySQL și protecție Anti-DDoS inclusă.