gtracert - Traceroute para servidores Gemini
Una utilidad traceroute para seguir redirecciones y trazar rutas en servidores que usan el protocolo Gemini (gemini://).
Características
* Sigue redirecciones Gemini (códigos 30 y 31)
* Muestra tiempos de respuesta por cada salto
* Detecta y evita bucles de redirección
* Resuelve direcciones IP para cada host
* Soporte multilingüe (inglés, español, alemán)
* Detecta automáticamente el idioma del sistema
* Límite configurable de saltos
* Timeout configurable
* Manpage incluida
Instalación
Desde código fuente:
make sudo make install # Instala binario y manpage
Solo el binario:
sudo make install-bin
Instalación manual:
# Instalar binario sudo cp gtracert /usr/local/bin/ # Instalar manpage (opcional) sudo cp gtracert.1.gz /usr/share/man/man1/ sudo mandb # Actualizar base de datos de manpages
Uso
Sintaxis básica:
gtracert [OPCIONES] <Gemini-URI>
Ejemplos:
# Traceroute básico gtracert gemini://gemini.circumlunar.space/ # Forma abreviada (gemini:// se añade automáticamente) gtracert gemini.circumlunar.space # Máximo 5 saltos gtracert -m 5 ejemplo.com # Timeout de 10 segundos gtracert -t 10 ejemplo.com # Español forzado gtracert --lang es ejemplo.com # Mostrar ayuda gtracert -h
Opciones:
* -m MAXSALTOS - Máximo número de saltos (predeterminado: 10)
* -t TIMEOUT - Timeout en segundos (predeterminado: 5)
* -h - Mostrar ayuda
* --lang IDIOMA - Forzar idioma (en, es, de)
Salida de ejemplo
$ gtracert -m 3 gemini://ejemplo.com/
Trazando ruta a gemini://ejemplo.com/
Máximo 3 saltos:
Salto Estado Tiempo IP/Host
---- ------------ ------ ---------------------------------
1 Redirección 245ms ejemplo.com (192.0.2.1)
└─→ Redirección a: gemini://ejemplo2.com/
2 Éxito 320ms ejemplo2.com (192.0.2.2)
Traza completa. Tiempo total: 565ms
Idiomas soportados
El programa soporta 3 idiomas:
1. Inglés (en) - Predeterminado
2. Español (es)
3. Alemán (de)
Detección automática:
El idioma se detecta automáticamente de las variables de entorno:
* LANGUAGE (estándar GNU)
* LC_ALL
* LC_MESSAGES
* LANG
Forzar idioma:
gtracert --lang es gemini://ejemplo.com export LANG=es_ES.UTF-8 && gtracert ejemplo.com
Códigos de estado Gemini
El programa sigue y muestra códigos de estado del protocolo Gemini:
* 20 - ÉXITO (fin del traceroute)
* 30 - REDIRECCIÓN TEMPORAL (siguiente salto)
* 31 - REDIRECCIÓN PERMANENTE (siguiente salto)
* 40-59 - ERRORES (fin del traceroute)
Documentación
Manpage:
# Ver documentación completa man gtracert # Ver sin instalar man -l gtracert.1
Especificación Gemini:
Especificación del protocolo Gemini
Dependencias
* Bibliotecas de desarrollo de OpenSSL
* Biblioteca estándar de C
Instalar dependencias:
Debian/Ubuntu:
sudo apt-get install libssl-dev
Fedora/RHEL:
sudo dnf install openssl-devel
Arch Linux:
sudo pacman -S openssl
Solus Linux:
sudo eopkg install openssl-devel
Compilación desde código fuente
# Instalar dependencias sudo apt-get install libssl-dev # En Debian/Ubuntu # Compilar make # Probar ./gtracert -m 3 gemini://gemini.circumlunar.space/
Desinstalación
# Si se instaló con make install sudo make uninstall # Manualmente sudo rm -f /usr/local/bin/gtracert /usr/share/man/man1/gtracert.1.gz sudo mandb
Protocolo Gemini
Gemini es un protocolo de internet nuevo y simple, diseñado para ser más simple que Gopher pero más poderoso. Opera sobre TLS en el puerto 1965.
Página principal de Gemini
Directorio de cápsulas
Limitaciones
* Traza a nivel aplicación (redirecciones), no a nivel red (routers)
* Cada salto establece una nueva conexión TLS completa
* Algunos servidores pueden limitar conexiones frecuentes
* El tiempo medido incluye el handshake TLS completo
Licencia
Este proyecto está liberado bajo la licencia The Unlicense (dominio público).
Este es software libre y sin restricciones liberado al dominio público. Cualquiera es libre de copiar, modificar, publicar, usar, compilar, vender o distribuir este software, ya sea en forma de código fuente o como binario compilado, para cualquier propósito, comercial o no comercial, y por cualquier medio. En jurisdicciones que reconocen las leyes de derechos de autor, el autor o autores de este software dedican cualquier y todo interés de derechos de autor en el software al dominio público. Hacemos esta dedicación en beneficio del público en general y en detrimento de nuestros herederos y sucesores. Pretendemos que esta dedicación sea un acto manifiesto de renuncia en perpetuidad de todos los derechos presentes y futuros sobre este software bajo la ley de derechos de autor. EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES SERÁN RESPONSABLES POR NINGUNA RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, FUERA O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS ACUERDOS EN EL SOFTWARE. Para más información, por favor refiérase a <https://unlicense.org/>
Consulte el archivo UNLICENSE para el texto completo.
Autor
Tanausú Gómez (_-Caleb-_) - 2026
Repositorio en Codeberg
Contribuir
Las contribuciones son bienvenidas. Por favor:
1. Haz fork del repositorio
2. Crea una rama para tu característica
3. Haz commit de tus cambios
4. Abre un Pull Request
Reportar problemas
Por favor, reporta cualquier problema o sugerencia en:
Issues en Codeberg
---
> Simple, rápido, útil - como el protocolo Gemini mismo.