惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
Recent Announcements
Recent Announcements
博客园 - Franky
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
宝玉的分享
宝玉的分享
I
InfoQ
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
V
V2EX
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
T
The Blog of Author Tim Ferriss
量子位

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Свой P2P-файлообменник с блэкджеком и NAT punching: как п...
REPLAY_5 · 2026-05-16 · via Все публикации подряд на Хабре

В современных реалиях, когда интернет всё чаще напоминает минное поле с

блокировками и замедлениями, надежда на зарубежные (да и на некоторые

локальные) сервисы тает с каждым днем. В какой-то момент я пришел к выводу:

если хочешь, чтобы инструмент работал стабильно и не зависел от настроения

провайдеров или геополитики — напиши его сам.

Так появился, например, Fury Messenger (о котором я уже писал здесь) — мессенджер для

Android, заточенный под нестабильное соединение. Но решив проблему текстового

общения, я столкнулся со следующей «болью»: обмен файлами и документооборот. Именно на большом обьеме, а не кидая файлики или фоточки через мессенджер.

 В этой статье расскажу, как я реализовал систему прямой передачи данных между

компьютерами, почему облака — это иногда лишнее звено, и как мой «велосипед»

в итоге уехал в B2B-сегмент.

Проблема: Танцы с бубном вокруг VPN

 Типичный сценарий обмена файлами сегодня выглядит так:

 1.  Залить в Telegram (ограничение по размеру, скорость иногда «режут»).

2.  Закинуть на Google Drive/Dropbox (нужен VPN, который нужно то включать, то

    выключать, чтобы не отвалились другие сервисы).

3.  Передать через локальную сеть (сложно настроить права доступа, если люди

    сидят в разных сегментах или городах).

Мне хотелось простоты: как в старой доброй Windows Shared Folder, но через

интернет и без необходимости быть системным администратором 80-го уровня.

Чтобы можно было просто «расшарить» папку конкретному человеку и передать файл

на максимально возможной скорости канала.

Так родился Z-Folder.

 Архитектура: Что под капотом?

Я не большой фанат готовых тяжелых фреймворков там, где можно реализовать

кастомный протокол. (вообще очень люблю кастомные, бинарные протоколы) В Z-Folder я пошел по пути максимального облегчения стека.

 1. Протокол передачи

 В основе лежит UDP. Почему не TCP?

   - NAT Punching: Для установления прямого P2P-соединения между узлами,

    находящимися за NAT, UDP подходит идеально.

  - Скорость: В условиях потерь пакетов или нестабильного линка UDP позволяет

    более гибко управлять повторными отправками и окном передачи.

Протокол чем-то напоминает STUN, но со своими особенностями для контроля

целостности данных и управления очередями.

2. Пробивка NAT и Fallback

 Разумеется, чистый P2P возможен не всегда (привет, симметричные NAT в

корпоративных сетях). Схема работы выглядит так:

1.  Центральный сервер: Выступает точкой авторизации и «свахой» (Signaling

    server). Он знает, кто в сети, и помогает узлам найти друг друга.

2.  P2P-коннект: Узлы пытаются «пробить» NAT и соединиться напрямую. Если

    получилось — данные летят со скоростью вашего интернет-провайдера,

    минуя любые промежуточные сервера.

3.  Relay (Fallback): Если прямой коннект невозможен, система автоматически

    переключается в режим релея. В этом случае сервер выступает

    посредником, просто пересылая пакеты. Это медленнее, но

    гарантирует доставку.

3. Безопасность и права доступа

 Система работает по принципу «белого списка». Вы создаете пользователей в личном

кабинете (один пользователь — одно устройство). В интерфейсе вы видите список

доступных контактов. Нажимаете на пользователя — видите только те папки,

которые он расшарил именно для вас. Права можно гибко настраивать: только

чтение или чтение/запись.

Интерфейс и «плюшки»

 Я сторонник минимализма. Главная задача Z-Folder — сделать так, чтобы даже

человек, далекий от ИТ, мог обмениваться файлами.

По фидюеку очень часто просили добавить "свободное место" в шаре. не знаю, для меня не было очень важной метрикой, но добавил - люди счастливы.

В процессе разработки я понял, что файлообмен без контекста — это неудобно.

Поэтому добавил внутрь простенький чат. Теперь не нужно переходить в

мессенджер, чтобы написать «Лови доки», — всё происходит в одном окне.

От пет-проекта к B2B

 Изначально я делал Z-Folder для себя и своих бизнес-партнеров. Но жизнь

подкинула интересные кейсы:

   - Кейс «Друг и локалка»: Мой знакомый никак не мог настроить общий доступ к

    папкам между двумя компами в квартире (классика Windows). Z-Folder решил

    его проблему за 2 минуты: поставил, залогинился, пользуешься.

  - Кейс «B2B»: Неожиданно проектом заинтересовались компании. Оказалось, что

    для оперативного документооборота между филиалами, особенно когда

    интернет в регионах «хромает», а VPN-шлюзы перегружены, такое легкое

    P2P-решение — настоящий спасение.

Итоги 

Z-Folder стал для меня ответом на вопрос: «А что если завтра отключат всё?».

Система независима от облачных хранилищ, не требует постоянного включения

VPN для доступа к файлам и выжимает максимум из доступного канала связи.

Сейчас сервис успешно живет, им пользуются несколько компаний и круг моих

знакомых. Это был отличный опыт создания закрытой, быстрой и надежной

экосистемы «для своих», которая переросла в нечто большее.

А как вы решаете вопрос передачи тяжелых файлов или документов в условиях

нынешних ограничений? Пользуетесь облаками, мессенджерами через боль или используете какие то другие решения?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

0%Google drive0

0%Yandex Диск / Mail.ru и подобные0

50%Telegram / WhatsApp1

50%сервисы вроде DropBox1

0%Экосистема Apple0

0%Не пользуюсь файлообменом (нет необходимости)0

Проголосовали 2 пользователя. Воздержавшихся нет.