Я пытаюсь настроить резервное копирование с моего NAS (QNAP TS-469 Pro) на мой ПК под управлением Ubuntu 16.10, используя «Станцию резервного копирования», предлагаемую NAS.
Если я подключусь по ssh к NAS и выполню следующие команды, rsync заработает:
touch file.txt # Create "file.txt" on the QNAP
rsync file.txt username@ipaddress:~ # Backup "file.txt" on the backup PC
Однако при настройке резервного копирования из графического интерфейса NAS (в браузере) я получаю ошибку
Неверный номер порта или служба отключена.
Я читал кое-что о порте 873 или запуске демона rsync, но все это для меня совершенно непонятно.
Почему запуск rsync
вручную работает, а у меня возникает ошибка с "Backup Station"? Конечно, в конечном итоге я заинтересован в том, чтобы автоматическое резервное копирование работало.
решение1
Rsync может работать в двух различных режимах:
- через SSH:Rsync-соединение (как для управления, так и для передачи данных) внутри туннеля SSH (в основном с использованием каналов). Из-за повсеместности доступа SSH и его безопасности это часто предпочтительный подход. Однако, чтобы быть действительно прозрачным и автоматизированным (без необходимости ввода пароля), вам пришлось настроить аутентификацию RSA. Более того, поскольку все данные шифруются SSH, это может быть медленнее, чем другой подход;
- через режим демона (или службы):На удаленной системе Rsync работает как демон/служба, прослушивая порт TCP 873. Этот режим не имеет встроенного шифрования, поэтому он быстрее и менее безопасен, чем туннель SSH. Это режим, используемый QNAP для локального и удаленного резервного копирования. Чтобы позволить QNAP использовать ваш ПК в качестве цели резервного копирования (т. е.: резервное копирование NAS на ПК), вам необходимо включить службу Rsyncна вашем ПК. Хотя это и не сложно, это, безусловно, сложнее, чем простой туннель SSH. Вы можете найти больше информации в сети, напримерздесь.
решение2
Вы, вероятно, rsync over rsync
запутались rsync over ssh
.
Rsync через SSH(используя вашу конфигурацию ssh)
rsync -av file.txt username@ipaddress:~
Этот метод использует канал SSH и шифруется.
Rsync через Rsyncс использованием стандартного протокола rsync
rsync -av file.txt ipaddress::myhome/.
Последнее предполагает, что вы настроили rsyncd.conf и запустили rsync как демон. Как демон, вся аутентификация/безопасность определяется в rsyncd.conf, и это не использует шифрование.
Самый простой способ заметить разницу — два двоеточия после адреса и имя общего ресурса после двух двоеточий.
Вот действительно простой иопасныйпример rsyncd.conf (простой, потому что root и права доступа не являются проблемой. опасный, потому что работает как root, а не chroot)
uid = root
gid = root
use chroot = no
max connections = 64
lock file = /var/tmp/rsyncd.lock
syslog facility = local5
pid file = /var/tmp/rsyncd.pid
strict modes = false
hosts allow = 192.168.120.2
timeout = 60
dont compress = *.xz *.gz *.tgz *.zip *.rpm *.bz2 *.7z *.rar *.jp* *.gif *.png *.avi *.mp* *.wmv *.asf *.flv *.m4v *.mkv *.mov *.ogm *.rm *.3g*
#refuse options = checksum delete
refuse options = delete
#
[myhome]
list = false
comment = "myhome"
path = /home/myself/mydir
read only = no
И вот я запускаю этот демон:
#!/bin/bash
set -o posix
set -u
# keep nagios happy
renice 19 -p $$ > /dev/null 2>&1
ionice -c3 -p $$ > /dev/null 2>&1
rsync --daemon --ipv4 --address=192.168.120.1 --config=/home/myhome/rsyncd.conf --log-file=/dev/shm/rsync.log