These docs describe unreleased changes on master. Read the latest stable documentation.
Server setup
Start by checking TCP access and the source and destination filesystems. Use test data when comparing settings.
Make TCP reachable
Syq listens on one available port in 47600–47699 during a copy. Choose another
range with --tcp-ports LO-HI. For a server using ufw, an administrator can allow
a trusted client:
sudo ufw allow from <trusted-client-address> to any port 47600:47699 proto tcp
Allow the range in any cloud firewall too. Check the transport with
syq cp -vv --stats. Ordinary copies fall back to SSH on the same route when
TCP is blocked. Copies authorized through another machine
require direct encrypted TCP.
Tailscale
Tailscale can make servers reachable
across NAT and firewalls. Allow syq’s data ports through the host firewall and
tailnet rules; syq can discover Tailscale addresses. Use tailscale status to
check whether the connection is direct or relayed. See
Tailscale’s performance guide.
Test congestion control
On Linux, check which TCP congestion-control algorithms are available and allowed on both endpoints:
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_allowed_congestion_control
If bbr is listed in both, compare it with cubic on your route:
syq cp --tcp-congestion bbr --stats data --to server --into /backup
Use the same data, a fresh destination, and both transfer directions. The option applies to syq’s TCP sockets. If BBR is missing, see the administrator setup guidance.
Let SSH connections start promptly
OpenSSH’s MaxStartups limit can slow parallel logins. For servers handling
parallel transfers, an administrator can consider:
MaxStartups 100:30:200
This allows 100 unauthenticated connections before random rejection begins,
and rejects all new ones at 200. It also admits larger bursts from unrelated
clients. MaxSessions controls channels sharing a connection; very low values
can force extra logins.
Validate changes with sshd -t, then reload SSH using your system’s procedure.
Keep an administrative session open. See OpenSSH’s settings.
Check local storage placement
On Linux, inspect the source and destination filesystems:
findmnt -T /path/to/source -o TARGET,SOURCE,FSTYPE,OPTIONS
findmnt -T /path/to/destination-parent -o TARGET,SOURCE,FSTYPE,OPTIONS
Use an existing destination parent and run remote-path checks on the machine that owns the path. Copies within a filesystem supporting cloning can share storage while remaining independently writable. See local copies and NFS for filesystem and mount considerations.
Measure and track improvements
Use syq-bench for repeatable comparisons. Record the commands, versions, mounts, cache state, and other load. Keep reporting and flush settings consistent across runs. See performance tuning to compare worker counts and request sizes.