American/Euro Truck Simulator — Como criar servidor dedicado no Linux
Milhões de anos atrás, jogadores de American/Euro Truck Simulator costumavam instalar mods à parte para poderem jogar online — as vezes tinha uma certa chatice envolvendo TruckersMP sendo distribuído em links suspeitos. Com o lançamento do Comboio (em inglês Convoy — sistema de servidores para o ATS/ETS), as coisas ficaram muito simples, sendo possível hospedar partidas mesmo sem a criação de servidores dedicados.
O contra do comboio quando lançou era que se tornava obrigatório ter que hospedar e gerenciar a partida por conta própria. Ou seja, se você criou a partida, você tinha que estar lá. Se não, não teria partida.
Isso continuou até começo de Dezembro de 2022, época em que a SCS Software liberou o suporte para servidores dedicados no ATS e no ETS. O suporte veio tanto para Linux quanto pra Windows.
Neste tutorial, vamos criar um servidor de American Truck Simulator (o mesmo processo vale para o Euro Truck) no Debian 11.
Para este tutorial, vou já supor algumas coisas:
- O sistema é recém-instalado;
- Você está usando um VPS ou alguma máquina virtual doméstica;
- Você está com o modo developer/console habilitado no ATS/ETS;
- Você tem conhecimentos básicos no terminal — meu caso (não sou usuário avançado);
- Você tem paciência.
Abrir portas da conexão
- Conexão doméstica: você terá que acessar o roteador e abrir as portas 27015/27016. Para cada roteador, é um tipo de acesso específico então não dá pra listar todos aqui.
- Servidor Dedicado (VPS): nesse caso, as empresas de hospedagem geralmente não bloqueiam portas (no caso do Debian, se o sistema é recém-instalado, ele não vem com firewall). Em todo caso, vou explicar como liberar essas portas:
-
- Geralmente o firewall que vem pré-instalado responde pelo comando
ufw
. Para saber se ele está ativo, digiteufw status
. Se o comando retornar Status: inactive, signific que oufw
funciona, mas não está ativado. Nesse caso não vai ter nenhum bloqueio de portas. - No caso do
ufw
estar ativado, use o comandoufw allow 27015
eufw allow 27016
. O primeiro vai permitir que os jogadores se conectem ao servidor, o segundo vai permitir que o servidor apareça na lista de servidores do comboio. - Pra checar se as portas necessárias estão abertas, use o comando
ufw status
.
- Geralmente o firewall que vem pré-instalado responde pelo comando
-
Instalando dependências
Antes de tudo, é necessário instalar algumas dependências para poder rodar o servidor dedicado — no caso do Debian, é necessário modificar a lista de repositórios para poder baixar dependências adicionais para este tutorial em específico.
Vá ao diretório etc/apt usando os seguintes comandos cd /
e depois cd etc/apt
. Agora execute o comando nano sources.list
para poder editar o arquivo. Em seguida, cole os seguintes repositórios no arquivo:
- deb http://deb.debian.org/debian bullseye main contrib non-free
- deb-src http://deb.debian.org/debian bullseye main contrib non-free
- deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
- deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
- deb http://deb.debian.org/debian bullseye-updates main contrib non-free
- deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free
Agora dê Ctrl + X
e em seguida Y
e depois ENTER
para salvar as alterações.
apt install sudo -y
. Feito isso, vamos instalar as dependências. Para isso, rode os seguintes comandos:
sudo apt update
sudo apt install software-properties-common
sudo dpkg --add-architecture i386
sudo apt install lib32gcc-10-dev lib32stdc++6 libc6-i386 libcurl4-gnutls-dev:i386 libsdl2-2.0-0:i386
Agora vamos criar um usuário específico para poder administrar os arquivos referentes ao servidor de American Truck Simulator.
Criando usuário e alterando permissões
Ainda logado como root, você vai criar um usuário para ser o diretório de arquivos do servidor dedicado do American Truck Simulator. Para isso, rode os seguintes comandos:
sudo useradd -m ats
(Este comando cria um usuário de nome ats);sudo passwd ats
(Este comando vai definir a senha do usuário). Você pode escolher a senha que quiser, porém recomendo gerar uma senha forte. Geralmente uso o gerador do site LastPass;- Por último e não menos importante, o comando
sudo usermod -aG sudo ats
. Este comando vai dar privilégios de administrador a usuários que não sejam root.
Vamos logar no sistema usando o usuário que acabamos de criar. Para isso, use o comando sudo -u ats -s
e em seguida rodar os seguinte comando:
sudo apt install steamcmd
(este comando vai instalar o steamcmd, que por sua vez é usado para baixar os arquivos necessários do servidor);cd
(se você estiver no mesmo embalo que o meu, provavelmente no seu terminal estará mostrando a pasta /root, então esse comando se torna necessário para podermos ir para a pasta onde iremos instalar os arquivos do servidor). Feito isso, sua tela até o momento será algo mais ou menos assim:
- Após isso, vamos criar um link para o steamcmd na pasta do usuário que criamos para o servidor. Para isso, basta executar o comando:
sudo ln -s /usr/games/steamcmd /home/ats/steamcmd
Baixando arquivos do servidor
Agora vamos baixar os arquivos necessários para rodar o servidor. Execute os seguintes comandos:
./steamcmd
. Este comando vai rodar uma instância do steamcmd e a partir dele vamos criar um diretório para podermos baixar os arquivos do servidor;- Agora rode o comando
force_install_dir ./server
. Este comando vai criar uma pasta com o nome de ats dentro do usuário ats; - Execute o comando
logon anonymous
. Este comando vai permitir logar nos servidores da Valve para podermos baixar os arquivos referentes ao servidor dedicado do ATS; - Rode o comando
app_update 2239530 validate
. Este comando vai baixar os arquivos e checar se tudo está certo com eles. Se tudo correu bem, o resultado vai ser: Success! App ‘2239530’ fully installed.
1948160
. exit
pra gente poder sair do steamcmd e ir pra parte final de instalação do servidor
Configurando o servidor
Primeiro vamos executar o script responsável por rodar o servidor para que pastas e arquivos necessários possam ser criados. Para isso, vamos ao diretório onde está o script usando o seguinte comando:
cd .local/share/Steam/steamcmd/server/bin/linux_x64
./server_launch.sh
Esse comando vai rodar o script do servidor e vai fechar;
Após isso, abra o American Truck Simulator e no console digite export_server_packages
. Agora vá na pasta de Documentos do seu computador e procure pela pasta do American Truck Simulator. Dos arquivos que estão dentro desta pasta, vamos pegar os 2 seguintes:
- server_packages.dat
- server_packages.sii
Em seguida, vamos conectar no FTP do servidor e ir até a pasta /home/ats/.local/share/American Truck Simulator
. No caso do FileZilla, é só colar na barra de endereços (Remote Site) que ele abre o diretório direto. Jogue esses dois arquivos lá.
Após isso, vamos configurar algumas informações do servidor (tais como nome, descrição e moderação):
- Aproveite que está no FTP e edite o arquivo
server_config.sii
. Lá você vai poder configurar o nome do servidor na linha lobby name, a descrição na linha description e a mais importante pra nós no momento é a linha de moderação. Esta é a linha de nome moderators_list. Essa você vai modificar da seguinte forma:-
- Você vai substituir o
moderator_list: 0
pormoderator_list: 1
. - Abaixo você vai colocar:
moderator_list[0]: 1234567890
onde1234567890
é sua ID da Steam em steamID64. Você pode conseguir essa informação neste site.
- Você vai substituir o
-
Rodando o servidor
Desta vez vamos fazer um pouco diferente. Vamos instalar um pacote para o servidor continuar rodando mesmo após fechar a sessão do terminal.
Execute o seguinte comando:
sudo apt install screen
Agora vamos rodar o servidor:
cd .local/share/Steam/steamcmd/server/bin/linux_x64
screen ./server_launch.sh
O comando screen vai permitir que o servidor de ATS continue funcionando mesmo que você desconecte da seção.
O resultado esperado é mais ou menos isso:
Informações extras
- Caso queira voltar para a “janela” que está rodando o script do servidor, use o comando
screen -r
; - Se você está fazendo o servidor em máquina virtual e sem firewall e mesmo assim o servidor não aparece na lista ou seus amigos não conseguem conectar, existe a possibilidade que seu provedor possa estar bloqueando portas ou fazendo CGNAT. Neste caso não tem muito o que fazer além de entrar em contato com o suporte técnico;
- Existe a possibilidade do servidor cair de vez em nunca. Até o momento da postagem, esse suporte a servidor dedicado para o ATS/ETS é beta, então ainda tem coisas para corrigir;
- Este tutorial é mais manual. Se você procura um jeito mais prático e rápido de fazer servidores para esses jogos, use o LinuxGSM (suporte Debian/Ubuntu e CentOS);
- Você pode também mudar as portas do servidor no
server_config.sii
. Não sei ao certo qual a faixa de portas permitida, porém recomendo algo dentro de 27000 até 27050.
chsh -s /bin/bash
, saia e entre novamente no terminal.Links extras
Com informações: SteamCMD (wiki da Valve voltada a desenvolvedores) e Convoy Dedicated Server Support.
https://idtd.nl/8XZ47