cs-stream v2.1.0
Encrypted TCP stream transport for ZFS replication and folder sync.
Replaces netcat in ZFS send/receive pipelines.
Renamed from "zstream" as of v2.0.0 (avoids clashing with the
unrelated OpenZFS tool of the same name) -- functionally identical
to zstream v1.3.3, same wire protocol and CLI.
tunnel-listen/tunnel-send provide a bidirectional encrypted proxy
(e.g. for rclone), with required --local=ADDR.
Used by csweb-gui job-replicate and job-filesync for encrypted
ZFS send/receive and rclone-over-SFTP folder sync.
Downloads
| Platform | File |
|---|---|
| Linux x86_64 | cs-stream-linux-amd64 |
| Linux ARM64 | cs-stream-linux-arm64 |
| Windows x86_64 | cs-stream-windows-amd64.exe |
| FreeBSD x86_64 | cs-stream-freebsd-amd64 |
| OmniOS/Illumos x86_64 | cs-stream-illumos-amd64 |
| Oracle Solaris x86_64 | cs-stream-solaris-amd64 |
| macOS x86_64 | cs-stream-darwin-amd64 |
| macOS Apple Silicon | cs-stream-darwin-arm64 |
Usage
# Receiver (start first):
cs-stream listen 9000 SESSIONKEY | zfs receive -F tank/backup
# Sender:
zfs send tank@snap | cs-stream send 192.168.1.10 9000 SESSIONKEY
Tunnel mode
# Folder sync via rclone over encrypted tunnel.
# --local=ADDR is required: the local address the wrapped child
# process binds to (tunnel-listen) or connects to (tunnel-send).
# Receiver (start first):
cs-stream tunnel-listen 9000 KEY --local=127.0.0.1:2222 -- rclone serve sftp /dst --addr 127.0.0.1:2222
# Sender:
cs-stream tunnel-send HOST 9000 KEY --local=127.0.0.1:2222 -- rclone sync /src :sftp: --sftp-host=127.0.0.1 --sftp-port=2222
Install (csweb-gui)
Download the binary for your platform and place it in:
- Linux/OmniOS/BSD/Solaris:
/opt/csweb-gui/data/cs_server/tools/cs-stream/<os>.amd64/cs-stream - Windows:
C:\opt\csweb-gui\data\cs_server\tools\cs-stream\mswin.amd64\cs-stream.exe - chmod +x on Linux/BSD/OmniOS/Solaris
csweb-gui deploys and updates this automatically per member; manual
placement is only needed for a fresh member never seen by the admin host.