Может ли кто-нибудь объяснить, когда rsync
используется порт 22 на удаленном хосте, а когда — порт 873?
Можно ли всегда устанавливать порт 22, так как я слышал, что он должен использовать порт 873, если он запущен как демон? Может кто-нибудь объяснить простыми словами.
решение1
Вы можете использовать параметр -e для указания порта ssh, например rsync -rvz -e 'ssh -p $port' ./dir user@host:/path
решение2
Для контекста, в rsync
документации говорится:
Существует два разных способа для rsync связаться с удаленной системой: использовать программу удаленной оболочки в качестве транспорта (например, ssh или rsh) или напрямую связаться с демоном rsync через TCP. Транспорт удаленной оболочки используется всякий раз, когда исходный или целевой путь содержит один разделитель двоеточие (:) после спецификации хоста. Прямое обращение к демону rsync происходит, когда исходный или целевой путь содержит двойной разделитель двоеточие (::) после спецификации хоста, ИЛИ когда указан URL-адрес rsync://.
Порт 22 — это порт SSH; он используется, когда вы указываете, rsync
что нужно подключитьсяс помощьюSSH с одним двоеточием (случай «remote-shell» выше). Порт 873 — это rsync
порт демона; он используется, когда rsync
используется с двойным двоеточием или rsync://
URL.
Большую часть времени вы будете использовать SSH; использование демона требует определенной настройки. Если вы хотите использовать только порт 22, все, что вам нужно сделать, это всегда указывать одно двоеточие в дескрипторе удаленного хоста.