- Dumbpipe là một công cụ kiểu Unix cho phép kết nối đường ống dữ liệu một cách đơn giản giữa hai máy tính
- Cài đặt và sử dụng rất đơn giản, không cần tài khoản hay thiết lập riêng
- Trên một máy tính, có thể chờ ở chế độ nhận và nhận khóa bí mật cùng lệnh kết nối
- Trên máy tính còn lại, có thể gửi và kết nối chỉ bằng một dòng lệnh để truyền dữ liệu
- Công cụ hoạt động bất kể môi trường mạng, nên có thể dùng ở mọi nơi
Giới thiệu về Dumbpipe
- Công cụ mã nguồn mở cho phép trao đổi dữ liệu trực tiếp giữa hai máy tính theo cách giống Unix pipe
- Có thể cài đặt và chạy chỉ với một dòng lệnh mà không cần cấu hình phức tạp, nên rất thực dụng và dễ tiếp cận
Các tính năng chính
- Sau khi cài trên một máy tính, có thể vào chế độ chờ (nhận) bằng lệnh
./dumbpipe listen
- Khi chạy, công cụ sẽ tự động tạo khóa bí mật và cung cấp lệnh kết nối chuyên dụng để máy tính khác có thể truy cập
- Bên gửi có thể gửi dữ liệu dễ dàng theo dạng
echo "hello" | ./dumbpipe connect ...
- Không cần tạo tài khoản riêng
- Có thể dùng ngay mà không cần đăng ký, đăng nhập hay khai báo thông tin thành viên
- Hoạt động ngay không cần cấu hình bổ sung
- Có thể sử dụng ngay mà không cần biến môi trường, tệp cấu hình hay thiết lập tường lửa riêng
- Truyền nhận dữ liệu giữa hai thiết bị từ bất kỳ đâu trên thế giới
- Hoạt động không bị giới hạn bởi môi trường mạng như mạng riêng, đám mây hay mạng cục bộ
Tóm tắt ví dụ sử dụng
- Bên nhận chạy dumbpipe ở chế độ listen để sao chép và gửi khóa cùng các thông tin cần thiết cho kết nối
- Bên gửi dùng lệnh connect có chứa khóa đó để truyền dữ liệu dưới dạng stream
Hàm ý ứng dụng
- Ngay cả người dùng mới hoặc ít kinh nghiệm cũng có thể dễ dàng xây dựng pipeline truyền dữ liệu mạng
- Có thể nhanh chóng áp dụng cho nhiều mục đích như truyền tệp hoặc thông điệp đơn giản, chuyển tiếp dữ liệu giữa các thiết bị, phát triển và tự động hóa triển khai
- Quy trình trực quan và chỉ cần một lệnh giúp nâng cao năng suất cho kỹ sư
1 bình luận
Ý kiến Hacker News
Giới thiệu cách dùng
sshvớisocathoặcmkfifođể trao đổi lệnh từ xaNếu phía đích bị chặn bởi firewall hoặc NAT, có thể dùng một máy chủ SSH công khai như ssh-j.com làm relay để truyền nhận dữ liệu an toàn (dùng SSH tunneling kép)
Đây là nội dung từng được đăng lần đầu trong thread liên quan đến beam liên kết
spipedthì có thể triển khai đơn giản hơn mà không cần giả định phải cósshtrang chính thức của spipedTò mò vì sao việc hai PC chỉ cần một cáp USB để trao đổi file đơn giản lại không trở thành chuẩn. Nếu mọi OS chỉ cần hỗ trợ cùng một giao thức thì có vẻ đây phải là tính năng có từ rất sớm. Dù về lý thuyết cáp USB A-A không tồn tại, chính điều đó lại càng cho thấy nhu cầu là có thật. Với USB C thì đáng lẽ hoàn toàn làm được; giữa Android và PC thì phần nào làm được, nhưng giữa hai laptop với nhau thì không
MS cũng từng phát hành công cụ hỗ trợ việc này, nhưng có vẻ chỉ cung cấp cho Windows CE liên kết chính thức của MS
Liên quan đến chủ đề này, tôi có một danh sách các công cụ truyền file đã tổng hợp (chủ yếu dựa trên trình duyệt + một ít CLI). Mỗi khi có dịp tôi lại chia sẻ và tiếp tục tìm thêm công cụ hay để bổ sung danh sách công cụ của tôi
Tò mò không biết giữa dumbpipe và Tailscale có bao nhiêu phần bị triển khai trùng lặp. Có vẻ cả hai đều cần khá nhiều tính năng chung, như NAT traversal, nên hẳn đã có nhiều thư viện low-level dùng được sẵn. Hoặc cũng có thể đây chính là thư viện đầu tiên kiểu đó
Trên pico.sh, họ cũng đã triển khai một tính năng truyền file tương tự bằng SSH pipe.pico.sh
Nếu quan tâm đến hệ sinh thái các công cụ tunneling tương tự, có một danh sách awesome khá đáng tham khảo awesome-tunneling
iroh thực sự là một công nghệ tuyệt vời. Hai tuần trước tôi đã tham dự workshop của Rüdiger (N0) tại web3 summit ở Berlin và thấy cực kỳ truyền cảm hứng. Mã nguồn để xây một dịch vụ tương tự cũng được công khai ở đây mã workshop iroh, rất nên xem cả slide nữa
Nếu muốn một pipe nâng cao hơn, tôi cũng có một CLI quản lý tunnel đang xây dựa trên Iroh. Hỗ trợ TCP, UDP, và port forwarding cho UNIX socket qtm trên GitLab
Những giải pháp kiểu này cứ một hai lần mỗi năm lại xuất hiện. Nếu cần một mã nguồn mở ổn chuyên về orchestration kết nối, tôi đề xuất Spacebrew tài liệu chính thức của Spacebrew
Tôi luôn thấy cách này đặc biệt thú vị GitHub của pwnat
Nó không bao phủ được mọi trường hợp và phức tạp hơn một chút, nhưng ưu điểm lớn nhất là không cần bên trung gian