Por qué las redes escolares bloquean las extensiones de MakeCode y las bibliotecas de Arduino

Cuando una clase de programación se detiene, rara vez se debe a que el sitio web principal esté bloqueado; los cortafuegos corporativos rechazan de forma silenciosa los puntos de enlace de GitHub, las redirecciones de CDN y las descargas de archivos comprimidos de los que dependen estas herramientas.
Cuando las extensiones de MakeCode no se cargan o el Gestor de bibliotecas de Arduino se queda congelado en el cero por ciento, casi nunca se debe a que el cortafuegos del centro educativo esté bloqueando makecode.microbit.org o arduino.cc. En realidad, el filtro de contenidos corporativo del centro descarta silenciosamente las peticiones de red dinámicas y multihost que se ejecutan entre bambalinas: código fuente descargado desde puntos de conexión de la API de GitHub, redirecciones multinodo a través de redes de distribución de contenidos (CDN) o archivos binarios comprimidos clasificados como descargas de software.
Para solucionar esto, el administrador de TI de su centro no necesita comprometer la seguridad de la red abriendo el acceso a todo Internet. Basta con aplicar una lista blanca específica adaptada a cómo obtienen el código los compiladores basados en navegador y los entornos de desarrollo para microcontroladores.
Por qué se carga la interfaz pero fallan las bibliotecas
Los cortafuegos corporativos para centros educativos —como las pasarelas Fortinet FortiGate, Sophos, Smoothwall o MikroTik, habituales en los colegios públicos y privados sudafricanos— se basan en el filtrado por categorías. Estos dispositivos clasifican el tráfico según la reputación del dominio y los tipos MIME. Cuando un alumno introduce la URL de un IDE en línea en Google Chrome, el portal principal queda clasificado en Educación, una categoría permitida.
El problema surge en el momento en que un alumno añade una extensión para una pantalla OLED, un controlador de motores o un sensor de ultrasonidos. Ni el motor de Microsoft MakeCode ni el IDE de Arduino integran todos los controladores de hardware de terceros en la aplicación base. Por el contrario, descargan los paquetes externos dinámicamente mediante HTTPS desde plataformas de desarrolladores. Esas peticiones se dirigen a dominios clasificados como Descargas de software, Almacenamiento personal o Repositorios de código abierto, categorías que las configuraciones predeterminadas de los cortafuegos escolares restringen de forma estricta para evitar malware, instalaciones de software no autorizadas y el agotamiento del ancho de banda.
El flujo de dependencias de MakeCode
Microsoft MakeCode (tanto si se utiliza para BBC micro:bit, Arcade o placas maker personalizadas) no es un único sitio web; es un orquestador que reúne código procedente de varios hosts independientes mientras compila dentro de un web worker en el navegador.
- Búsqueda de extensiones: Cuando un alumno busca un paquete, MakeCode consulta
api.github.compara localizar repositorios públicos etiquetados para PXT (Programming eXperience Toolkit). Si la API de GitHub está bloqueada o limitada por reglas de tasa de peticiones (rate limiting), la búsqueda no devuelve ningún resultado. - Descarga de código fuente: Una vez seleccionado, el código fuente en JavaScript y C++ del controlador se descarga desde
raw.githubusercontent.com. Muchos filtros escolares consideran este dominio como un servicio de almacenamiento no verificado (similar a una plataforma de intercambio de archivos) y cortan la conexión, dejando al alumno ante una rueda de carga infinita o un aviso genérico de «Error al cargar el paquete». - Simulador y compiladores en la nube: Los simuladores específicos de cada placa y los destinos de hardware se cargan de forma dinámica desde
pxt.ioy desde puntos de conexión de Azure gestionados por Microsoft (*.makecode.org). Si estos recursos están bloqueados, es posible que el entorno gráfico aparezca, pero el simulador en pantalla se quedará en blanco.
IDE de Arduino: archivos comprimidos, redirecciones y herramientas de CLI
El IDE de Arduino (en particular Arduino IDE 2.x, desarrollado sobre un frontend Electron que ejecuta arduino-cli como demonio en segundo plano) se enfrenta a un obstáculo de red distinto: la descarga de archivos comprimidos y las cadenas de redirecciones.
Al instalar la definición de una placa (como los núcleos para ESP32, ESP8266 o SAMD) o una biblioteca de la comunidad, la herramienta sigue esta secuencia:
- Obtiene un archivo de índice en formato JSON desde un dominio de origen (por ejemplo,
downloads.arduino.cco un enlace directo a GitHub especificado en las URL del Gestor de placas). - El archivo de índice apunta a un archivo comprimido —por lo general un fichero
.zip,.tar.bz2o.tar.gzalojado en GitHub Releases. - GitHub Releases emite inmediatamente una redirección HTTP 302 hacia un bucket de almacenamiento de Amazon S3 en
objects.githubusercontent.com.
Si la red escolar bloquea extensiones de archivos ejecutables o archivos comprimidos procedentes de dominios que no están en la lista blanca, la descarga se interrumpe de forma abrupta. Además, como arduino-cli gestiona estas transacciones mediante llamadas locales en segundo plano, no activará el típico inicio de sesión por portal cautivo en el navegador que emplean las redes wifi escolares para autenticar a los usuarios.
Inspección SSL y el problema de los certificados
Muchos colegios sudafricanos enrutan el tráfico a través de servidores proxy transparentes con inspección profunda de paquetes (DPI) para supervisar la navegación de los alumnos. Para que esto funcione, es necesario instalar un certificado raíz de entidad de certificación (CA) personalizado en cada equipo cliente. Aunque los portátiles Windows gestionados mediante un sistema de administración escolar pueden llevar preinstalada esta CA, en un aula de programación suelen producirse tres situaciones de error habituales:
- Dispositivos propios (BYOD): Los alumnos que utilicen sus propios portátiles experimentarán fallos en el protocolo de enlace SSL (handshake) en cada conexión segura, ya que sus dispositivos no confían en el certificado de inspección del centro.
- Herramientas de línea de comandos integradas: Las utilidades de línea de comandos en segundo plano que emplean las herramientas de robótica suelen recurrir a sus propios almacenes de certificados integrados en lugar de consultar el almacén de confianza del sistema operativo, lo que provoca reinicios de conexión.
- WebSockets: La compilación en tiempo real y los enlaces de depuración mediante WebUSB o WebSerial pueden fallar al atravesar servidores proxy de caché antiguos que solo admiten HTTP.
Lista de comprobación para la lista blanca del departamento de TI
Facilite esta lista detallada al administrador de red o al departamento de TI de su centro. Solicite que estos dominios y protocolos se añadan a la lista de exclusión, tanto en el filtro de contenidos como en la inspección profunda SSL, dentro de la VLAN o subred IP asignada al laboratorio de robótica o al aula de informática:
| Dominio / Patrón de URL | Finalidad | Puertos requeridos |
|---|---|---|
makecode.microbit.org*.makecode.org | Aplicación web de MakeCode, entornos de ejecución del simulador y web workers locales | TCP 443 (HTTPS) |
pxt.io*.pxt.io | Destinos de compilación subyacentes de Microsoft PXT y documentación | TCP 443 (HTTPS) |
api.github.com | Búsqueda de extensiones y resolución de versiones de paquetes | TCP 443 (HTTPS) |
raw.githubusercontent.com | Código fuente de extensiones de MakeCode y archivos de índice de placas de Arduino | TCP 443 (HTTPS) |
objects.githubusercontent.com | Archivos binarios de paquetes, cadenas de herramientas del compilador y versiones en ZIP de bibliotecas | TCP 443 (HTTPS) |
downloads.arduino.cc*.arduino.cc | Índices oficiales del IDE de Arduino, núcleos de placas y metadatos del Gestor de bibliotecas | TCP 443 (HTTPS) |
Además de incluir estos dominios en la lista blanca, el equipo de TI debe confirmar que el filtrado por extensión de archivo no bloquee los flujos de datos .json, .hex, .zip, .tar.gz o .tar.bz2 procedentes de los dominios indicados.
Soluciones alternativas en entornos con restricciones
Si su centro educativo funciona con un proxy centralizado y rígido —como ocurre con las conexiones de las redes educativas provinciales, donde el profesorado de cada aula no puede solicitar cambios locales en el cortafuegos—, es necesario sortear estas barreras de red de forma práctica:
- Para MakeCode: Descargue la aplicación sin conexión de MakeCode para micro:bit si hay un instalador disponible, o bien cargue las extensiones en un proyecto «maestro» mediante una conexión externa (como una zona wifi móvil), guarde el proyecto como archivo
.hexy pida a los alumnos que abran ese archivo local. MakeCode empaqueta las extensiones ya importadas directamente en el archivo.hexdel proyecto, por lo que una vez importadas no se necesita conexión de red para utilizar esos bloques. - Para Arduino: Prepare una instalación maestra del IDE de Arduino con todas las placas necesarias (como los núcleos ESP32 o AVR) y las bibliotecas para el aula preinstaladas en la estructura de carpetas portátil. Distribuya este directorio completo a los ordenadores del aula mediante una memoria USB o una carpeta compartida en la red local, evitando así por completo el uso de los gestores de placas y bibliotecas durante la clase.
Para aquellos centros que estén equipando aulas de robótica y hardware que requieran una gestión fiable de dispositivos, cadenas de herramientas locales y configuraciones compatibles con cortafuegos en etapas de primaria o secundaria, nuestro equipo ofrece soporte directo en el despliegue de infraestructuras a través de Sheen Robotics School Services.
Un aula moderna de programación no puede funcionar con una política de filtrado web pensada únicamente para la navegación pasiva. Cuando los administradores de TI comprenden que las plataformas de programación funcionan como procesos de despliegue de software y no como páginas de texto estáticas, la solución resulta sencilla, precisa y definitiva.



