Logótipo sheen.bot

← Perspetivas

Por Que Razão as Redes Escolares Bloqueiam Extensões do MakeCode e Bibliotecas do Arduino

6/11/2026·Sheen Robotics
Por Que Razão as Redes Escolares Bloqueiam Extensões do MakeCode e Bibliotecas do Arduino

Quando as aulas de programação ficam bloqueadas, raramente é o site principal que está inacessível; as firewalls empresariais rejeitam silenciosamente os endpoints de segundo plano do GitHub, os redirecionamentos de CDN e as descargas de ficheiros de que estas ferramentas dependem.

Quando as extensões do MakeCode não carregam ou o Gestor de Bibliotecas do Arduino bloqueia nos zero por cento, a firewall da escola quase nunca está a bloquear o makecode.microbit.org ou o arduino.cc. Em vez disso, o filtro de conteúdos empresarial da escola está a descartar silenciosamente os pedidos de rede dinâmicos e multidomínio que decorrem nos bastidores: código em bruto obtido a partir de endpoints da API do GitHub, redirecionamentos de múltiplos saltos em redes de distribuição de conteúdos (CDN) ou arquivos binários classificados como transferências de software.

Para resolver isto, o administrador de TI da sua escola não precisa de comprometer a segurança da rede abrindo a totalidade da Internet. Precisa apenas de uma lista de permissões direcionada, que tenha em conta a forma como os compiladores baseados no navegador e os ambientes de desenvolvimento para microcontroladores realmente obtêm o código.

Porque É Que a Interface Carrega Mas as Bibliotecas Falham

As firewalls empresariais escolares — como as gateways Fortinet FortiGate, Sophos, Smoothwall ou MikroTik, comuns nas escolas estatais e independentes sul-africanas — dependem da filtragem por categorias. Estes dispositivos categorizam o tráfego com base na reputação do domínio e nos tipos MIME. Quando um aluno introduz o URL de um IDE online no Google Chrome, o portal principal é categorizado como Educação, o qual é permitido.

A falha ocorre no momento em que um aluno adiciona uma extensão para um ecrã OLED, um controlador de motores ou um sensor de ultrassons. Nem o motor do Microsoft MakeCode nem o Arduino IDE incluem todos os controladores de hardware de terceiros dentro da aplicação base. Em vez disso, obtêm pacotes externos dinamicamente através de HTTPS a partir de plataformas de programadores. Esses pedidos atingem domínios categorizados como Software Downloads, Personal Storage ou Open Source Code Repositories, que os perfis predefinidos das firewalls escolares restringem agressivamente para prevenir malware, a instalação de software não aprovado e o esgotamento da largura de banda.

O Pipeline de Dependências do MakeCode

O Microsoft MakeCode (quer esteja a ser executado para o BBC micro:bit, Arcade ou placas maker personalizadas) não é um único site; é um orquestrador que reúne código de vários servidores independentes enquanto compila dentro de um web worker no navegador.

  • Deteção de Extensões: Quando um aluno pesquisa por um pacote, o MakeCode consulta api.github.com para localizar repositórios públicos etiquetados para PXT (Programming eXperience Toolkit). Se a API do GitHub estiver bloqueada ou limitada por regras de controlo de taxa (rate-limiting), a pesquisa não devolve quaisquer resultados.
  • Obtenção do Código-Fonte: Uma vez selecionado, o código do controlador em JavaScript e C++ em bruto é transferido a partir de raw.githubusercontent.com. Muitos filtros escolares tratam este domínio como armazenamento de ficheiros não verificado (semelhante a um serviço de partilha de ficheiros) e encerram a ligação, deixando o aluno com um círculo de carregamento contínuo ou um alerta genérico de «Erro ao carregar o pacote».
  • Simulador e Compiladores na Nuvem: Os simuladores específicos da plataforma de destino e os alvos de hardware são carregados dinamicamente a partir de pxt.io e de endpoints Azure geridos pela Microsoft (*.makecode.org). Se estes recursos forem bloqueados, a área de trabalho gráfica pode surgir, mas o simulador no ecrã permanecerá em branco.

Arduino IDE: Arquivos, Redirecionamentos e Ferramentas CLI

O Arduino IDE (especialmente o Arduino IDE 2.x, construído sobre uma interface Electron que executa o arduino-cli como serviço em segundo plano) enfrenta um obstáculo de rede diferente: transferências de arquivos compactados e cadeias de redirecionamento.

Quando instala uma definição de placa (como o núcleo para ESP32, ESP8266 ou SAMD) ou uma biblioteca da comunidade, a ferramenta segue esta sequência:

  1. Obtém um ficheiro JSON de índice a partir de um domínio de origem (por exemplo, downloads.arduino.cc ou uma ligação direta ao GitHub especificada nos URLs do Gestor de Placas).
  2. O ficheiro de índice aponta para um arquivo comprimido — normalmente um ficheiro .zip, .tar.bz2 ou .tar.gz alojado no GitHub Releases.
  3. O GitHub Releases emite imediatamente um redirecionamento HTTP 302 para um bucket de armazenamento Amazon S3 em objects.githubusercontent.com.

