Como saben, el mundo Torrent me apasiona, y es el presente y el futuro en transferencia de archivos de forma masiva.
Ningún otro protocolo lo supera, y aunque en la década de los 90 sufrió de boicot para evitar la piratería, hoy es muy usado incluso para actualizar software, como funciona el Windows Update.
Hace unos años hice un tutorial en youtube de como montar un Tracker Torrent tanto en IPv4 como en IPv6 con OpenTracker, e incluso en mi GitHub pueden encontrar una copia ligeramente modificada.
El problema de OpenTracker es que ya es un software viejo sin capacidad de soportar múltiples núcleos de procesador, y por otro lado, OpenTracker casi no gasta ram, Pero el uso de 1 solo CPU que puede usar OpenTracker es muy alto.
Fue entonces cuando me sorprendió “Chihaya” y a la ves me súper sorprendió el lenguaje de programación GoLang, yo no podía creer la capacidad de concurrencia de GoLang (En aquellos ayeres pensaba que nada podía superar a C en desempeño).
Como pueden ver, me puedo pasar horas y horas hablando de protocolo Bittorrent, es por que me apasiona, ese protocolo fue lo que hizo que me interesara por el mundo IT y el Software.
La mejor y mas fácil manera de montar un tracker torrent en CentOS 7 u 8 la pongo a continuación.
Actualizamos:
yum update && yum install nano wget
Descargamos el RPM:
wget https://reyesleon.eu/other/chihaya-1.0.2-2.el7.centos.x86_64.rpm
Instalamos:
yum install chihaya-1.0.2-2.el7.centos.x86_64.rpm
Configuramos:
nano /etc/chihaya.json
En mi caso yo te recomiendo la siguiente configuración:
{
"createOnAnnounce": true,
"purgeInactiveTorrents": true,
"announce": "30m",
"minAnnounce": "15m",
"reapInterval": "60s",
"reapRatio": 1.25,
"defaultNumWant": 50,
"torrentMapShards": 1,
"jwkSetURI": "",
"jwkSetUpdateInterval": "5m",
"jwtAudience": "",
"allowIPSpoofing": false,
"dualStackedPeers": false,
"realIPHeader": "",
"respectAF": false,
"clientWhitelistEnabled": false,
"clientWhitelist": ["OP1011"],
"apiListenAddr": ":8080",
"apiRequestTimeout": "4s",
"apiReadTimeout": "4s",
"apiWriteTimeout": "4s",
"apiListenLimit": 0,
"udpListenAddr": ":53",
"httpListenAddr": ":443",
"httpRequestTimeout": "4s",
"httpReadTimeout": "4s",
"httpWriteTimeout": "4s",
"httpListenLimit": 0,
"driver": "noop",
"statsBufferSize": 0,
"includeMemStats": false,
"verboseMemStats": false,
"memStatsInterval": "5s"
}
apiListenAddr: es donde vas a obtener información del tracker como estadisticas, 8080 es un buen puerto.udpListenAddr: si tu tracker va a ser por UDP (que es lo mejor) te recomiendo que uses el puerto 53.httpListenAddr: si tu tracker va a ser por HTTP te recomiendo puerto 443 (estuvo de moda usar el 80, pero yo no te recomiendo usar el 80).includeMemStats: este lo pongo en false por que pone mas lento el tracker.
Ahora hay que quitar el log:
nano /etc/sysconfig/chihaya
y dentro de ese archivo vamos a marcar false
LOGSTDERR=false
CONFIGFILE=/etc/chihaya.json
Si tu CentOS tiene el firewall habilitado hay que agregar las reglas. Si no omite el siguiente paso.
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload
Ahora vamos habilitar y arrancar el tracker.
systemctl enable chihaya
systemctl start chihaya
Y listo…. ya estará trabajando tu tracker torrent 😀
Es importante tener un excelente proveedor DNS en un tracker torrent.
Yo recomiendo DNS de HE que es gratis.
CloudDNS en su version premium.
CloudFlare solo y unicamente si esta en modo “DNS only”.
Por ningún motivo utilices Google, Amazon, Azure, NS1 o ese tipo de proveedores DNS.
Y no es que sean malos, es que son muy caros.
Extra… A mi me encanta usar htop, quizá tu tengas tu manera, pero si optas por htop, lo habilitas de la siguiente manera:
yum install epel-release && yum update && yum install htop
Arrancamos htop:
htop
Así ustedes tendrán totalmente funcional un tracker torrent listo para producción, debo de agradecer a Eliezer por que hace algunos años me ayudo a montar el primer tracker con Chihaya (En aquel entonces yo solo usaba OpenTracker).