Off-Site Backup Is Where Every Cheap Plan Falls Apart
You’ve got your data sorted. Restic, Borg, or plain old rsync. You’ve picked your poison and it works great locally. Your RAID array breathes easy. Your ZFS checksums pass. Your snapshots age gracefully.
Then you look at off-site backup options and the room gets cold.
Backblaze B2 hands you an S3 API and a token to lose. Wasabi’s free egress comes with a fair-use policy and a 90-day minimum storage duration that bites churn-heavy backup sets. S3 is overkill. Storj is decentralized until it isn’t, and their node operators get weird about storage. Every one of them is a bucket with a billing model attached, and none of them give you a filesystem you can ls.
Then there’s rsync.net.
It’s not that rsync.net is shiny. It’s that it doesn’t pretend to be. It’s SSH. It’s ZFS. No dashboards. No “egress windows.” No surprise charges for bandwidth you didn’t plan on needing. Your data lives in Fremont, Denver, Zurich, or Hong Kong (you pick, and migrating between them later is free), and you access it the same way you access your home lab: SSH keys and basic Unix tools.
Verdict up front, because the price is the part everybody gets wrong: rsync.net lists at 1.5 cents per GB per month. That’s $15 per TB, roughly double Backblaze B2 and about twice Wasabi. It is not the cheap option. If you back up with Borg specifically, their stripped-down borg plan drops to 1 cent per GB ($10 per TB, annual prepay) and the math gets closer. What you’re buying at either price is a real POSIX filesystem over SSH and a Unix engineer who answers the phone.
What Actually Is rsync.net?
Okay, here’s the unsexy part: rsync.net is an SSH server in a datacenter with a ZFS filesystem behind it.
That’s it. Nothing more to it.
But that simplicity is the feature.
You get an account. You get SSH access. You get a filesystem quota. You generate an SSH keypair, upload the public key, and suddenly you have an off-site target that speaks the same language as every backup tool you’ve ever used: POSIX.
Under the hood, your account is a ZFS pool living in its own VM at one of their four sites, and you pick the site when you order. One site, unless you pay for the geo-redundant product (more on the cost of that below). Snapshots are automatic and essentially free: ZFS snapshots don’t duplicate data, they just record the delta. Daily snapshots for years cost you the storage of those years’ changes, not full copies.
There’s no S3 API. There’s no weird lock semantics. There’s no “eventually consistent” handwaving. You SSH in, you write files, they exist. You read them back, they’re there. Your access keys are just SSH keys. If someone steals your SSH key, you revoke it and upload a new one, same model you’ve been using for fifteen years on actual servers.
No NSA-shaped SaaS layer. No venture capital vying for your eyeballs. The company makes money because you use storage. That’s the entire business model.
Pricing: What It Actually Costs
rsync.net’s pricing is straightforward, and it’s higher than the internet folklore suggests. Here are the published rates as of August 2026.
Standard accounts (single region, ZFS snapshots included, full support):
| Size | Rate | Per TB per month |
|---|---|---|
| 0 to 9 TB | 1.5 cents per GB | $15.00 |
| 10 to 99 TB | 1.2 cents per GB | $12.00 |
| 100 TB and up | 0.75 cents per GB | $7.50 |
Small print that matters: the entry tier has an 800 GB minimum order, so the cheapest standard account is $12 a month whether you store 200 GB or 800 GB. Annual payment takes 10% off, two-year prepay takes 15%. Their pricing page prints 1.25 cents for the 10 TB tier while the order form charges 1.2, which is the number their FAQ uses too, so trust the order form.
Run the numbers: 2 TB costs $30 a month. 10 TB costs $120. Against Backblaze B2 at $6 per TB and Wasabi at roughly $8, rsync.net is two to three times the price of commodity object storage. Anyone quoting you $5 per TB for this service (including an earlier version of this article, for which I owe a reader an apology) is quoting a number that isn’t on the price list.
The Borg Discount, and the Stale Page Advertising It
If your backup tool is Borg, rsync.net sells a stripped-down “borg account” at 1 cent per GB per month, which is $10 per TB. Minimum order is 200 GB. Billing is annual only, since the order form disables the monthly option on that package. Geo-redundancy on it runs 1.75 cents per GB.
Check this yourself before you budget, because their own site disagrees with itself. The borg product page at /products/attic.html advertises tiers of 0.8 cents and 0.5 cents per GB. Click through its order buttons and the checkout charges either 1 cent (the borg package) or plain 1.5 cent standard pricing, depending on which button you hit. The $18-a-year-for-100GB offer on that page is stale too, since the borg package now has a 200 GB floor. The page at /products/borg.html quotes the 1 cent rate that checkout actually applies. If you want the 0.8 cent rate, email sales and get it in writing rather than assuming the marketing page is live.
What you give up on a borg account:
- You must pay annually, up front, and the usual 10% annual discount doesn’t stack on top.
- No free ZFS snapshots. Borg handles your versioning and retention, which is exactly why the rate is lower. That also means the snapshot safety net described later in this article doesn’t apply to you.
- No Borg-specific support, no integration engineering, no subaccounts. Their own wording: “You’re here because you’re an expert.”
Ingress and egress are free on both plans, and there’s no per-request billing. Unlimited repositories.
The Lifetime Option Nobody Mentions
The order form also offers a one-time lifetime payment: $540 per TB on a standard account, $480 per TB on the borg package, 1 TB minimum. That’s roughly three years of standard monthly billing, after which you stop paying. Whether you’d hand any company a lump sum against the word “lifetime” is your call, but a 25-year-old profitable business with no acquisition story is a better bet for it than most.
Geo-Redundancy Is a Separate, Pricier Product
A standard account is one copy in one datacenter. rsync.net quotes 99.9999% resilience within a site, which covers disk and hardware failure, not the site itself.
If you want your filesystem replicated nightly to a second rsync.net site, that’s the geo-redundant product at 2.625 cents per GB per month, about $26 per TB. That’s a 75% premium over standard, and it is not applied automatically because you’d notice the bill.
rsync.net’s own FAQ draws the line well: if you still hold the primary copy at home, a standard single-site account is your backup and you’re fine. If rsync.net is the only place your data exists, buy geo-redundant or accept that your “backup” lives in one building.
So Why Pay the Premium
Not for the storage price, which loses. You’re paying for:
- A POSIX filesystem you can
ls,mv, andborg mountagainst instead of an object API - ZFS snapshots you don’t manage, on the account types that include them
- Support that reaches an actual Unix engineer rather than a ticket queue
- No egress metering, no request billing, no minimum retention period on deletes
- A company that’s been doing the same thing since 2001, isn’t chasing a Series C, and isn’t pivoting to AI backups next quarter
If storage cost per TB is your deciding factor, B2 wins and you should buy B2. Read on for where that trade actually breaks down.
SSH-Only API Is a Feature, Not a Limitation
This is the part that trips people up.
rsync.net doesn’t have a REST API. They don’t have a web console. You can’t click a button to restore your data through a browser. Your backup tool can’t make HTTP requests to rsync.net.
Honestly? That’s the best thing about them.
Everything you back up flows over SSH. Everything you restore flows over SSH. SSH is cryptographically signed. Your SSH keypair lives on your backup machine, not in some cloud provider’s “secure enclave.” There’s no token to expire. There’s no OAuth flow that confuses you. There’s no leaking “share link” that somebody finds.
When you back up to rsync.net, your data is encrypted client-side, SSH-tunneled to their datacenter, and lands in a ZFS pool where it’s automatically checksummed to hell. If a bit flips, ZFS knows immediately. If someone on their network tries to read your files, they need your SSH key.
Compare that to Backblaze B2 (REST API over HTTPS, tokens stored by your backup tool, metered egress above a threshold) or Wasabi (S3-compatible REST API with the same token mess). You’re trading HTTP convenience for SSH security, and for off-site backup, that’s a trade worth making.
Plus, anything that speaks SFTP, SCP, or rsync can talk to rsync.net. That’s most of the Unix ecosystem. Restic does SFTP. Borg does SFTP. Plain rsync works. If you’re paranoid and want to write your own backup script in POSIX shell, rsync.net doesn’t care.
Client-Side Encryption: Restic or Borg
rsync.net itself doesn’t encrypt your data. ZFS can, but by default it doesn’t. That means their staff (or a legal order, or a datacenter-access incident) could theoretically read your files.
That’s fine, because Restic and Borg handle that for you.
Restic is simpler to reason about. You point it at an SFTP location, give it a password, and every backup is encrypted and deduplicated on your machine before it leaves your network. Restic uses AES-256 in counter mode, authenticated with Poly1305-AES, under the hood. A password secures the repo. No private keys to manage. You can restore from anywhere with the password.
Borg is weirder but more powerful. Borg generates a random repository key (actually three secrets), and that key is itself protected by your passphrase. Your passphrase is salted and iterated (like a password manager) to unlock it. The nice part: you can rotate the passphrase with borg key change-passphrase without re-encrypting the whole repo, because you’re only re-wrapping the key, not the data. Borg’s deduplication is aggressive within a repo: if you point multiple machines at the same repo, identical chunks across all of them are stored once, which saves you disk space (and money). It’s overkill for most home labs, but if you’ve got several machines backing up overlapping datasets, that shared dedup is real.
Here’s a Restic config:
#!/bin/bash# Restic backup to rsync.net via SFTP
export RESTIC_PASSWORD="$(cat /etc/restic/password.txt)"
# First run: init the repo# restic init
# Daily backuprestic backup \ --exclude-file=/etc/restic/excludes.txt \ /home /var/www /etc
# Retention: keep 30 daily, 12 monthly, 2 yearlyrestic forget \ --keep-daily 30 \ --keep-monthly 12 \ --keep-yearly 2 \ --pruneThat’s it. Restic handles encryption transparently. Your data lands at rsync.net encrypted, and only you (with the password) can read it.
Borg looks similar but the setup is slightly different:
#!/bin/bash# Borg backup to rsync.net via SFTP
export BORG_PASSPHRASE="$(cat /etc/borg/passphrase.txt)"
# First run: init the repo with repokey encryption# borg init --encryption=repokey-blake2
# Daily backupborg create \ --progress \ --stats \ --compression lz4 \ ::'{hostname}-{now}' \ /home /var/www /etc
# Retention: 30 days, 12 months, 2 yearsborg prune \ --keep-daily 30 \ --keep-monthly 12 \ --keep-yearly 2 \ --progressThe core difference: Borg compresses by default, Restic doesn’t (Restic assumes compressed files don’t compress well, which is fair). Borg names snapshots with :: separators and supports mounting snapshots as FUSE filesystems. Restic has better restore UX and doesn’t require a FUSE mount.
Pick Restic if you want simplicity. Pick Borg if you want to show off.
Snapshots on Their Side (Bonus Retention)
Here’s where rsync.net gets interesting: they snapshot your entire filesystem automatically.
You don’t pay extra for these and you don’t have to trigger them. The published default on the entry tier is 7 daily snapshots. Accounts at 10 TB and up get 7 daily plus 4 weekly. Any account can request a custom snapshot schedule, so if you want hourlies or a longer weekly tail, ask for it rather than assuming it. Borg-plan accounts get none of this, per the discount terms above.
This is a layer of protection on top of Restic or Borg’s retention. If a ransomware incident or human error wipes your backup (the backup tool deletes old snapshots because you set the retention wrong, etc.), rsync.net’s snapshots are still there. You can ask their support team to roll back a directory to a specific point in time, and they’ll restore it to your filesystem.
This only works if you’re not encrypting at the rsync.net level. With client-side encryption (Restic/Borg), rsync.net’s snapshots just snapshot the encrypted blobs, which is fine, you’ve still got historical versions of encrypted data if your backup tool breaks.
Restore Drill: Make Sure It Actually Works
If you’ve never restored from it, you haven’t actually tested it. This is not theoretical. Multiple times a year, somebody discovers their “backups” have been corrupted the whole time. Or the backup tool has a bug. Or the encryption password doesn’t work.
Do a restore drill every quarter.
With Restic:
export RESTIC_PASSWORD="$(cat /etc/restic/password.txt)"
# List available snapshotsrestic snapshots
# Restore a specific filerestic restore <snapshot-id> --target /tmp/restore -- /home/user/critical-file.txt
# Verify itls -la /tmp/restore/home/user/critical-file.txtWith Borg:
export BORG_PASSPHRASE="$(cat /etc/borg/passphrase.txt)"
# List snapshotsborg list
# Mount a snapshot and poke aroundmkdir -p /mnt/borg-restoreborg mount ::latest /mnt/borg-restorels -la /mnt/borg-restore/
# Clean upfusermount -u /mnt/borg-restoreThe point isn’t to do a full restore (that takes forever). The point is to verify that:
- You can authenticate to rsync.net
- The backup data is there
- The encryption key/password is correct
- You can list snapshots and extract files
If any of that fails, your off-site backup is security theatre. Fix it immediately.
Where the Cheaper Plans Actually Cost You
rsync.net at $15 per TB (or $8 on the borg plan) loses the price fight. Here’s what the cheaper options really charge, because the scary egress numbers people repeat are mostly out of date.
Backblaze B2 is $6 per TB for storage, and egress is free up to three times your average monthly stored volume, then $0.01/GB after that. A full 2 TB restore from a 2 TB bucket costs you nothing. The old “your restore will cost $200” warning belongs to 2019-era S3 pricing, not B2 today. What you actually get instead of a bill is an S3 API, token management in your backup tool, and no filesystem to poke at.
Wasabi is around $8 per TB with no egress or API charges, subject to a fair-use policy that expects your monthly egress to stay under your stored volume. The real gotcha is the 90-day minimum storage duration: delete or rewrite data early and you still pay out the 90 days. That hurts churn-heavy backup sets far more than egress ever did.
Rclone + S3 (any provider) is cheaper from Backblaze, DigitalOcean Spaces, or Linode. You’re back to REST APIs, token management, and per-provider egress rules that change without asking you.
Storj is cheap because they’re decentralized (you’re funding node operators worldwide). But Storj’s model depends on nodes staying online. When a node drops, your data is re-replicated to new nodes. It works, but you’re trusting a distributed incentive structure that’s 7 years old.
Local NAS + off-site replication (Synology, TrueNAS with Replication over SSH) is cheaper if you’ve already got a second box somewhere. But you’re managing two systems, and if that second location is compromised, so is your backup.
rsync.net wins if:
- Your tooling wants a filesystem, not an object store (
borg mount,rsync --link-dest, plainscpfrom a busted rescue shell) - You want ZFS snapshots managed for you as a ransomware backstop, on a standard account
- You want geographic replication handled by the provider and you’re willing to pay 2.625 cents per GB for it
- You want to phone a Unix engineer when something’s weird
- You sleep better when your backup target is just “Unix” (no SaaS layer)
rsync.net is overkill if:
- Price per TB is the deciding factor (B2 is cheaper and it’s not close)
- You’ve got unlimited S3 credits (AWS customers)
- You’re backing up a laptop and never restore
- Your data is under 800 GB, since the entry-tier minimum means you pay for 800 GB regardless
rsync.net is underkill if:
- You need object storage durability SLAs (rsync.net doesn’t publish a 99.9999999% guarantee in writing)
- You need to share encrypted backups with other users (Restic/Borg repos are single-user)
- You need to restore to different regions (you’re locked to where you bought the account)
Key Management: One Less Thing
Okay, back to the SSH key thing.
Your backup machine needs an SSH keypair to talk to rsync.net. That keypair lives in /root/.ssh/ or /home/backup/.ssh/, somewhere on your machine that the backup service can read. If that machine is compromised, your SSH key is compromised. If your SSH key is compromised, someone can access your off-site backup.
That’s not specific to rsync.net. That’s specific to SSH-based backups.
You can mitigate it:
- Use an SSH key with a passphrase, and a systemd service that unlocks it at boot via a secure mechanism (ssh-agent with a socket, UNIX permissions 0600)
- Use an SSH key with restricted permissions on the rsync.net side: force a specific command, force a specific IP, disable port forwarding, disable agent forwarding
- Use separate SSH keys for different machines (if your web server is compromised, the attacker doesn’t automatically get access to your database backup)
- Audit rsync.net’s authorized_keys file regularly (they provide SSH access to edit it)
None of this is rocket science. This is the same key management you’d use for any SSH-based deploy, database backup, or remote data sync.
When rsync.net Earns the Premium
If you’ve got data you’d lose sleep over losing (a home lab with 10+ years of photos, a server with customer data, a dataset you spent months building), rsync.net earns its keep:
- Optional provider-side replication: nightly copy to a second site if you buy the geo-redundant tier
- No egress metering: pull all of it back, as often as you want, at no charge
- Snapshots you don’t manage: rsync.net runs the ZFS snapshot schedule on standard accounts; your backup tool handles encryption and dedup
- No vendor lock-in: SFTP works everywhere. Tomorrow you can move to Wasabi, B2, or another SFTP server with zero changes to Restic/Borg
- Published pricing: every rate above is on their public price list, and the checkout page shows the geo-redundant surcharge before you pay
- Actually boring: after 25 years in business, they’re not going anywhere, not getting bought, not pivoting to AI backups or whatever VC fashion comes next
Off-site backup is not where you cheap out. It’s where you spend money once so you never have to spend money again (because your data didn’t burn down).
Budget honestly: a 2 TB home lab is $30 a month on a standard account, or $240 a year on a borg account (that’s $20 a month, prepaid). Call it a takeaway dinner a month to stop sweating the overnight fire, the ransomware, or the RAID controller that decides to yeet itself into the void at 3 AM.
Set it up, run a quarterly restore drill, and stop thinking about it.