Port 873 is the rsync daemon port for efficient file synchronization using delta encoding. The rsync daemon mode (rsyncd) listens on port 873 and serves named modules with per-module access control. Rsync over SSH is preferred for security – daemon mode on port 873 has no encryption unless wrapped in stunnel or VPN.
Port Number
873
Protocol
TCP
Service
rsync file synchronization
Range
IANA Well-Known (0–1023)
List available rsync modules (should not work if properly secured)
rsync rsync://target:873/Attempt to list files in a module without auth (test for anonymous access)
rsync rsync://target:873/module/ --list-onlyReview rsync daemon configuration (check for modules without auth)
cat /etc/rsyncd.confCheck if rsyncd is running
ss -tlnp | grep 873rsync rsync://mirror.example.com/
rsync -avz rsync://host/module /local/path
rsync --daemon --config=/etc/rsyncd.confrsync was created by Andrew Tridgell and Paul Mackerras in 1996. The rsync algorithm (rolling checksum + delta encoding) revolutionized file synchronization by transferring only differences. Port 873 was assigned for the rsync daemon protocol. The daemon mode allows anonymous access (useful for mirrors) but lacks encryption. rsync over SSH (rsync -e ssh, no daemon needed) became the standard for authenticated, encrypted transfers. rsync 3.2.4 (2022) added built-in TLS support (--ssl flag).
rsync over SSH vs rsync daemon – when to use which?
rsync over SSH (-e ssh): encrypted, authenticated, no daemon needed, slower for large transfers (SSH overhead). Use for: backups, deployments, any sensitive data. rsync daemon (port 873): no encryption, supports anonymous modules, faster throughput. Use for: public mirrors (CPAN, Linux repos), high-throughput LAN backups where encryption overhead matters. Never use daemon mode over untrusted networks without VPN.
How do I add authentication to rsyncd?
In rsyncd.conf: [mymodule] path = /data, auth users = backupuser, secrets file = /etc/rsyncd.secrets, hosts allow = 10.0.0.0/24. Create /etc/rsyncd.secrets: backupuser:StrongPassword (chmod 600). Client: rsync --password-file=/path/pass rsync://backupuser@server/mymodule/ /local/. Note: passwords are still sent in cleartext over the network – this protects against unauthorized access, not sniffing.