Guia passo a passo para subir servidor privado de RuneScape
Servidores de jogos · Por Kevin Marcondes · Publicado em · Atualizado em · 9 min de leitura
Este guia mostra como subir um servidor privado de RuneScape com foco técnico e segurança. Você aprenderá a preparar o ambiente, configurar banco de dados, ajustar portas e automatizar o processo. Use apenas emuladores e assets com licença adequada. Verifique termos de uso e leis aplicáveis antes de expor o servidor publicamente.
Pré‑requisitos e observações legais
Subir um servidor envolve responsabilidade técnica e legal. Use somente emuladores open source e assets com licença compatível. Não distribua ou utilize código, cliente ou dados proprietários sem permissão. Confira termos do jogo e sua legislação local.
Requisitos sugeridos: Linux (VPS ou máquina local), 2+ GB de RAM, CPU de múltiplos núcleos, porta 43594 liberada, banda estável, conhecimento básico de Linux e SQL. Um domínio e HTTPS ajudam, mas são opcionais.
Decida onde hospedar: VM dedicada ou container. Para entender prós e contras entre Docker e VMs em alta disponibilidade, veja o comparativo em Docker vs máquinas virtuais.
Para produção, registre logs estruturados e rastreáveis. Este guia de logs em JSON e correlação ajuda a diagnosticar problemas em tempo real.
- Sistema operacional: Ubuntu/Debian ou similar
- Acesso sudo/SSH
- Java (OpenJDK), Git e MariaDB/MySQL
- Porta 43594 disponível (TCP)
- Conhecimentos básicos de rede e firewall
1) Preparar o ambiente e obter a base do servidor
Instale Java, Git e um servidor de banco de dados. Crie um usuário de sistema para rodar o serviço. Baixe uma base de servidor legalmente licenciada. Prefira repositórios com licença clara e sem dependência de arquivos proprietários.
Crie também diretórios separados para dados e logs. Isso simplifica backup e atualização sem perder configurações.
# Atualize pacotes e instale dependências
sudo apt update && sudo apt -y install default-jdk git mariadb-server ufw
# (Opcional) Criar usuário dedicado
sudo useradd -r -m -d /opt/rsps -s /usr/sbin/nologin rsps
sudo mkdir -p /opt/rsps/{app,data,logs}
sudo chown -R rsps:rsps /opt/rsps
# Obter um servidor com licença adequada (exemplo genérico)
cd /opt/rsps/app
sudo -u rsps git clone https://example.com/your-rsps.git .
# Se o projeto usar Gradle/Maven, garanta permissões
sudo -u rsps chmod +x ./gradlew || true
2) Banco de dados e configuração inicial
Crie um banco dedicado com usuário e senha fortes. Evite contas root na aplicação. Anote host, porta, nome do banco, usuário e senha. Você usará esses dados no arquivo de configuração do servidor.
Alguns emuladores suportam SQLite. Para múltiplos jogadores, MariaDB/MySQL costuma escalar e facilitar administração.
-- Acesse o MySQL/MariaDB como root
-- sudo mysql -u root
CREATE DATABASE rsps CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'rsps'@'localhost' IDENTIFIED BY 'senha-muito-forte-aqui';
GRANT ALL PRIVILEGES ON rsps.* TO 'rsps'@'localhost';
FLUSH PRIVILEGES;
-- (Opcional) Tabela de contas mínima de exemplo
-- Ajuste ao seu esquema real do emulador
CREATE TABLE IF NOT EXISTS rsps.accounts (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(32) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
rights INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Crie uma conta de teste (substitua por hash seguro)
INSERT INTO rsps.accounts (username, password_hash, rights)
VALUES ('admin', '{hash-bcrypt-ou-similar}', 2);
3) Configurar o servidor (porta, banco e variáveis)
Ajuste o arquivo de configuração do servidor. Defina host 0.0.0.0 para aceitar conexões externas, porta de jogo 43594 e credenciais do banco. Use variáveis de ambiente para evitar senhas em texto plano no repositório.
Salve o arquivo na pasta de configuração do projeto. Consulte a documentação do seu emulador para chaves adicionais (mundo, XP, drop rate, etc.).
# config.properties (exemplo genérico)
# Rede
server.host=0.0.0.0
server.port=${RSPS_PORT:43594}
# Banco de dados
db.driver=mysql
db.host=${DB_HOST:127.0.0.1}
db.port=${DB_PORT:3306}
db.name=${DB_NAME:rsps}
db.user=${DB_USER:rsps}
db.pass=${DB_PASS:troque-esta-senha}
# Logs
log.level=INFO
log.dir=/opt/rsps/logs
# Jogo (valores ilustrativos; ajuste ao seu emulador)
game.world.id=1
game.world.name=Community-World
game.player.save.interval=60
4) Build, execução local e variáveis de ambiente
Faça o build e rode em modo local primeiro. Exporte variáveis de ambiente para manter segredos fora do arquivo. Se o projeto usa Gradle, utilize o wrapper. Se usar Maven, ajuste os comandos abaixo.
Monitore o console para mensagens de inicialização e eventuais erros de banco ou porta ocupada.
# Variáveis de ambiente (substitua os valores)
export DB_HOST=127.0.0.1
export DB_PORT=3306
export DB_NAME=rsps
export DB_USER=rsps
export DB_PASS='senha-muito-forte-aqui'
export RSPS_PORT=43594
# Build e execução (Gradle)
cd /opt/rsps/app
sudo -u rsps ./gradlew clean build
sudo -u rsps java -Xms512m -Xmx1024m -jar build/libs/rsps-server.jar
# (Alternativa Maven)
# sudo -u rsps mvn -q -DskipTests package
# sudo -u rsps java -Xms512m -Xmx1024m -jar target/rsps-server.jar
5) Firewall, NAT e teste de acesso externo
Abra a porta do jogo no firewall. Em redes residenciais, faça port forwarding no roteador para a porta 43594 TCP. Teste de fora da sua rede ou usando outra conexão. Se usar cloud, verifique regras de segurança no provedor.
Evite expor serviços de administração na internet. Restrinja IPs quando possível.
# Habilitar UFW e liberar a porta do jogo
sudo ufw allow 43594/tcp
sudo ufw enable
sudo ufw status
# Teste a porta externamente (de outra máquina)
nc -vz SEU_IP_PUBLICO 43594 || telnet SEU_IP_PUBLICO 43594
# Verifique localmente se está escutando
ss -lntp | grep 43594 || netstat -lntp | grep 43594
6) Logs, rotação e serviço como systemd
Rodar em primeiro plano não é prático. Crie um serviço systemd para iniciar no boot e registrar logs. Faça rotação por tamanho ou data. Use journalctl para acompanhar eventos.
Para elevar a robustez do deploy e reduzir quedas, veja a página de auditoria de processos de deploy.
# /etc/systemd/system/rsps.service
[Unit]
Description=RSPS Server
After=network.target mariadb.service
[Service]
User=rsps
WorkingDirectory=/opt/rsps/app
Environment=DB_HOST=127.0.0.1
Environment=DB_PORT=3306
Environment=DB_NAME=rsps
Environment=DB_USER=rsps
Environment=DB_PASS=senha-muito-forte-aqui
Environment=RSPS_PORT=43594
ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/rsps/app/build/libs/rsps-server.jar
Restart=on-failure
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
# Ativar e verificar
# sudo systemctl daemon-reload
# sudo systemctl enable --now rsps
# journalctl -u rsps -f
7) Backups, atualização e manutenção segura
Faça backup periódico do banco e dos diretórios de dados e configuração. Teste a restauração. Atualize o servidor com planejamento e janela de manutenção. Reiniciar o serviço desconecta jogadores em andamento.
Registre métricas e alertas. Isso antecipa incidentes e ajuda a escalar o ambiente quando a base de jogadores cresce.
# Backup do banco (substitua credenciais) — armazene fora do servidor
mysqldump -u rsps -p' senha-muito-forte-aqui ' rsps > /backups/rsps-$(date +%F).sql
# Backup de configs e dados
sudo tar -czf /backups/rsps-data-$(date +%F).tar.gz /opt/rsps/data /opt/rsps/app/config.properties
# Atualização (parada curta):
# 1) Anuncie, 2) Pare serviço, 3) Pull e build, 4) Inicie
sudo systemctl stop rsps
cd /opt/rsps/app && sudo -u rsps git pull && sudo -u rsps ./gradlew clean build
sudo systemctl start rsps && sudo systemctl status rsps --no-pager
Como confirmar que funcionou e solução de problemas
Confirmações rápidas: o processo está escutando na porta 43594; logs mostram “Server started” sem erros de DB; clientes conseguem autenticar a partir de outra rede. Se algo falhar, investigue uma causa por vez.
Problemas comuns incluem porta em uso, versão do Java incompatível, credenciais incorretas e firewall/NAT bloqueando tráfego. Ajuste e reinicie o serviço entre tentativas.
- Porta em uso: altere RSPS_PORT ou finalize o processo que ocupa 43594.
- Java: alinhe versão necessária do emulador (8, 11 ou 17) e PATH.
- Banco: teste conexão com cliente mysql e revise grants/host de conexão.
- Firewall/NAT: confirme regra no host e redirecionamento no roteador.
- Logs: habilite DEBUG temporariamente para detalhar stack traces.
# Checar se o serviço está ativo e ouvindo
systemctl status rsps --no-pager
ss -lntp | grep 43594 || netstat -lntp | grep 43594
# Ver logs ao vivo
journalctl -u rsps -f
# Testar conexão ao banco
mysql -u rsps -p -h 127.0.0.1 -P 3306 -e "SELECT 1"
Perguntas frequentes
É legal rodar um servidor privado de RuneScape?
Depende das licenças e dos arquivos utilizados. Use apenas emuladores e assets com licença compatível e que não dependam de código, cliente ou dados proprietários. Verifique os termos do jogo e a legislação local antes de expor o servidor publicamente.
Qual porta devo liberar para o servidor?
Em muitos emuladores RSPS, a porta padrão de jogo é 43594/TCP. Você pode alterá‑la no arquivo de configuração. Lembre de abrir a porta no firewall do sistema e, se necessário, configurar o redirecionamento de porta no roteador.
Posso rodar o servidor em Docker?
Sim, muitos emuladores funcionam em containers. Crie uma imagem com Java, adicione o app, mapeie volumes para dados e logs, e publique a porta do jogo. Avalie prós e contras de containers frente a VMs para o seu caso de uso.
Que recursos de máquina são recomendados?
Para testes, uma VM pequena com 2 GB de RAM pode bastar. Para grupos maiores, aumente CPU/RAM e priorize disco SSD e baixa latência de rede. Monitore uso real de CPU, memória e I/O para dimensionar com base em dados.
Como proteger o servidor contra ataques?
Use firewall restritivo, atualize o sistema, limite tentativas de login, rode com usuário sem privilégios, aplique TLS onde couber e monitore logs e métricas. Considere proteção DDoS do provedor e mantenha backups atualizados.
Como criar uma conta de administrador?
Depende do esquema do seu emulador. Em geral, crie o usuário normalmente e altere o campo de permissões (rights) no banco para um nível administrativo. Use hashes seguros de senha e acesse a administração somente por IPs confiáveis.
Precisa de ajuda técnica para estabilizar seu servidor?
Podemos revisar logs, automatizar deploy, configurar monitoramento e orientar boas práticas de segurança e backup para o seu projeto.
Falar com o autorVeja também
- tutorial: implementar Canary releases com Traefik em Docker Compose usando headers e weight routing para deploys graduais de aplicações PHP
- Tutorial: configurar HAProxy com Let's Encrypt e healthchecks para balanceamento de tráfego entre containers Docker em VPS (passo a passo)
- Tutorial prático: implementar mTLS entre Nginx e microserviços usando smallstep CA em Docker Compose
- Tutorial: configurar cgroup v2 e systemd ResourceControl para limitar CPU, memória e I/O de containers Docker no Debian