Вот практичные и надёжные способы поделиться папкой (с множеством подпапок и файлов) с компьютера, который находится за NAT, используя ваш VPS как помощника, когда это нужно. Перечисляю примерно от самого простого к более мощному.
1. Быстро и просто (не нужно ничего устанавливать получателям)
● Вариант: Веб-сервер на VPS + rsync/scp с домашнего ПК
○ На домашнем компьютере: настроить cron-задачу rsync -avz /путь/к/папке/ user@vps:/var/www/html/shared/
○ На VPS: поднять Nginx или Apache, который раздаёт эту папку (можно защитить паролем через HTTP Basic Auth или OAuth).
○ Плюсы: любой человек с браузером может скачать, идеально для нетехнических пользователей.
○ Минусы: только чтение, нужно синхронизировать вручную или по расписанию.
● Вариант: Syncthing / Resilio Sync
○ Установить Syncthing на домашний ПК и (по желанию) на VPS. Syncthing пробивает любой NAT сам.
○ После синхронизации просто раздаёте папку через веб-сервер на VPS или напрямую.
○ Плюсы: настоящая двусторонняя синхронизация, полностью автоматически, бесплатно.
○ Минусы: для записи нужен клиент Syncthing на стороне получателя.
2. Настоящий файловый сервер, доступный из интернета
Используем VPS как обратный туннель или прокси.
A. SSH/SFTP (самый простой и безопасный способ)
● На домашнем ПК (один раз):
autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -f -N -R 2222:localhost:22 user@VPS
● На VPS: добавить в /etc/ssh/sshd_config блок:
Match LocalPort 2222
AllowUsers друг1 друг2
ForceCommand internal-sftp # или убрать строку для полного SSH
● Получатели подключаются через любой SFTP-клиент к sftp://VPS:2222
● Плюсы: шифрование, работает везде, можно давать права только чтение/запись отдельным пользователям.
● Минусы: нужен SFTP-клиент (FileZilla, WinSCP и т.д.).
B. WireGuard или Tailscale/Headscale/Zerotier (лучшее долгосрочное решение)
● Поднять WireGuard на VPS и домашнем ПК (и у всех, кому нужен доступ).
● Или ещё проще — установить Tailscale (или self-hosted Headscale) на домашний ПК и VPS.
● После этого компьютеры видят друг друга как в локальной сети → раздаёте папку через Samba, NFS, SFTP — как угодно.
● Плюсы: ощущение локальной сети, быстро, двусторонний доступ, работает любой протокол, есть удобные DNS-имена.
● Минусы: у всех должен стоять Tailscale (но он крошечный и есть даже на телефонах).
C. Обратный туннель + любой файловый протокол
● Например, туннелировать порт 445 (SMB) или 80/443 (веб) с VPS на домашний ПК.
● Пример с красивым веб-интерфейсом:
○ Дома запускаете FileBrowser или caddy file server
○ Обратный туннель autossh: порт 443 на VPS → 8080 дома
○ На VPS ставите Nginx/Caddy как reverse-proxy → получаете https://files.вашдомен.ru с загрузкой/скачиванием.
3. Полноценные веб-решения (устанавливаются на VPS)
Переносите или синхронизируете данные на VPS один раз:
● Nextcloud / ownCloud / Seafile / FileBrowser
● Можно держать оригинал дома и монтировать через SSHFS на VPS или синхронизировать rclone.
● Плюсы: красивый интерфейс, мобильные приложения, ссылки с паролем и сроком жизни, версии файлов и т.д.
● Минусы: больше нагрузки на VPS, дублирование места (если не использовать SSHFS/rclone mount).
4. «Волшебные» инструменты, которые просто работают
● Cloudflare Tunnel (бесплатно, сейчас отлично поддерживает TCP и HTTP)
● zrok, bore, pagekite, inlets
● ngrok (платно для статических доменов и TCP)
Мои личные рекомендации по порядку
1. Tailscale (или WireGuard) → раздаёте через SMB/NFS как в локалке, ноль головной боли.
2. Autossh + SFTP (если не хотите ставить ничего получателям кроме FileZilla).
3. Syncthing → синхронизация на VPS → раздача через FileBrowser или Nextcloud.
4. Cloudflare Tunnel (если у вас уже есть домен в Cloudflare).
Практически все варианты бесплатные (кроме платного ngrok и больших инстансов Nextcloud).
Какой подход вам больше нравится (чистый веб-доступ, настоящий файловый сервер, мобильные приложения и т.д.)? Могу дать точные команды для выбранного варианта.