Se a rede escolar bloquear extensões de ficheiros executáveis ou arquivos comprimidos provenientes de domínios que não constem da lista de permissões, a transferência termina abruptamente. Além disso, como o arduino-cli gere estas transações através de chamadas locais em segundo plano, não ativará o típico início de sessão por portal cativo no navegador que as redes Wi-Fi escolares utilizam para autenticar os utilizadores.

Inspeção SSL e o Problema dos Certificados

Muitas escolas sul-africanas encaminham o tráfego através de servidores proxy transparentes com Inspeção Profunda de Pacotes (DPI, Deep Packet Inspection) para monitorizar a utilização da Web pelos alunos. Para que isto funcione, deve ser instalado um certificado de raiz de Autoridade de Certificação (CA) personalizado em cada máquina cliente. Embora os computadores portáteis Windows geridos e distribuídos através de um sistema de gestão escolar possam ter esta CA pré-instalada, ocorrem três modos de falha comuns num laboratório de programação:

  • Dispositivos BYOD: Os alunos que utilizam computadores portáteis pessoais deparar-se-ão com falhas no handshake SSL em todos os endpoints seguros, uma vez que os seus equipamentos não confiam no certificado de inspeção da escola.
  • Ferramentas de Linha de Comandos Integradas: Os utilitários de linha de comandos em segundo plano utilizados pelas ferramentas de robótica recorrem frequentemente aos seus próprios repositórios de certificados incluídos, em vez de lerem o repositório de confiança do sistema operativo, resultando na perda de ligação.
  • WebSockets: A compilação em tempo real e as ligações de depuração por WebUSB/WebSerial podem falhar ao passar por proxies de cache legados que suportam apenas HTTP.

A Lista de Controlo de Permissões para a Equipa de TI

Entregue esta lista concreta ao administrador de rede ou ao departamento de TI da sua escola. Solicite que estes domínios e protocolos sejam adicionados à lista de exceções, tanto no filtro de conteúdos como na inspeção SSL profunda, na VLAN ou sub-rede IP designada para o laboratório de robótica ou sala de aula de programação:

Domínio / Padrão de URLFinalidadePortas Necessárias
makecode.microbit.org
*.makecode.org
Aplicação web do MakeCode, ambientes de execução do simulador e web workers locaisTCP 443 (HTTPS)
pxt.io
*.pxt.io
Destinos de compilação subjacentes do Microsoft PXT e documentaçãoTCP 443 (HTTPS)
api.github.comPesquisas de extensões e resolução de versões de pacotesTCP 443 (HTTPS)
raw.githubusercontent.comCódigo-fonte de extensões do MakeCode e ficheiros de índice de placas ArduinoTCP 443 (HTTPS)
objects.githubusercontent.comArquivos binários de pacotes, cadeias de ferramentas de compilação e lançamentos ZIP de bibliotecasTCP 443 (HTTPS)
downloads.arduino.cc
*.arduino.cc
Índices oficiais do Arduino IDE, placas base e metadados do Gestor de BibliotecasTCP 443 (HTTPS)

Além da inclusão de domínios na lista de permissões, a equipa de TI deve confirmar que a filtragem por extensão de ficheiro não descarta fluxos .json, .hex, .zip, .tar.gz ou .tar.bz2 com origem nos domínios acima referidos.

Soluções Alternativas Práticas em Ambientes Condicionados

Se a sua escola funciona através de um proxy centralizado rígido — como as ligações das redes provinciais de educação, onde os professores de cada laboratório não podem solicitar alterações locais na firewall —, terá de planear a contornar essa barreira de rede:

  • Para o MakeCode: Descarregue a aplicação offline do MakeCode para o micro:bit onde existir um instalador disponível, ou carregue as extensões num projeto «mestre» através de uma ligação externa (como um hotspot móvel), guarde o projeto como ficheiro .hex e faça com que os alunos abram esse ficheiro local. O MakeCode empacota as extensões já importadas diretamente dentro do ficheiro de projeto .hex, pelo que, uma vez importadas, não é necessário acesso à rede para utilizar esses blocos.
  • Para o Arduino: Prepare uma instalação mestre do Arduino IDE com todas as placas necessárias (como os núcleos ESP32 ou AVR) e as bibliotecas escolares pré-instaladas na estrutura de pastas portáteis. Distribua este diretório completo pelos computadores do laboratório através de uma pen USB ou de uma partilha de rede local, contornando totalmente os Gestores de Placas e de Bibliotecas durante a aula.

Para instituições que pretendam configurar laboratórios de hardware dedicados que exijam uma gestão fiável de dispositivos, cadeias de ferramentas locais e configurações compatíveis com a firewall no ensino básico ou secundário, a nossa equipa apoia a implementação de infraestruturas diretamente através dos Serviços Escolares Sheen Robotics.

Uma sala de aula de programação moderna não pode funcionar com uma política de filtragem web concebida apenas para a navegação passiva. Quando os administradores de TI reconhecem que as plataformas de programação se comportam como pipelines de implementação de software e não como páginas estáticas de texto, a resolução é simples, específica e definitiva.

#redes escolares#MakeCode#Arduino#configuração de firewall#laboratório de programação

Mais Perspetivas