Spiego un po' meglio, per i più nabbi che sono più impegnati a perdere tempo che interessati a capire (come il 99% qui):
Il server di gioco vuole sapere qual'è la rete sulla quale deve stare in ascolto per le connessioni e sulla quale deve trasmettere i dati. Ogni computer (anche un server dedicato) è connesso ad una rete LAN/WAN. Il router/modem/switch o comunque il dispositivo (chiamato anche gateway) che consente l'accesso a internet ha anche esso un IP per essere riconosciuto all'interno della rete LAN. Il server di gioco (non ho provato, ma a logica è così) come IP vuole quindi sapere quello del gateway. Per ottenerlo, nella macchina connessa a quella rete LAN (quella che deve contenere il server di gioco) aprite il prompt dei comandi (cmd.exe) e date il comando:
Compariranno le configurazioni per tutte le schede di rete installate sul sistema. Cercate la scheda di rete che vi interessa (quella a cui siete connessi ad internet, potete vederla anche da Pannello di Controllo > Centro Connessioni di Rete e Condivisione) e prendete il campo default gateway...qualcosa del genere:
Codice:
Default Gateway . . . . . . . . . : 192.168.1.1
L'IP del vostro gateway sarà diverso.
La macchina su cui installate il server deve essere Windows Server (consiglio Windows Server 2012 x64). Se volete avviare un Hamachi come dite voi non cambia nulla: basta utilizzare una Virtual Machine (consiglio VMWare Workstation al posto di Oracle VirtualBox) con Windows Server e utilizzare come IP quello del gateway della VPN creata da hamachi (di solito: il vostro IP sulla VPN Hamachi ma terminante con .100). In ogni caso comunque:
- Sconsiglio l'uso di un sistema che non sia Windows Server (come ad esempio Windows 7 o Windows 8: queste sono le edizioni client di Windows, non sono fatte per far girare dei server e rendono il server facilmente bucabile).
- Sconsiglio l'uso del proprio sistema operativo sul quale si lavora normalmente come server (se vi viene bucato, l'attacker avrà accesso a tutti i vostri dati sul sistema o comunque una buona parte, e potrebbe essere un pericolo per le vostro informazioni e privacy).
Su un server dedicato comunque, ovviamente, deve sempre esserci Windows Server.
Allora una volta ottenuto l'IP del gateway mettiamolo un attimo da parte: dobbiamo installare MySQL (guai a voi se installate XAMPP...vi taglio tutte le XAMPE). Il sito è questo:
MySQL :: The world's most popular open source database e sul sito trovate anche l'installer per Windows.
Una volta installato MySQL su Windows Server e configurato a dovere (c'è la documentazione di MySQL per questo) inserite l'IP del gateway nel config del programma condiviso da AlphaAttack, oppure lo inserite direttamente nel database MySQL (utilizzando un client MySQL come Navicat o quello schifo di HeidiSQL). Nel database dovrebbero esserci 4 record in cui inserire l'IP (almeno a quanto ho visto reversando quel coso di FagNetPortable).
Per aprire le porte che servono (sicuramente la 3306 per MySQL e la 28002 per il server di gioco, e poi forse altre ma non ho controllato: dopo guardo) basta aggiungere delle regole al firewall di Windows Server: l'interfaccia è semplice e non dovrebbero esserci problemi.
Non installate altre porcate (come XAMPP) sul server oltre all'essenziale a meno che non volete farvi bucare facilmente. E usate password complesse, per tutto.
UPDATE:
Il codice .NET che usa FagNetPortable è questo:
Codice:
command.CommandText = "DELETE FROM server"; command.ExecuteNonQuery();
command.CommandText = string.Format("INSERT INTO server(ID, Type, Name, PlayerLimit, IP, Port) VALUES('1', '1', 'FagNet', '1000', '{0}', '28008')", this.txtIP.Text);
command.ExecuteNonQuery();
command.CommandText = string.Format("INSERT INTO server(ID, Type, Name, PlayerLimit, IP, Port) VALUES('1', '2', 'FagNetChat', '1000', '{0}', '28012')", this.txtIP.Text);
command.ExecuteNonQuery();
command.CommandText = string.Format("INSERT INTO server(ID, Type, Name, PlayerLimit, IP, Port) VALUES('1', '4', 'FagNetRelay', '1000', '{0}', '28013')", this.txtIP.Text);
command.ExecuteNonQuery();
command.CommandText = string.Format("INSERT INTO server(ID, Type, Name, PlayerLimit, IP, Port) VALUES('1', '3', 'FagNetNAT', '1000', '{0}', '38915')", this.txtIP.Text);
command.ExecuteNonQuery();
Quindi, le porte da aprire dovrebbero essere:
- 3306 (porta di default di MySQL)
- 28002 (non sono più sicuro di questa, forse è inutile. L'avevo vista in un altro file. Non apritela se il server funziona anche senza)
- 28008 (porta del server di gioco)
- 28012 (porta della chat di gioco)
- 28013 (porta del relay)
- 38915 (porta del NAT per il server. Non so bene a cosa serve: forse per permettere l'uso del server dietro NAT come fa VMWare Workstation)
Ricordo che tutto questo non l'ho provato, vado a logica.