Уже как-то писал в канале о преимуществах своего VPS-сервера. На нём можно развернуть много полезного. Понять как работают компьютерные сети на практике, поэкспериментировать с web-приложениями, развернуть свой VPN.
Самое сложное — отладить всё на сервере. Но когда вы с этим справились, то настройка клиентских приложений уже проще, потому что тыкается через GUI (графический интерфейс), а не через страшную консоль-терминал-CMD.
Почитать по теме: Компьютерные сети. 6-е изд. [2023] Эндрю С. Таненбаум, Ник Фимстер, Дэвид Уэзеролл
Немного раскроем понятия:VPS (виртуальный частный сервер) — это виртуальный эквивалент выделенного физического сервера, расположенного в дата-центре. Он обладает отдельными ресурсами, такими как процессор, оперативная память и дисковое пространство, что позволяет пользователю иметь полный контроль и гибкость в настройке сервера под свои требования.
VPN (англ. Virtual Private Network — «виртуальная частная сеть») — технология, которая позволяет установить безопасное подключение к сети через публичную сеть, такую как интернет. VPN создаёт зашифрованное соединение между устройством и удалённым VPN-сервером, шифруя данные и скрывая IP-адрес.
Когда у вас есть виртуальное арендованное пространство, то вам достаточно какого-нибудь кросс-платформенного прокси-сервера socks5. И у вас всё будет работать не только на ПК, ноутбуке, но и на телефоне.
Github для ознакомления:
shadowsocksСоздание кроссплатформенного сервиса типа Shadowsocks — сложная, но интересная задача. Может возникнуть вопрос: какие знания нужны?
1. Сетевые протоколы и программирование:
TCP/UDP сокеты — основа любой сетевой коммуникации
SOCKS5 протокол — Shadowsocks использует его как базовый
TLS/SSL — для шифрования трафика (современные версии Shadowsocks)
Мультиплексирование соединений (mux)
Асинхронное программирование для обработки множества соединений
2. Криптография:
Симметричное шифрование (AES, ChaCha20)
AEAD-шифры (AES-GCM, ChaCha20-Poly1305)
Генерация и управление ключами
3. Архитектура приложения: клиент-серверная модель, туннелирование трафика на уровне приложений, плагины и расширения.
4. Кроссплатформенная разработка:
Язык программирования: Go (идеально), Rust, C++ с библиотеками типа libuv, Python
Сборка под разные ОС: Windows, Linux, macOS, Android, iOS
Начните с простого SOCKS5 прокси, затем добавьте шифрование, и только потом — кроссплатформенные функции. Проектирование модульной архитектуры с самого начала упростит добавление новых функций в будущем. Пробовали уже кодить такое? Мне кажется, что отличная идея для пэт-проекта.
А ещё подключайтесь на мой youtube-канал IT men. Обещаю, что буду записывать годный контент. Надо хотя б 1000 подписчиков набрать.
Репетитор IT men // @mentor_it
2.26K views02:50