RSYNC передаёт файлы по TCP и чаще всего работает поверх SSH (порт 22). Редко — через rsync-daemon (порт 873). Чтобы синхронизация шла без обрывов и «залипаний» соединений, используйте статичные IPv4 с поддержкой SOCKS5 или HTTP CONNECT, выбирайте близкий GEO и не меняйте IP в активной сессии.
Что выбрать под RSYNC
- Протокол прокси: SOCKS5 — оптимально для SSH/RSYNC и любых TCP-портов; HTTP(S) CONNECT — если корпоративная сеть разрешает CONNECT к 22/443/873.
- IP и пулы: только статичные IP. 1 IP → 1 проект/окружение (prod/stage отдельно).
- GEO: рядом с сервером/облаком: EU — DE/NL/FR/PL; US — VA/NY/IL/TX/CA; APAC — SG/JP. Это снижает RTT и таймауты.
- Типы IP: IPv4 — по умолчанию; IPv6 — дополнительно. Резидентские/мобильные — только точечно (больше пинг/стоимость).
Где купить прокси для RSYNC
Ищите провайдеров со статичными IPv4/IPv6, поддержкой SOCKS5 и/или HTTPS/CONNECT, авторизацией (логин/пароль или whitelist-IP), точными городами и API.
1 место: Proxys.io — SOCKS5/CONNECT, города и API
Разведите пулы «RSYNC-Prod», «RSYNC-Stage», «Bastion». Быстрый выпуск/замена IP, DC/резидентские/мобильные линейки.
- Плюсы: SOCKS5 и CONNECT, десятки GEO, API.
- Минусы: «домашние» (резидентские/мобильные) дороже DC — берите точечно.
ProxyLine — ровные сессии для длительных перекачек
Статичные IPv4/IPv6, SOCKS5/HTTPS — стабильно для больших файлов и инкрементальных прогонов.
Proxy-Store — раздельные пулы под прод/стенд
Статики закрепляйте за окружениями; быстрые замены IP и API.
Proxy-Solutions — прицельные города и SLA
Когда критичны конкретные площадки (DE/NL/US/SG) и аптайм.
MobileProxy.space — только точечно (админка/панели)
Для самих перекачек мобильные не рекомендуются: выше джиттер/пинг. Держите для редких задач.
Где ещё можно купить
- PX6 (PROXY6) — бюджетные DC/IPv6 для тестов.
- Proxymania — резервные статики по странам.
- ShopProxy — маркетплейс с фильтрами по протоколам/GEO.
Рабочие схемы (коротко и по делу)
A) RSYNC поверх SSH через SOCKS5 (рекомендуется)
# ~/.ssh/config Host rs-prod HostName rsync.example.com User deploy Port 22 ServerAliveInterval 20 ServerAliveCountMax 3 ProxyCommand nc -X 5 -x <proxy_ip>:<proxy_port> %h %p # если прокси требует логин/пароль: # ProxyCommand env ALL_PROXY=socks5://user:pass@<proxy_ip>:<proxy_port> nc -X 5 -x <proxy_ip>:<proxy_port> %h %pзапуск rsyncrsync -avz --partial --inplace -e ssh ./build/ rs-prod:/var/www/build/
B) RSYNC поверх SSH через HTTP CONNECT
# ~/.ssh/config Host rs-http HostName rsync.example.com User deploy ProxyCommand nc -X connect -x <proxy_ip>:<proxy_port> %h %p # либо corkscrew: # ProxyCommand corkscrew <proxy_ip> <proxy_port> %h %prsync -avz -e ssh ./data/ rs-http:/data/
Если CONNECT к 22 запрещён, поднимите SSH на :443 и подключайтесь к нему.
C) RSYNC-daemon (порт 873) через прокси
Для редких случаев, когда подключаетесь к модулю rsync://host/module
(без SSH):
# 1) Через HTTP-прокси (если поддержан CONNECT): export RSYNC_PROXY="proxy_ip:proxy_port" rsync rsync://rs.example.com:873/releases/ ./releases/2) Универсально через SOCKS5:export RSYNC_CONNECT_PROG='ncat --proxy : --proxy-type socks5 %H %P'rsync rsync://rs.example.com/releases/ ./releases/
D) Бастион (ProxyJump) вместо прокси
# ~/.ssh/config Host bastion HostName bastion.example.net User ops Host rs-bastion HostName rsync.internal User deploy ProxyJump bastionrsync -avz -e ssh ./ rs-bastion:/srv/app/
E) Windows (PuTTY/KiTTY + cwRsync/WSL)
- PuTTY → Connection → Proxy → Type: SOCKS5/HTTP → Host/Port (логин/пароль при необходимости).
- Сохраните сессию и используйте её в
plink.exe
:rsync -e "plink -load rs-proxy" ...
Проверка и диагностика
# TCP через SOCKS5 к SSH/RSYNC-daemon ncat --proxy <proxy_ip>:<proxy_port> --proxy-type socks5 rsync.example.com 22 ncat --proxy <proxy_ip>:<proxy_port> --proxy-type socks5 rsync.example.com 873Список модулей rsync-daemon (через RSYNC_CONNECT_PROG/RSYNC_PROXY)rsync rsync://rs.example.com/
Оптимизация RSYNC за прокси
--partial --inplace
— докачка и запись на месте (меньше повторов при обрыве).--compress
(-z
) — экономит трафик; для уже сжатых данных можно убрать.--bwlimit=MBps
— ограничение полосы, чтобы не убивать прокси-канал.--checksum
— точная сверка при спорных таймстемпах (дороже по CPU).
Траблшутинг
- Connection reset/timeout: ближний GEO, включите keep-alive в SSH (см. конфиг), снизьте
--bwlimit
. - CONNECT запрещён: SOCKS5 вместо CONNECT, SSH на :443, либо бастион.
- Permission denied: проверяйте ключи/права на сервере — прокси не влияет на авторизацию SSH.
- 873 закрыт: используйте схему A/B (через SSH).
Практические советы
- Разведите IP по ролям: prod/stage/backup — разные статики и профили.
- Держите резервный статик того же города/ASN; переключатель профилей под рукой.
- Логи rsync (
-v
/-vv
) и SSH помогут поймать место обрыва. - Не меняйте IP посредине длинной перекачки — докачка может «сломаться» на стороне сервера.
Чек-лист
- Подобран приватный статичный SOCKS5/HTTP CONNECT (IPv4) ближнего GEO.
- Настроен
~/.ssh/config
(ProxyCommand/ProxyJump) или переменныеRSYNC_PROXY/RSYNC_CONNECT_PROG
. - Тест TCP к 22/873 проходит; пробный прогон rsync завершился без обрывов.
- Есть резервный IP и лимит полосы при необходимости.
Итоги
Надёжная схема для RSYNC — статичный SOCKS5 (или HTTP CONNECT) ближнего GEO + ProxyCommand
для SSH (или RSYNC_PROXY/RSYNC_CONNECT_PROG
для daemon-режима). Разделяйте IP по окружениям, включайте keep-alive и держите резерв — так синхронизации будут стабильными и предсказуемыми.
Комментариев нет