Instalação do SpeedTest (OoklaServer) no Debian 11 Bullseye gerenciado pelo systemd


Neste tutorial iremos aprender a instalar o SpeedTest Server, porém vamos gerenciar o serviço dele pelo systemd, o que eu acho que já deveriam ter feito, ou a ookla já poderia disponibilizar isso via repositório. #FicaDicaOokla

Leia

Requisitos do hardware do servidor Speedtest.
Política de aceitação do servidor Speedtest
Toda Documentação.

Configuração do DNS

No exemplo vou usar o subdomínio teste, no domínio remontti.com.br teste.remontti.com.br, logo é necessário configurar seu subdomínio “testeem seu DNS Server, NÃO USE subdomínio chamado speedtest pois você terá possivelmente seu pedido negado. Exemplo de entradas no DNS para IPv4 (A) e IPv6 (AAAA)

Distribuição utilizada

Debian 11 Bullseye / Instalação Limpa

Pacotes necessários, não esqueça de virar root de forma correta su -

Faça alguns ajustes de kernel para melhorar a performace do servidor:

Adicione ao final:

Carregue para o kernel as novas alterações

Módulos do kernel

TCP Illinois é um algoritmo de controle de congestionamento que utiliza uma combinação de técnicas de controle de congestionamento baseadas em perda e atraso para melhorar o desempenho em redes de alta perda. Ele foi projetado para funcionar bem em ambientes móveis sem fio, onde a perda de pacotes é frequentemente causada por condições de RF em mudança.

TCP Westwood é um algoritmo de controle de congestionamento que utiliza medidas de janela e de banda para detectar congestionamentos em vez de depender da detecção de perda de pacotes, que pode ser menos confiável em ambientes sem fio. Ele foi projetado especificamente para ambientes móveis sem fio e pode ser uma boa opção para melhorar o desempenho em redes sem fio com alta variação de taxa de perda de pacotes.

O TCP-HTCP (Highspeed TCP for large congestion windows) é um algoritmo de controle de congestionamento do protocolo TCP que foi projetado para melhorar o desempenho em conexões de alta velocidade com janelas de congestionamento grandes.

Vamos criar o diretório /usr/local/src/ooklaserver onde ira ficarnossa aplicação OoklaServer.

Vamos baixar nosso script de instalação em /usr/local/src/ooklaserver e executar a instalação.

Please confirm (y/n) > y

Neste momento o servidor ookla já iniciou, acesse em seu navegado http://sub.dominio:8080 e verifique se o mesmo esta rodando> OoklaServer – It worked!

Pare o serviço ooklaserver

Ou (se seu tempo é curto)

Edite o arquivo de configuração OoklaServer

