- Dumbpipe เป็นเครื่องมือสไตล์ Unix ที่ทำให้ เชื่อมต่อไปป์ข้อมูลระหว่างคอมพิวเตอร์สองเครื่องได้อย่างง่ายดาย
- ติดตั้งและใช้งานได้ ง่ายมาก และไม่ต้องมีบัญชีหรือการตั้งค่าเพิ่มเติม
- บนคอมพิวเตอร์เครื่องหนึ่งสามารถรอใน โหมดผู้รับ พร้อมรับคีย์ลับและคำสั่งเชื่อมต่อได้
- บนอีกเครื่องหนึ่งสามารถ ส่งและเชื่อมต่อด้วยคำสั่งบรรทัดเดียว เพื่อส่งต่อข้อมูลได้
- ทำงานได้ไม่ว่าระบบเครือข่ายจะเป็นแบบใด จึงใช้งานได้จากทุกที่
แนะนำ Dumbpipe
- เครื่องมือโอเพนซอร์สสำหรับ รับส่งข้อมูลโดยตรงระหว่างคอมพิวเตอร์สองเครื่องในลักษณะเดียวกับ Unix pipe
- ติดตั้งและรันได้ด้วยคำสั่งบรรทัดเดียวโดยไม่ต้องตั้งค่าซับซ้อน จึงใช้งานได้จริงและเข้าถึงได้ง่าย
คุณสมบัติหลัก
- หลังติดตั้งบนคอมพิวเตอร์เครื่องหนึ่งแล้ว สามารถเข้าสู่ โหมดรอรับ (listen) ได้ด้วยคำสั่ง
./dumbpipe listen
- เมื่อรันแล้ว ระบบจะสร้าง คีย์ลับ อัตโนมัติ พร้อมแสดง คำสั่งเชื่อมต่อเฉพาะ ที่ใช้งานจากคอมพิวเตอร์อีกเครื่องได้
- ฝั่งผู้ส่งสามารถส่งข้อมูลได้อย่างง่ายดายในรูปแบบ
echo "hello" | ./dumbpipe connect ...
- ไม่ต้องสร้างบัญชีแยกต่างหาก
- ใช้งานได้ทันทีโดยไม่ต้องสมัคร, ล็อกอิน หรือกรอกข้อมูลสมาชิก
- ทำงานได้ทันทีโดยไม่ต้องตั้งค่าเพิ่ม
- ใช้งานได้เลยโดยไม่ต้องมี environment variable, ไฟล์คอนฟิก หรือการตั้งค่าไฟร์วอลล์เพิ่มเติม
- รับส่งข้อมูลระหว่างอุปกรณ์ได้จากทุกที่ทั่วโลก
- ทำงานได้ โดยไม่จำกัดสภาพแวดล้อมเครือข่าย เช่น private network, cloud หรือ local network
สรุปตัวอย่างการใช้งาน
- ฝั่งผู้รับรัน dumbpipe ใน โหมด listen แล้วคัดลอกคีย์และข้อมูลที่จำเป็นสำหรับการเชื่อมต่อไปส่งต่อ
- ฝั่งผู้ส่งใช้ คำสั่ง connect ที่มีคีย์ดังกล่าวรวมอยู่เพื่อส่งข้อมูลในรูปแบบสตรีม
นัยสำคัญในการนำไปใช้
- ทำให้ผู้ใช้ใหม่หรือ ผู้ที่ยังไม่ชำนาญก็สามารถสร้าง pipeline การส่งข้อมูลผ่านเครือข่ายได้ง่าย
- นำไปใช้ได้รวดเร็วในหลายกรณี เช่น การส่งไฟล์หรือข้อความสั้น ๆ, การส่งต่อข้อมูลระหว่างอุปกรณ์, งานพัฒนาและระบบอัตโนมัติสำหรับการดีพลอย
- ด้วยคำสั่งเดียวและเวิร์กโฟลว์ที่เข้าใจง่าย จึง ช่วยเพิ่มประสิทธิภาพการทำงานของวิศวกร
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
แนะนำวิธีส่งคำสั่งระยะไกลไปมาด้วย
sshและsocatหรือmkfifoหากปลายทางถูกไฟร์วอลล์หรือ NAT ขวางอยู่ ก็สามารถใช้ public SSH server อย่าง ssh-j.com เป็นรีเลย์เพื่อรับส่งข้อมูลอย่างปลอดภัยได้ (ใช้ SSH tunneling สองชั้น)
นี่คือเนื้อหาที่เคยโพสต์ไว้ครั้งแรกในเธรดเกี่ยวกับ beam ลิงก์
สงสัยว่าทำไมการส่งไฟล์ระหว่างพีซีสองเครื่องด้วยสาย USB อย่างง่าย ๆ ถึงไม่เป็นมาตรฐาน ถ้าทุก OS รองรับแค่โปรโตคอลเดียวกัน ก็น่าจะเป็นฟีเจอร์ที่ควรมีมาตั้งแต่แรก แม้จะรู้ว่าในทางทฤษฎีสาย USB A-A ไม่มีอยู่จริง แต่จุดนั้นเองกลับเป็นเหตุผลว่าทำไมจึงควรมี ถ้าเป็น USB C ก็น่าจะทำได้สบาย ระหว่าง Android กับ PC พอทำได้บ้าง แต่ระหว่างโน้ตบุ๊กสองเครื่องกลับทำไม่ได้
ทาง MS ก็เคยออกเครื่องมือที่รองรับสิ่งนี้เช่นกัน แต่ดูเหมือนจะมีให้เฉพาะบน Windows CE ลิงก์ทางการของ MS
ที่เกี่ยวข้องกัน ฉันมีรายการเครื่องมือส่งไฟล์ที่รวบรวมไว้เอง (ส่วนใหญ่เป็นแบบ browser-based และมี CLI ปนเล็กน้อย) ไว้แชร์ทุกครั้งที่มีโอกาส และกำลังมองหาเครื่องมือดี ๆ เพิ่มอยู่เสมอ รายการเครื่องมือของฉัน
สงสัยว่าระหว่าง dumbpipe กับ Tailscale มีส่วนที่ทำซ้ำกันมากแค่ไหน ดูเหมือนมีฟังก์ชันร่วมกันหลายอย่างที่จำเป็นเหมือนกัน และน่าจะมีไลบรารีระดับล่างที่ใช้ได้อยู่แล้วสำหรับเรื่องอย่างการทะลุ NAT หรือไม่ก็นี่อาจเป็นไลบรารีแรกในลักษณะนี้ก็ได้
ที่ pico.sh ก็ทำฟังก์ชันส่งไฟล์คล้ายกันโดยใช้ SSH pipe.pico.sh
ถ้าสนใจ ecosystem ของเครื่องมือ tunneling แนวนี้ ก็มี awesome list ที่น่าอ้างอิง awesome-tunneling
iroh เป็นเทคโนโลยีที่ยอดเยี่ยมจริง ๆ เมื่อสองสัปดาห์ก่อนฉันไปเข้าร่วมเวิร์กช็อปของ Rüdiger (N0) ที่งาน web3 summit ในเบอร์ลิน และได้รับแรงบันดาลใจอย่างมาก โค้ดสำหรับสร้างบริการลักษณะนี้ก็เปิดเผยอยู่ที่นี่ โค้ด iroh-workshop และแนะนำให้ลองดูสไลด์ด้วย
ถ้าอยากได้ pipe ที่ก้าวหน้ากว่านี้ ฉันก็กำลังทำ tunnel manager CLI ที่สร้างบน Iroh รองรับ TCP, UDP และ UNIX socket port forwarding GitLab ของ qtm
โซลูชันแบบนี้มีออกมาอย่างน้อยปีละหนึ่งถึงสองครั้ง ถ้าต้องการโอเพนซอร์สที่ดีและเน้นด้าน connection orchestration ขอแนะนำ Spacebrew เอกสารทางการของ Spacebrew
ฉันสนใจวิธีนี้เป็นพิเศษมาตลอด GitHub ของ pwnat
มันไม่ได้ครอบคลุมทุกกรณีและซับซ้อนกว่าเล็กน้อย แต่ข้อดีสูงสุดคือไม่ต้องมีตัวกลาง