- Susam Pal dejó abierto durante 24 horas en un servidor Debian un bucle de pitidos con netcat al que cualquiera podía conectarse; cada conexión recibía la respuesta
ok y hacía sonar 4 pitidos en la terminal
- El one-liner acepta conexiones con
nc; un bucle for en segundo plano imprime el carácter de campana, y luego el bucle while externo lanza de inmediato un nuevo proceso para recibir la siguiente conexión
- En el primer experimento hubo 4,761 conexiones en 24 horas, con un total de 19,044 pitidos, y se podía participar con varios clientes como un navegador,
nc, curl, ssh e irssi
- Después de compartir el artículo del 10 de abril de 2025 en Hacker News, en 14 horas se registraron 352,831 conexiones y 1,396 direcciones de cliente únicas, aumentando hasta un total de 1,411,324 pitidos
- En la segunda ronda, el cliente anonimizado C0276 generó 327,209 conexiones y concentró la mayor parte del tráfico; la exposición en HN amplificó enormemente la escala de un pequeño experimento lúdico
Un beeper de terminal hecho con netcat
- El experimento consistía en un pequeño bucle de
netcat que aceptaba conexiones arbitrarias en un servidor Debian
- Cuando un cliente se conectaba, enviaba el mensaje
ok
- Cerraba la conexión de inmediato
- Hacía sonar 4 pitidos en la terminal
- El comando ejecutado fue el siguiente
while true; do (echo ok | nc -q 1 -vlp 8000 2>&1; echo; date -u) | tee -a beeper.log; for i in 1 2 3 4; do printf '\a'; sleep 1; done & done
- El comando
nc envía ok y luego cierra la conexión, mientras que el bucle for interno imprime cuatro veces el carácter de campana de forma asíncrona en una shell en segundo plano
- El bucle
while externo ejecuta rápidamente un nuevo proceso nc para poder recibir la siguiente conexión
- En el hilo de HN se indicaba que conectarse al puerto 8000 de cualquier forma produciría 4 pitidos
- Ej.: navegador web
- Ej.:
nc HOST 8000
- Ej.:
curl HOST:8000
- Ej.:
ssh HOST -p 8000
- Ej.:
irssi -c HOST -p 8000
Dos picos de conexiones impulsados por HN
- El primer experimento fue una prueba lúdica en respuesta a un hilo de HN sobre un extraño sistema de notificaciones DIY
- La discusión original está en el hilo de HN
- Durante 24 horas se produjeron 4,761 conexiones
- Como cada conexión sonaba 4 veces, quedaron en total 19,044 pitidos de terminal
- Los datos están en beeper.log
- Después de compartir este artículo en Hacker News el 10 de abril de 2025, las conexiones volvieron a dispararse
- En 14 horas se registraron 352,831 conexiones
- Hubo 1,396 direcciones de cliente únicas
- El total de pitidos llegó a 1,411,324
- Los datos están en beeper2.log
- Gran parte del tráfico del segundo experimento parece haber venido de un bucle persistente de cliente que seguía conectándose al beeper
- El cliente anonimizado C0276 generó la mayor cantidad de conexiones, con 327,209
- El segundo más activo, C0595, registró 6,771
- Hubo 491 clientes que se conectaron exactamente una sola vez
- El conteo de conexiones por cliente está en beeperclient2.log
- En la primera ronda, algunos lectores que vieron el hilo de comentarios generaron 4,761 conexiones, pero la segunda ronda, tras llegar a la portada de HN, creció hasta 352,831
- El experimento concluye como una actividad de computación enfocada más en explorar ideas extrañas y en la diversión de que otras personas participen que en resolver un problema
1 comentarios
Opiniones de Hacker News
Genial. Sé que soy hipócrita; digo que escribo el blog porque me gusta y que volverse esclavo de las métricas de analítica es horrible, pero en la práctica, cuando veo que llegan visitas a un proyecto al que le dediqué varias horas, ese feedback inmediato se siente demasiado bien.
Al final, para satisfacer mi necesidad de reconocimiento sin llegar a usar una herramienta de analítica completa, le puse al sitio un contador de visitas simple. No hace bip, pero quizá debería hacerlo.
tail -F -n 0 /var/log/visitlog | while read ; do printf '\a' ; doneAhora solo falta que alguien visite mi sitio.
Acabo de descargar un archivo con sonido de clic y voy a probar si, al conectarlo, termino volviéndome loco.
https://joeldare.com/private-analtyics-and-my-raspberry-pi-4...
Mi comentario poco conocido, que quedó enterrado en un hilo cualquiera de HN, apareció en el artículo \o/
En vez de tocar la campana de Susam, deberían ver Fish Doorbell. Si ven que un pez está esperando para pasar, solo tienen que avisar.
https://visdeurbel.nl/en/
Qué divertido. Se nota que ahora mismo está recibiendo bastante cariño.
while true; do; sleep 5; curl http://susam.net:8000 ; donecurl: (1) Received HTTP/0.9 when not allowedcurl: (1) Received HTTP/0.9 when not allowedcurl: (7) Failed to connect to susam.net port 8000 after 11 ms: Couldn't connect to servercurl: (56) Recv failure: Connection reset by peercurl: (7) Failed to connect to susam.net port 8000 after 8 ms: Couldn't connect to servercurl: (1) Received HTTP/0.9 when not allowedcurl: (7) Failed to connect to susam.net port 8000 after 8 ms: Couldn't connect to servercurl: (1) Received HTTP/0.9 when not allowedcurl: (7) Failed to connect to susam.net port 8000 after 10 ms: Couldn't connect to servercurl: (7) Failed to connect to susam.net port 8000 after 11 ms: Couldn't connect to servercurl: (56) Recv failure: Connection reset by peercurl: (56) Recv failure: Connection reset by peercurl: (1) Received HTTP/0.9 when not allowedcurlla bandera--http0.9. Así le puedes indicar que una respuesta que solo devuelve"ok", es decir, solo cuerpo sin encabezados, al estilo HTTP 0.9, no es un error.watch -n 5.“Al final, fue un experimento divertido. ¡Inútil, pero divertido!”
Ese tipo de experimentos son los mejores. A veces de ahí salen una gran innovación, un invento, avances médicos o más diversión.
https://en.m.wikipedia.org/wiki/Trojan_Room_coffee_pot
Una versión más desarrollada y antigua, del año 2000, de esta idea es Peep (The Network Auralizer): una herramienta para monitorear la red con sonidos [1].
La tuve corriendo durante unos meses y mi sala sonaba como una jungla. Si corriera la misma configuración con el aumento de tráfico de hoy, probablemente sonaría como las puertas del infierno.
Todavía se puede encontrar en SourceForge, pero quizá necesite algunos ajustes o una VM con una distribución antigua de Linux.
https://sourceforge.net/projects/peep/
[1] https://www.usenix.org/legacy/publications/library/proceedin...
Alrededor de 1998, había un grupo que buscaba nuevo talento técnico para las startups en las que habían invertido. Creo que publicaron en algún lugar como /. que recibirían CVs por SMTP en un puerto no estándar, y lo usaron como mecanismo de filtro
No recibí respuesta, pero al final terminé trabajando al año siguiente en una de las empresas en las que habían invertido
Los geeks interesados en el desarrollo web pulsaban constantemente “View Source” en cada página interesante. Esa fue una de las principales vías por las que se difundían las técnicas tempranas de frontend web, y era genial. Podías copiar y pegar el HTML, descargar a mano el
.cssy otros recursos, ejecutar una maqueta del sitio sin conexión y aprender sus secretos. Toda la magia estaba expuesta, y si tenías ganas de correr la cortina, el futuro parecía infinitamente abiertoHoy aprendí: una respuesta HTTP/0.9 que solo entrega texto, sin headers, todavía funciona en navegadores modernos. Genial
Algo relacionado: una vez hice una animación del tráfico de HN que recibí por una publicación en el primer puesto
https://idiallo.com/blog/surviving-the-hug-of-death perdón, no es muy amigable para móviles
Hay una cantidad sorprendente de bots. La próxima vez que reciban tráfico de HN, podría ser divertido configurar algo así
Pero me pregunto cómo sabía que ese bot iba a descomprimirlo. Si fuera un bot, esperaría que copiara el contenido HTML del artículo y las imágenes para pegarlos en su propio sitio, pero no parece que tuviera motivo para editar archivos o descomprimirlos
La animación es impresionante, y la cantidad de bots es enorme
Viendo que http://susam.net:8000 dejó de responder, parece que hoy habrá muchos más pitidos
ok2 veces ;)ncotelnet, puedes recibir una respuestaokantes de que se cierre la conexióntelnet -4 susam.net 8000