Configuração do servidor de jogo e login do L2: portas, IPs e HexID

Uma configuração correta do servidor de jogo e login se resume a três portas, dois endereços e um arquivo de registro. Todo o resto — rates, drops, horários de cerco — é ajuste fino. Se isso falhar, o servidor parece saudável no console enquanto todos os jogadores travam na tela de login.
Este guia cobre os ajustes que decidem alcance e segurança de contas, com os nomes de arquivo de L2J, L2JMobius e aCis. Ele assume que o servidor já instala, inicia e deixa você entrar localmente; se não, comece por a ordem de instalação.
As três portas e para que serve cada uma
As pessoas confundem isso o tempo todo, e daí saem regras de firewall que abrem a coisa errada:
| Porta | Padrão | Quem conecta | Ajuste |
|---|---|---|---|
| Cliente → login | 2106 | Todos os jogadores, antes da seleção de personagem | LoginserverPort |
| Jogo → login | 9014 | Apenas o seu servidor de jogo | LoginPort |
| Cliente → jogo | 7777 | Todos os jogadores, já no mundo | GameserverPort |
Apenas 2106 e 7777 devem entrar em regra pública de firewall. A porta 9014 é o handshake interno entre seus dois processos Java: expô-la à internet convida registros falsos de servidores de jogo, que é exatamente o que AcceptNewGameServer controla.

Onde fica a configuração em cada pacote
Login e jogo são processos separados com arquivos separados, e nenhum pacote os coloca no mesmo lugar:
- L2J Server: a pasta
configdentro de cada servidor implantado; login e jogo têm a sua, e cada uma traz o própriodatabase.properties. - L2JMobius:
login/config/LoginServer.propertiesegame/config/Server.properties. - aCis:
config/loginserver.propertieseconfig/server.properties, os dois dentro da pasta do gameserver.
Edite com o servidor parado. Os três pacotes leem as propriedades uma vez na inicialização, então mudança feita com o processo rodando é ignorada até o próximo restart — o clássico "arrumei e nada mudou".
Endereço externo contra interno: o que quebra servidores públicos
Duas direções diferentes saem do servidor e elas não são intercambiáveis. O login envia um endereço para jogadores que vêm da internet e outro para jogadores da sua própria LAN, porque um IP público não é roteável de dentro da maioria das redes domésticas.
O aCis deixa isso explícito na configuração de login:
ExternalHostname = 203.0.113.10
InternalHostname = 192.168.1.50
LoginserverHostname = *
LoginserverPort = 2106
O L2JMobius moveu a mesma ideia para um arquivo separado. Copie default-ipconfig.xml para ipconfig.xml e coloque o endereço público no elemento gameserver, deixando as linhas define mapeando as faixas da sua LAN:
<gameserver address="203.0.113.10">
<define subnet="192.168.0.0/16" address="192.168.1.50" />
</gameserver>
Sem ipconfig.xml o servidor adivinha o próprio endereço, o que funciona em VPS com uma interface e falha atrás de NAT ou com duas placas. O sintoma é específico: o servidor aparece na lista do cliente e depois o cliente trava ao abrir a conexão de jogo.
Teste de fora da sua rede, com dados móveis, antes de anunciar data de lançamento. Um teste em LAN nunca exercita o caminho do endereço externo.

HexID, ID de servidor e registro do game server
Um servidor de jogo não é confiável por padrão: ele se registra uma vez e recebe uma identidade. No L2JMobius essa identidade é game/config/hexid.txt, gerada ou solicitada na primeira inicialização. Se você copia a pasta inteira do servidor para uma segunda máquina, copia a identidade também — apague o hexid na cópia e deixe que ela se registre como um novo servidor de jogo.
RequestServerID pede um slot na lista de servidores do cliente (1 = Bartz por padrão) e AcceptAlternateID decide se o login pode entregar outro quando o slot pedido já está ocupado. Para um servidor único, mantenha os padrões.
AcceptNewGameServer é o interruptor que decide se um servidor de jogo desconhecido pode se registrar. O aCis vem com False; o L2JMobius vem com True por conveniência. Em servidor aberto, registre o seu e coloque em False para que nada mais reivindique um slot.
Ajustes de conta para mudar antes do primeiro jogador
Três padrões estão certos em máquina de teste e errados em produção:
AutoCreateAccounts— com ele ativo, qualquer usuário e senha cria conta no primeiro login. Cômodo para testar, péssimo em produção: pula o cadastro, a verificação por e-mail e qualquer antibot que você adicione depois. Deixe false e crie contas pelo site.LoginTryBeforeBan/LoginBlockAfterBan— proteção contra força bruta, em segundos e por IP. O L2JMobius traz 5 tentativas e bloqueio de 900 segundos; o aCis, 10 e 600. Não aperte tanto a ponto de bloquear uma casa com vários jogadores.ShowLicence— mantenha ativo. O aCis recomenda o padrão; mostra a janela de licença no login e custa um clique.
No lado do jogo, MaximumOnlineUsers e os limites de conexão da configuração do flood protector (MaxConnectionPerIP, FastConnectionLimit) limitam quanto abuso um endereço pode gerar. Dimensione pela sua população real, não pelo máximo teórico do pacote.
Revisões de protocolo do cliente
O L2JMobius aceita uma lista de revisões de protocolo, por exemplo AllowedProtocolRevisions = 603;606;607;610. Um cliente cuja revisão não está nessa lista cai no login com erro de protocolo ou, em alguns clientes, com falha genérica que os jogadores leem como senha errada. Se alguém relatar "senha incorreta" em uma conta que você sabe correta, verifique esta linha e a pasta system do cliente antes de resetar qualquer coisa.
Não adicione revisões que você não testou. Cada uma muda o tratamento de pacotes, e uma revisão suportada pela metade gera falhas difíceis de rastrear até este ajuste.
Verificação de alcance em cinco minutos
netstat -anmostra 2106 e 7777 escutando em0.0.0.0, não apenas em127.0.0.1.- O console do login informa o servidor de jogo registrado e sem tentativas repetidas de reconexão.
- Uma máquina fora da sua rede alcança a lista de servidores e entra no mundo.
- O log do servidor de jogo mostra o IP externo que entregou ao cliente.
Se o passo 3 falhar enquanto o 2 passa, o problema é o endereço externo ou o firewall, nunca o banco de dados.
Antes de os jogadores verem a configuração
Quando as conexões funcionam, a próxima falha é um servidor que ninguém encontra. Uma configuração correta sem geodata gera jogadores caindo pelo terreno no primeiro dia, então termine geodata antes de abrir. Depois coloque o servidor na frente das pessoas: uma listagem gratuita no L2Calendar leva minutos e coloca o servidor nas páginas de crônica e rate que as pessoas consultam — adicione seu servidor. A colocação paga fica acima da lista gratuita e é o caminho rápido para visibilidade: listagem VIP.
