Outline Shadowsocks (часть 1)
👁 642↗ 13
Всем привет! Хочу рассказать о своем проекте, который уже начал приносить доход. Это ВПН на базе Outline.
Все началось с того, что ВПН, которым я пользовался стал очень плохо работать. А именно WireGuard, который я поднял на Hetzner Cloud.
Поэтому я начал искать альтернативы и одной из таких стал Outline.
Три главных плюса, которые я выделил в нем:
1. Shadowsocks под капотом.
2. Все виды клиентов под разные ОС.
3. Open Source.
Это вдохновило меня поднять собственный ВПН сервис.
И первое что я сделал, это склонировал репозитории Outline и начал изучать.
В коде я увидел возможность создавать динамические ключи, это стало явным конкурентным преимуществом, относительно других ВПН сервисов. Потому что теперь необязательно привязывать пользователя к определенному серверу одним ключом, можно дать ему специальный динамический ключ, который в момент подключения выдает конфигурацию для сервера.
Разница между статическим ключом и динамическим в том, что статический ключ начинается с п
рефикса ss://, а динамический ключ с префикса ssconf://.
В статический ключ сразу записывается IP, Port, Password, Method шифрования - это является конечно безопаснее, чем использовать динамический ключ. Однако если произойдет блокировка сервера, то всем пользователям нужно будет получить новый статический ключ для другого сервера.
Если у пользователя динамический ключ, тогда конфигурацию клиент получает в момент подключения. То есть для динамического ключа вам понадобится Backend, который по GET запросу выдает ответ в формате JSON следующего вида:
{
"method": "chacha20-ietf-poly1305",
"password": "knQJYZSkDpR0a0GZdVLLkp",
"server_port": 10650,
"server": "5.13.93.134"
}
Поэтому теперь если один из серверов стал недоступен, то пользователь при переподключении подключится к другому.
Продолжение в следующем посте…
@knowyourbackend
@kyb_chat
#PetProject #Backend #DevOps4