- Susam Palは、誰でも接続できる netcatビーパーループ をDebianサーバー上で24時間公開し、接続が入るたびに
ok と応答してターミナルのビープ音を4回鳴らすようにした
- ワンライナーは
nc で接続を受け、バックグラウンドの for ループが ベル文字 を出力し、その間に外側の while ループが次の接続を受ける新しいプロセスを即座に起動する構造になっている
- 最初の実験では24時間で 4,761件の接続 があり、合計19,044回のビープ音が鳴り、ブラウザ・
nc・curl・ssh・irssi など多様なクライアントで参加できた
- 2025年4月10日にこの投稿を Hacker News に共有した後は、14時間で 352,831件の接続 と1,396件のユニークなクライアントアドレスが記録され、合計 1,411,324回 のビープ音に膨れ上がった
- 第2ラウンドでは匿名化されたクライアント C0276 が327,209件を発生させてトラフィックの大半を占め、小さないたずら的実験が HN での露出によって大きく拡大した
netcatで作ったターミナルビーパー
- 実験は、Debianサーバーで任意の接続を受け付ける小さな
netcat ループ で構成されている
- クライアントが接続すると
ok メッセージを送る
- 接続をただちに閉じる
- ターミナルでビープ音を4回鳴らす
- 実行したコマンドは次のとおり
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
nc コマンドは ok を送ったあと接続を閉じ、内側の for ループはバックグラウンドシェルで 非同期に ベル文字を4回出力する
- 外側の
while ループはすばやく新しい nc プロセスを実行し、次の接続を受けられるようにする
- HN スレッドでは、ポート8000にどんな方法でも接続すれば4回のビープ音が鳴ると案内している
- 例: Webブラウザ
- 例:
nc HOST 8000
- 例:
curl HOST:8000
- 例:
ssh HOST -p 8000
- 例:
irssi -c HOST -p 8000
HNで2度拡大した接続急増
- 最初の実験は、奇妙なDIY通知システムに関する HN スレッドへの反応として行われた、いたずら的な実験だった
- 元の議論は HN thread にある
- 24時間で4,761件の接続が発生した
- 接続ごとに4回鳴るため、合計 19,044回 のターミナルビープ音が記録された
- データは beeper.log にある
- 2025年4月10日にこの記事を Hacker Newsで共有 した後、接続は再び急増した
- 14時間で 352,831件 の接続が記録された
- ユニークなクライアントアドレスは1,396件だった
- ビープ音の総数は 1,411,324回 に達した
- データは beeper2.log にある
- 第2の実験で発生したトラフィックの多くは、ビーパーループに接続し続ける 継続的なクライアントループ から来たように見える
- 匿名化されたクライアント C0276 は327,209件で、最も多くの接続を発生させた
- 2番目に活発だった C0595 は6,771件を記録した
- 正確に1回だけ接続したクライアントは491件だった
- クライアントごとの接続数は beeperclient2.log にある
- 第1ラウンドではコメントスレッドを見た一部読者から4,761件が発生したが、HN フロントページに載った第2ラウンドでは352,831件にまで拡大した
- この実験は、問題解決よりも 奇妙なアイデアの探索 と、ほかの人たちが一緒に参加する楽しさに焦点を当てたコンピューティング活動として締めくくられている
1件のコメント
Hacker News の意見
すばらしい。自分でも偽善的だとはわかっている。ブログは好きで書いているし、分析指標の奴隷になるのはひどいことだと言いながら、実際には数時間かけたプロジェクトにアクセスが殺到するのを見ると、即時のフィードバックがあまりにも気持ちいい。
結局、本格的な分析ツールまでは使わずに承認欲求を満たそうとして、サイトに簡単な訪問カウンターを付けた。ビープ音は鳴らないが、もしかすると鳴るべきなのかもしれない。
tail -F -n 0 /var/log/visitlog | while read ; do printf '\a' ; doneあとは誰かが自分のサイトを訪れてくれればいい。
クリック音のファイルを今ダウンロードしたので、組み込んだら自分が狂ってしまうか試してみるつもり。
https://joeldare.com/private-analtyics-and-my-raspberry-pi-4...
普通の HN スレッドに埋もれていた自分のあまり知られていないコメントが記事に載った \o/
Susam の鐘を鳴らすのではなく、Fish Doorbellを見るべき。魚が通ろうとして待っているのを見たら知らせればいい。
https://visdeurbel.nl/en/
面白い。今かなり愛されているのがわかる。
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 allowedcurlに--http0.9フラグを追加するとよい。単に"ok"だけが返ってくるレスポンス、つまりヘッダーなしで本文だけの HTTP 0.9 方式がエラーではないと伝えられる。watch -n 5を使ってみるといい。「結局これは面白い実験だった。役には立たないが面白かった!」
こういう実験が最高だ。時にはそこから大きなイノベーション、発明、医学的進歩、さらに大きな楽しさが生まれることもある。
https://en.m.wikipedia.org/wiki/Trojan_Room_coffee_pot
このアイデアの、より発展した古い2000年版として Peep (The Network Auralizer) がある。音でネットワークを監視するツールだ [1]。
以前数か月動かしていたが、リビングがジャングルのように聞こえた。今どきのトラフィック増加量で同じ設定を動かしたら、おそらく地獄の門のように聞こえると思う。
まだ SourceForge で見つけられるが、少し手を入れるか、古い Linux ディストリビューションを動かす VM が必要かもしれない。
https://sourceforge.net/projects/peep/
[1] https://www.usenix.org/legacy/publications/library/proceedin...
1998年ごろ、投資先スタートアップの新しい技術人材を探していたグループがあった。おそらく /., のような場所に、非標準ポートの SMTPで履歴書を受け付けると投稿し、それをフィルタリングの仕組みとして使っていた
返事はもらえなかったが、結局その翌年、彼らが投資していた会社の1社で働くことになった
ウェブ開発に興味のあるギークたちは、面白いページを見るたびにひたすら「View Source」を押していた。それは初期のウェブフロントエンド技法が広まる主要な経路で、本当に良かった。HTML をコピー&ペーストし、
.cssや他のリソースを自分でダウンロードして、オフラインでサイトのモックを動かしながら秘密を学ぶことができた。すべての魔法は公開されていて、カーテンをめくる気さえあれば、未来はどこまでも開けているように思えた今日学んだこと: ヘッダーなしでテキストだけを返す HTTP/0.9 レスポンスは、現代のブラウザでもまだ動作する。素晴らしい
少し関連して、以前 HN の1位投稿で受けたトラフィックをアニメーションにしたことがある
https://idiallo.com/blog/surviving-the-hug-of-death モバイルフレンドリーではなくて申し訳ない
ボットが驚くほど多い。次に HN からトラフィックを受けたら、こういうものを設定してみると面白そうだ
でも、そのボットが展開するとなぜ分かったのか気になる。ボットなら記事の HTML コンテンツと画像くらいをコピーして自分のサイトに貼り付けるように思えるし、ファイルを編集したり展開したりすることはなさそうだ
アニメーションは印象的で、ボットの数はものすごい
http://susam.net:8000 が応答しなくなったのを見ると、今日はビープ音がずっと多く鳴りそうだ
okを2回受け取った ;)ncやtelnetのようなもので試すと、接続が切れる前にokレスポンスを受け取れるtelnet -4 susam.net 8000