Назад | Перейти на главную страницу

Rsync может просматривать модули и извлекать файлы, но не отправлять

Я настраиваю rsync для синхронизации файлов между двумя отдельными серверами (A и B) в разных сетях, оба под управлением ОС Solaris 10. Я использую --daemon.

Прямо сейчас я могу получить список модулей сервера B с сервера A, а также загрузить файлы из B в A. Однако при попытке загрузить файлы из A в B процесс зависает.

Анализируя файлы журнала, созданные rsync, я вижу, что соединение между серверами установлено, но затем потеряно.

Сервер файлов журнала A:

root# rsync -rltgD --progress testfile x.x.x.x::test/

building file list ...
1 file to consider
testfile
rsync: writefd_unbuffered failed to write 4 bytes [sender]: Broken pipe (32)
rsync: read error: Connection timed out (145)
rsync: error: error in rsync protocol data stream (code 12) at io.c(604) [sender=2.6.9]

Сервер файлов журнала B:

[4799] connect from UNKNOWN (x.x.x.x)
[4799] rsync to test/ from UNKNOWN (x.x.x.x)
[4799] receiving file list
[4657] rsync: read error: Connection timed out (145)
[4657] rsync error: error in rsync protocol data stream (code 12) at io.c(604) [receiver=2.6.9]
[4657] rsync error: error in rsync protocol data stream (code 12) at io.c(453) [generator=2.6.9]

Разрешения в месте назначения (сервер B) определены как chmod 777. Inetd настроен на разрешение rsync с анонимным доступом. Я попытался изменить пути и владельца, чтобы они были одинаковыми на обоих серверах, не повезло. Я также сопоставил версии с 2.6.9, а также с использованием виртуальных машин и физических машин, проблема остается. Я также пробовал с другими ОС, а именно с CentOS и Windows 7 Professional. Используя эти клиенты rsync, я могу без проблем синхронизировать файлы с сервером B (эти машины находятся в той же сети, что и сервер B). Я захватил пакеты успешной синхронизации между сервером B и машиной CentOS 6.7 и сравнил их с неудачной синхронизацией между сервером B и сервером A, я пришел к такому же выводу, сделанному из файлов журнала: соединения TCP и rsync установлены, но файлы не передаются.

Мы очень ценим любую помощь по этой проблеме. Наилучшие пожелания.

Если у кого есть такая проблема, решил параметром MTU. Поскольку на сервере B был заблокирован протокол ICMP, значение MTU было автоматически определено как 1500 байтов. Когда это значение было изменено на 1280 байт на сервере A, соединение начало работать, как должно.