A partir de 2023 IPv6 virou obrigatório, descomente (remova o # da frente) a linha a baixo deixando true.

Descomente a linha e inclua todos seus subidominios para seu domínio ex *.remontti.com.br

Se você desejar visualizar os logs descomente em “# Log to files”. Um arquivo em /usr/local/src/ooklaserver/ooklaserver.log será criado.

Sobreecreva OoklaServer.properties.default com o OoklaServer.properties, para em futuras atualizações (Ocorre automaticamente) ele use como base as suas configurações.

Para que o Ooklaserver seja tratado como um serviço vamos configurar-lo no systemd.

Recarrege o daemon

Verifique o status, nosso serviço ira estar disabled

Vamos deixa-lo enable para subir com o boot do sistema.

Verifique se ficou enabled

Inicie o serviço e verifique seu status se o mesmo ficou active.

Se desejar reinicie o servidor para ver se o serviço ooklaserver carregou no boot!

Ao voltar verifique se o mesmo iniciou.

Certifique-se acessando em seu navegador http://sub.dominio:8080.

O serviço ooklaserver tem um alias com o nome speedtest, então se quiser usar systemctl status speedtest também funiona. 😉

Para verificar a versão use:

Se você realizar o teste agora https://www.ookla.com/pt/host-tester você encontrará 1 erros:
É que você não tem certificado válido, a OoklaServer fala que você pode usar o certifica automatico que ela ira gerar, ao fazer o registro. Nota: Este processo automatizado só começa depois que o servidor foi registrado e revisado por Ookla . Você pode ler aqui mais sobre.

Solução para o certificado

Vamos instalar o Certbot, que irá gerar os certificados com o Let’s Encrypt.

Geramos o certificado para teste.remontti.com.br, lembrando que seu servidor DNS deve estar apontando para o IP Publivo do seu servidor para poder gerar o certificado sem erro.

Reponda: email (null@remontti.com.br), Y, N, Seu Domínio

Os arquivos do certificado foram criados em /etc/letsencrypt/live/SUB.DOMINIO.XXX.XX/ com validade de 90 dias.

Edite o arquivo de configuração OoklaServer, para usar o nosso certificado gerado.

Localize openSSL.server.certificateFile e openSSL.server.privateKeyFile

Descomente as linhas e e adicione o caminho para os seus.

Sobreecreva OoklaServer.properties.default com o OoklaServer.properties novamente para em futuras atualizações.

Reinicie o OoklaServer. (Pode levar ate 2min, tenha paciência)

Agora acesse com HTTPS em seu navegador: https://sub.dominio:8080, e o certificado agora deve ser válido.

Realizando os testes novamente em https://www.ookla.com/pt/host-tester, o erro de certificado estará resolvido.

Mais ao final deixarei um script para renovação automática do certificado, pois o mesmo é valido apenas por 90 dias.

Cadastro Ookla

Hora de criar sua conta no ookla.com e fazer a solicitação para virar um host! https://account.ookla.com/register/servers, se você já tem acesse: https://account.ookla.com/servers/create
Com sua conta criada e validada no e-mail de verificação logue: https://account.ookla.com/, clique em Go To Servers, e aceite os Termos. Add Server preencha com os seus dados e do servidor.

Agora basta aguardar, pode levar alguns dias para aprovação, você receberá um e-mail lhe avisado (se não for aprovado eles lhe dirão porque). Boa sorte!

Renovar o certificado automaticamente

Para evitar que o certificado expire faremos um script colocando o certbot para renovar uma vez ao mês pelo cron do servidor.

Adicione:

De permissão para execução e adicione ao cron, para que ele rode o script toda a meia noite do dia 1º de cada mês.

Verifique se a última linha está nosso script.

Reinici o cron para ele carregar a nova rotina.

Se o certificado por venturar expirar e o script não renovar, basta você rodar na mão:

Parabéns seu servidor está pronto!


Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

40 Resultados

  1. Felipe disse:

    Olá!

    Primeiramente, muito obrigado pelo artigo, ajudou muito aqui!
    Uma dúvida, não entendi muito bem o motivo de carregar os módulos tcp_illinois, tcp_westwood, tcp_htcp no sistema. Apenas o fato de carregar um módulo não implica em o modulo ser utilizado. Por exemplo, o módulo tcp_westwood é um modulo a ser utilizado para controle de congestionamento do TCP. Porém, ele só passará a ser utilizado de fato caso o parametro do Kernel net.ipv4.tcp_congestion_control seja ajustado para usar o westwood, neste caso: net.ipv4.tcp_congestion_control=westwood. Por padrão, o Kernel do Linux irá utilizar o Cubic como algoritmo para controle de congestinamento no TCP.
    Existe algum motivo para esses três módulos estarem sendo carregados, mas não serem utilizados? Talvez eu tenha deixado escapar alguma coisa na explicação. Obrigado!

  2. Hoje dia 01/05/2024, funcionando 100% todo o tutorial, Rudmar voce é 10!

  3. Valteir disse:

    Obrigado Por Compartilhar. Estava usando a versão do Debian 10, desde 2021, mas começou a dar problema ai fiz instalação nova com essa versão e ficou OK agora.

  4. Anderson disse:

    Olá pessoal,
    Será que implementar algumas regras de firewall a Ookla pode bloquear o servidor?
    Pois reparei um consumo estranho no protocolo TCP e Port 443 Src. “meu IP” e Dst. 02 bloco de IP de AS diferentes.

  5. Eduardo Ronsoni disse:

    Alguém já passou por este erro ? Segue a baixo. Se tiver a solução.

    max_upload

    details: http code: 0 Operation timed out after 10000 milliseconds with 0 bytes received
    success: FAILED

  6. Leonardo X disse:

    Ola, aqui deu super certo! valeu saudoso remontti 😀

  7. ensina como fazer o backup do servidor para caso dê algum problema, ao invés de refazer todo procedimento simplesmente subir o backup, existe essa possibilidade?

  8. uma sugestão

    no arquivo /lib/systemd/system/ooklaserver.service

    na linha [Service] acrescenta:

    Restart=on-failure
    RestartSec=5s

    se por algum motivo o serviço falhar, com o ajuste acima, ele vai dar o restart automático

  9. Marcos disse:

    Bom dia Rudimar, obrigado pelos conteúdos que voce posta! Ali na parte onde voce cria um script para renovar o certificado:

    #!/bin/bash
    # Renova o certificado
    /usr/bin/certbot renew -q
    # Aguarda o certificado renovar
    sleep 30
    # Reinicie o OoklaServer
    /usr/bin/systemctl restart ooklaserver

    essa primeira linha #!/bin/bash não deveria ser sem o #, descomentada?

    Abraços

  10. Paulo Fragoso disse:

    Atualmente existe alguma restrição para registrar uma conta para um servidor recém instalado?

    https://account.ookla.com/register/servers

    Nunca recebo um email de confirmação, não enviam email de confirmação de criação de conta ou mudança de senha, alguém conseguiu criar conta recentemente?

    • tive esse problema amigo, o meu servidor de e-mail estva em uma black list da ookla, entrei em contato com a empresa que é responsvel em hospdar meu dominio e meus e-mails informei o que estava aconrecendo e eles resolveram, removendo meu dominio de e-mail da black-list, então consegui finalizar e ativar meu servidor ookla.

  11. Un favor estoy haciendo todo el proceso y esta ok
    Pero en Debian 11 no me hace conexión en ipv6 a mi servidor Hace ping localmente y desde fuera de internet hace ping a mi puerta de enlace pero entre el server y la puerta de enlace no .le agradezco su ayuda

  12. FERNANDO SEPULVEDA disse:

    obrigado. remontti, seus tutoriais são excelentes.
    habilitar ipv6 com registros AAAA ?

  13. Thiago Bérgamo disse:

    SENSACIONAL!!! Como sempre que sigo os seus artigos… foi de primeira!!!!
    MUITO OBRIGADOOOO

  14. Alex Portugal disse:

    Olá! gostaria de saber qual o melhor cenário com Proxmox, Container ou VM?

  15. Ivo Perpétuo disse:

    Parabéns pelo ótimo tutorial!

    Só uma “adição” da versão 2.6.x para a frente, não é necessário mais instalar e gerar o certificado, pois o instalador já faz automaticamente desde que no arquivo “OoklaServer.properties” não tenha nenhum certificado setado

  16. Tairone disse:

    Parabéns pelo trabalho, logo mais enviarei um pix.

    Deu tudo certo, só quebrei cabeça no ipv6 rsrsrs

  17. O problema foi o erro no ipv6 net gauge… no teste do servidor

  18. Gustavo Wesley\ disse:

    ele funciona para teste interno sem gastar do link ?

  19. Cristiano disse:

    Tu é o cara, sempre foi!

  20. Jacksonwot disse:

    para configurar o speedtest custom é só seguir o tutorial anterior ?

  21. Gabriel Teixeira disse:

    Agora virou obrigatório ter ipv6 para hospedar um servidor do speedtest.

    • vagner disse:

      meu amigo nao sei porem estou com esse erro segundo o suporte do speedtest no meu ipv6 ( Hi,

      Still not able to connect to your server on the IPv6 address on port 8080

      curl -6 teste.wco.net.br:8080
      curl: (7) Failed to connect to teste.wco.net.br port 8080: No route to host ) eo pior nao sei onde abro essa porta 8080 para ipv6

  22. Jose disse:

    Excelente conteúdo.

    Infelizmente tenho esse erro:

    https
    details: Response: , Error: SSL certificate problem: self signed certificate
    tip: Connection over HTTPS failed.
    status: FAILED

  23. Anderson Reis disse:

    Tutorial impecável! Café foi pago kkk!
    Obrigado!

  24. Pablo disse:

    O validador corrigiu a porta no teste. Agora o arquivo crossdomain.xml nao apresenta mais falha. Ficando desnecessário o uso do apache. Vlw

  25. Vinícius Araújo disse:

    Bom dia!
    Seria possível utilizar vários servidores speedtest em uma maquina apenas ?
    Testando aqui e estou enfrentando problemas com o certificado SSL.

  26. Claudio Lemes disse:

    muito bom Rudimar vc é monstro funcionou 100%

  27. Álvaro Duquia disse:

    Parabéns pelo ótimo tutorial!

    Apenas um detalhe, que no script para renovar o certificado você chama o certbot com a flag –dryrun, que deve apenas “testar” se consegue renovar o certificado, e não renovar de fato.

  28. Como de costume, sempre inovando parabéns mestre.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *