1 điểm bởi GN⁺ 2025-04-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Susam Pal đã mở một vòng lặp netcat phát tiếng bíp trên máy chủ Debian trong 24 giờ để bất kỳ ai cũng có thể kết nối; mỗi khi có kết nối, nó trả lời ok và phát 4 tiếng bíp trong terminal
  • One-liner này nhận kết nối bằng nc; một vòng lặp for chạy nền in ra ký tự chuông, rồi vòng lặp while bên ngoài lập tức khởi chạy một tiến trình mới để nhận kết nối tiếp theo
  • Trong thử nghiệm đầu tiên, trong 24 giờ đã có 4.761 lượt kết nối, tạo tổng cộng 19.044 tiếng bíp; người tham gia có thể dùng nhiều client khác nhau như trình duyệt, nc, curl, ssh, irssi
  • Sau khi bài viết ngày 10/4/2025 được chia sẻ lên Hacker News, trong 14 giờ đã ghi nhận 352.831 lượt kết nối và 1.396 địa chỉ client duy nhất, tăng lên tổng cộng 1.411.324 tiếng bíp
  • Ở vòng thứ hai, client đã ẩn danh C0276 tạo ra 327.209 lượt, chiếm phần lớn lưu lượng; việc xuất hiện trên HN đã phóng đại quy mô của một thử nghiệm nghịch ngợm nhỏ

Terminal beeper tạo bằng netcat

  • Thử nghiệm gồm một vòng lặp netcat nhỏ nhận các kết nối tùy ý trên máy chủ Debian
    • Khi client kết nối, gửi thông điệp ok
    • Đóng kết nối ngay lập tức
    • Phát 4 tiếng bíp trong terminal
  • Lệnh đã chạy như sau
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
  • Lệnh nc gửi ok rồi đóng kết nối, còn vòng lặp for bên trong in ký tự chuông bốn lần bất đồng bộ trong shell chạy nền
  • Vòng lặp while bên ngoài nhanh chóng chạy một tiến trình nc mới để có thể nhận kết nối tiếp theo
  • Trong thread HN, tác giả hướng dẫn rằng chỉ cần kết nối tới cổng 8000 bằng bất kỳ cách nào thì sẽ phát 4 tiếng bíp
    • Ví dụ: trình duyệt web
    • Ví dụ: nc HOST 8000
    • Ví dụ: curl HOST:8000
    • Ví dụ: ssh HOST -p 8000
    • Ví dụ: irssi -c HOST -p 8000

Hai lần bùng nổ kết nối nhờ HN

  • Thử nghiệm đầu tiên là một trò nghịch nhằm phản hồi một thread HN về hệ thống thông báo DIY kỳ quặc
    • Thảo luận gốc nằm trong HN thread
    • Trong 24 giờ đã có 4.761 lượt kết nối
    • Mỗi kết nối phát 4 lần, để lại tổng cộng 19.044 tiếng bíp terminal
    • Dữ liệu nằm trong beeper.log
  • Sau khi bài viết này được chia sẻ lên Hacker News vào ngày 10/4/2025, lượng kết nối lại tăng vọt
    • Trong 14 giờ đã ghi nhận 352.831 lượt kết nối
    • Có 1.396 địa chỉ client duy nhất
    • Tổng số tiếng bíp đạt 1.411.324 lần
    • Dữ liệu nằm trong beeper2.log
  • Nhiều lưu lượng trong thử nghiệm thứ hai có vẻ đến từ các vòng lặp client liên tục cứ kết nối tới vòng lặp beeper
    • Client đã ẩn danh C0276 tạo ra nhiều kết nối nhất với 327.209 lượt
    • Client hoạt động mạnh thứ hai, C0595, ghi nhận 6.771 lượt
    • Có 491 client chỉ kết nối đúng một lần
    • Số kết nối theo từng client nằm trong beeperclient2.log
  • Vòng đầu tiên tạo 4.761 lượt từ một số độc giả xem thread bình luận, nhưng vòng thứ hai khi lên trang nhất HN đã tăng lên 352.831 lượt
  • Thử nghiệm kết thúc như một hoạt động điện toán tập trung vào khám phá những ý tưởng kỳ quặc và niềm vui khi những người khác cùng tham gia, hơn là giải quyết vấn đề

1 bình luận

 
GN⁺ 2025-04-11
Các ý kiến trên Hacker News
  • Tuyệt thật. Tôi biết bản thân cũng đạo đức giả; tôi nói rằng viết blog là vì thích, và việc trở thành nô lệ của các chỉ số phân tích thì thật kinh khủng, nhưng thực tế là khi thấy một dự án mình bỏ ra vài giờ làm có lượng truy cập đổ về, phản hồi tức thì ấy quá đã
    Cuối cùng, để thỏa mãn nhu cầu được công nhận mà không đi đến mức dùng hẳn công cụ phân tích đầy đủ, tôi đã gắn một bộ đếm lượt truy cập đơn giản lên trang. Nó không phát tiếng bíp, nhưng có lẽ nên phát thì hơn

    • Như để chứng minh tôi đã sa ngã đến mức nào, tôi vừa tạo một script shell một dòng để phát tiếng bíp khi bộ đếm lượt truy cập phản hồi
      tail -F -n 0 /var/log/visitlog | while read ; do printf '\a' ; done
      Giờ chỉ cần có ai đó ghé thăm trang của tôi nữa thôi
    • Tôi cũng làm tương tự. Vì không muốn tước đi quyền riêng tư của người dùng, năm 2022 tôi đã tự làm một bộ đếm đơn giản, rồi viết trên blog về chiếc Raspberry Pi 400 trong phòng ngủ của mình
      Tôi vừa tải xuống một file âm thanh tiếng click, và định gắn vào để xem liệu mình có phát điên không
      https://joeldare.com/private-analtyics-and-my-raspberry-pi-4...
    • Tôi tò mò vì sao việc muốn được công nhận cho thành quả mình đã bỏ ra vài giờ làm lại bị cảm thấy là điều xấu
    • Trước đây khi vận hành trang bằng một trang PHP tự làm, tôi có một bộ đếm lượt truy cập dùng file văn bản bình thường ở bên trong. Bất ngờ là nó khá hiệu quả, và đó là một trải nghiệm thú vị
  • Bình luận ít được biết đến của tôi, vốn bị chôn vùi trong một thread HN bình thường, đã được đưa vào bài viết \o/

    • Điều đó cho thấy ngay cả một bình luận bị vùi rất sâu cũng có thể tạo ra hàng nghìn lượt xem. Trên thực tế, hẳn chỉ một phần trong số những người đọc bình luận phản hồi, vậy mà phần đó đã vượt quá 4.000 người, nên góc nhìn cũng khác đi
  • Thay vì rung chuông của Susam, nên xem Fish Doorbell. Nếu thấy cá đang đợi để bơi qua thì chỉ cần báo cho họ biết
    https://visdeurbel.nl/en/

    • Fish Doorbell sẽ là một ca sử dụng AI tuyệt vời, nhưng tôi muốn sống trong một thế giới nơi các tình nguyện viên xem video và tự tay bấm chuông khi cá muốn bơi qua
  • Vui thật. Có thể thấy hiện giờ nó đang được yêu mến khá nhiều
    while true; do; sleep 5; curl http://susam.net:8000 ; done
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (7) Failed to connect to susam.net port 8000 after 11 ms: Couldn't connect to server
    curl: (56) Recv failure: Connection reset by peer
    curl: (7) Failed to connect to susam.net port 8000 after 8 ms: Couldn't connect to server
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (7) Failed to connect to susam.net port 8000 after 8 ms: Couldn't connect to server
    curl: (1) Received HTTP/0.9 when not allowed
    curl: (7) Failed to connect to susam.net port 8000 after 10 ms: Couldn't connect to server
    curl: (7) Failed to connect to susam.net port 8000 after 11 ms: Couldn't connect to server
    curl: (56) Recv failure: Connection reset by peer
    curl: (56) Recv failure: Connection reset by peer
    curl: (1) Received HTTP/0.9 when not allowed

    • Anh đúng là đang giúp tình hình này rất nhiều đấy…
    • Nên thêm cờ --http0.9 vào curl. Như vậy có thể cho nó biết phản hồi chỉ trả về "ok", tức kiểu HTTP 0.9 chỉ có phần thân mà không có header, không phải là lỗi
    • Lần sau có thể thử dùng watch -n 5
  • “Rốt cuộc đây là một thí nghiệm thú vị. Vô dụng nhưng thú vị!”
    Những thí nghiệm như thế là tuyệt nhất. Đôi khi từ đó lại sinh ra đổi mới lớn, phát minh, tiến bộ y học, hoặc niềm vui còn lớn hơn

    • Tôi từng nghe câu “vô dụng không có nghĩa là không có giá trị”, và đó là một câu tôi rất thích
    • Có ngày chỉ là muốn biết ở phòng nghỉ cuối hành lang có cà phê mới pha hay không, hôm sau đã thành ra phát minh webcam
      https://en.m.wikipedia.org/wiki/Trojan_Room_coffee_pot
  • Một phiên bản phát triển hơn, và cũng cũ hơn từ năm 2000, của ý tưởng này là Peep (The Network Auralizer): công cụ giám sát mạng bằng âm thanh [1]
    Trước đây tôi từng chạy nó trong vài tháng, và phòng khách nghe như rừng rậm. Nếu chạy cùng cấu hình đó với lượng traffic tăng như ngày nay, có lẽ nó sẽ nghe như cổng địa ngục
    Vẫn có thể tìm thấy trên SourceForge, nhưng có thể sẽ cần chỉnh sửa đôi chút, hoặc cần một VM chạy bản phân phối Linux cũ
    https://sourceforge.net/projects/peep/
    [1] https://www.usenix.org/legacy/publications/library/proceedin...

  • Khoảng năm 1998, có một nhóm đang tìm nhân sự kỹ thuật mới cho các startup mà họ đầu tư. Có lẽ họ đã đăng ở đâu đó như /., rằng sẽ nhận hồ sơ qua SMTP trên một cổng không chuẩn, và dùng việc đó làm bộ lọc
    Tôi không nhận được hồi âm, nhưng cuối cùng vào năm sau lại làm việc tại một trong những công ty mà họ đầu tư

    • Cũng vào khoảng thời gian đó, có những trường hợp đưa tin tuyển dụng vào trong mã nguồn HTML của website. Khi ấy tôi không tìm việc kỹ thuật nên không ứng tuyển, nhưng luôn nghĩ đó là cách rất thông minh
      Những người mê công nghệ quan tâm đến phát triển web cứ liên tục bấm “View Source” trên mọi trang thú vị. Đó là một trong những con đường chính để các kỹ thuật front-end web thời kỳ đầu lan rộng, và thật sự rất tuyệt. Bạn có thể sao chép rồi dán HTML, tự tải .css và các tài nguyên khác xuống, chạy mô hình trang web ngoại tuyến và học các bí mật. Mọi phép màu đều được phơi bày, và chỉ cần có ý định vén bức màn lên xem, tương lai dường như rộng mở vô tận
    • Tương tự, tôi nhớ có một công ty từng đăng tuyển qua DNS. Hình như có một bản ghi TXT cho biết cách ứng tuyển thực tế
    • Tôi tò mò không biết cổng đó đã được ghi tài liệu, hay phải tự quét mới tìm ra
  • Hôm nay mới biết: phản hồi HTTP/0.9 chỉ trả văn bản không có header vẫn còn hoạt động trên các trình duyệt hiện đại. Hay thật

    • Mong là nó sẽ mãi như vậy. Rất hữu ích cho các dự án nhỏ
  • Có liên quan đôi chút, tôi từng làm một animation về lượng traffic HN mà tôi nhận được từ một bài đứng hạng nhất
    https://idiallo.com/blog/surviving-the-hug-of-death xin lỗi vì nó không thân thiện với di động
    Số bot nhiều đến đáng ngạc nhiên. Lần tới nếu nhận traffic từ HN, thử thiết lập thứ như thế này chắc sẽ thú vị

    • “Ban đầu tôi đối đầu thủ công và cho chúng ăn dữ liệu giả. Nhưng rất nhanh đã chán. Vì vậy tôi triển khai vũ khí bí mật: zip bomb. Khi bot truy cập trang của tôi, tôi phục vụ một tệp nén nhỏ, rồi máy chủ của chúng cần mẫn tải xuống và giải nén, làm bùng ra vài gigabyte hỗn loạn. Bùm. Kết thúc.”
      Nhưng tôi tò mò làm sao anh ấy biết bot đó sẽ giải nén. Nếu là bot thì có vẻ chúng chỉ sao chép nội dung HTML và hình ảnh của bài viết rồi dán lên trang của mình, chứ không có lý do gì để chỉnh sửa tệp hay giải nén
      Animation rất ấn tượng, và số lượng bot thì khổng lồ
  • Nhìn việc http://susam.net:8000 ngừng phản hồi, có lẽ hôm nay sẽ còn nhiều tiếng bíp hơn nhiều

    • Tôi thử khoảng 14 lần và nhận được ok 2 lần ;)
    • Đây không phải là máy chủ HTTP. Nếu thử bằng thứ như nc hoặc telnet, bạn có thể nhận phản hồi ok trước khi kết nối bị ngắt
      telnet -4 susam.net 8000