Skip to content

Static ip for client#41

Open
Lisenblsh wants to merge 1 commit into
ZeroTworu:masterfrom
Lisenblsh:static-ip-for-client
Open

Static ip for client#41
Lisenblsh wants to merge 1 commit into
ZeroTworu:masterfrom
Lisenblsh:static-ip-for-client

Conversation

@Lisenblsh

Copy link
Copy Markdown

Я спрашивал контакты по вопросам по серверу, но подумал что тут будет проще написать

В общем пока писал вопрос, понял что проблема в том что сейчас сделано так, что клиент удаляется после создания сессии, а так как теперь ip у клиента один, то просто дропается новое соединение и все.
Сейчас это починил все работает

В итоге я добавил новую строчку в конфиг - если ее нету то создатся sqlite БД
и переписал ip_pool.rs, чтобы оно использовал БД для хранения ip

- add row to config for setup db path
@Lisenblsh Lisenblsh changed the title - add static ip for client Static ip for client May 19, 2026
@ZeroTworu

ZeroTworu commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Я же тебе писал свои контакты в соседнем ПР, ты бы хоть дёрнул меня, прежде чем такое кол-во изменений залилать, я сейчас смотрю - и просто в ахуе. Уже и лична БД у VPN сервера, ему надо то всеголишь - гноть траффик.

PS. Извини за молчание.
PPS. Этот ПР можно закрывать?

@ZeroTworu

Copy link
Copy Markdown
Owner

В общем я глянул, ты чёт совсем дикое написал, притом запихнув кусок anet-auth в anet-server.

VPN Server - должен только VPN'ом и рулить, не нужны ему базы и прочие, сорри, я это не мержану, но твою проблему я понял, и обдумаю.

Впрочем, если тебя этот вариант устраивает - ни кто не запрещает тебе свой форк и юзать, опенсорс же.

@Lisenblsh

Copy link
Copy Markdown
Author

Я же тебе писал свои контакты в соседнем ПР, ты бы хоть дёрнул меня, прежде чем такое кол-во изменений залилать, я сейчас смотрю - и просто в ахуе. Уже и лична БД у VPN сервера, ему надо то всеголишь - гноть траффик.

Так этот просто КВН сервер у тебя и раньше не просто гнал трафик, а ещё и раскидывал IP, просто очень примитивно. Я по сути добавил DHCP и сохранение IP за клиентом, а БД нужна просто для того чтобы данные были персистентными между перезагрузками.
Да и тащить условный постгресс тоже никто не заставляет, можно обойтись обычной sqlite.

Собственно из-за возможности подключения нескольких серверов auth, хранить IP клиента на каждом auth звучит как овер. + на каждый такой auth надо передавать данные о подсети. А сами auth все время синхронить между собой ну или по изменениям (один должен уведомить всех о том что что-то поменялось) и при добавлении нового сервера в пул (что должен тригерить впн сервер). Ну либо это надо делать с силами постгреса, но тогда это вообще другого рода работы надо производить.

С одной стороны я понимаю почему ты не хочешь оверынженирить сервер, да и, возможно, статичные IP не всем нужны и хватит и текущей реализации. С другой стороны, возьмём wireguard, zerotier, netbird, все они выдают статику клиенту/конфигурации. Я посмотрю на днях как это там реализовали и отпишусь. Но на данном этапеу меня нету идей как можно реализовать такое, другим способом.

P. S.
У меня времени не было поправить, но я провёл, так сказать, мысленный эксперимент и понял, что скорее всего этот пр в данной реализации не совместим с твоими тарифами. В связи с тем что все подключения одного пользователя будут получать один IP

PPS. Этот ПР можно закрывать?

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

@Lisenblsh

Copy link
Copy Markdown
Author

В общем я глянул, ты чёт совсем дикое написал, притом запихнув кусок anet-auth в anet-server.

В каклм смысле? Какой кусок?

Впрочем, если тебя этот вариант устраивает - ни кто не запрещает тебе свой форк и юзать, опенсорс же.

Ну да я так и использую

@ZeroTworu

Copy link
Copy Markdown
Owner
  1. Я уже писал, да auth серверов - может быть несколько, но все должны ходить в одну БД. Т.е. предполагалось, что если один auth по какой то причине умрёт - его работу прозрачно подхватит другой, а т.к. БД "спрятана" за auth - её убить сложнее, такое security by obscurity карочи. Хотя тут весь проект - security by obscurity.

  2. Моя не правда, не так понял работу с таблицей. Я думал ты хочешь забить туда фингерпринты с адресами зарание, поэтому и подумал что дубликация аутха.

  3. "У других", я подозреваю что просто в конфиге клиента. Тащем то такая мысль пару раз пролетала, т.к. это именно, что VPN - удобно играть в игрушечки будет, если у всех статика, но друзяшкам был нужен именно квн, так что оно на уровне идеи и осталось. ИМХО кстати - самый правельный подход.

@Lisenblsh

Copy link
Copy Markdown
Author

Понял тебя, тогда пр отклоняй, если у меня будут какие-то идеи я, если что, тогда отдельно напишу

"У других", я подозреваю что просто в конфиге клиента.

Типо я конечно понимаю, но просто привычка - если это можно сделать автоматически, то я делаю это автоматически. Да и привык пользователям не доверять, не то что бы они что-то плохое могут сделать, но часто они глупенькие

@ZeroTworu

Copy link
Copy Markdown
Owner

Понял тебя, тогда пр отклоняй, если у меня будут какие-то идеи я, если что, тогда отдельно напишу

"У других", я подозреваю что просто в конфиге клиента.

Типо я конечно понимаю, но просто привычка - если это можно сделать автоматически, то я делаю это автоматически. Да и привык пользователям не доверять, не то что бы они что-то плохое могут сделать, но часто они глупенькие

Да это было в рамках "я и чел с соседнего города рубонём в чёнить".

Btw, я обдумал всё это:

  1. Всё на auth - выглядит рахитектурно верно, но а если надо DHCP+VPN и всё? Так то логичное желание.

  2. Твой вариант - не нравится God-Object из VPN Server + то что к фингерпринту прибивается IP пожизненно.

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

Итого - я оставлю всё как есть, сиди на своём форке, тем более я сомневаюсь что будут какие то большие изменения в ближайшее или даже вообще.

А так - надо поискать готовый DCHP на Rust просто, и не велосипедить.

PR пока оставлю, но когданить прикрою.

@Lisenblsh

Copy link
Copy Markdown
Author

Btw, я обдумал всё это:

  1. Всё на auth - выглядит рахитектурно верно, но а если надо DHCP+VPN и всё? Так то логичное желание.

Ну я тоже задумывался, что, вероятно, не всем нужен тот функционал, который хочу я

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

Вот поэтому я клиентам и не доверяю

Итого - я оставлю всё как есть, сиди на своём форке, тем более я сомневаюсь что будут какие то большие изменения в ближайшее или даже вообще.

Хорошо

А так - надо поискать готовый DCHP на Rust просто, и не велосипедить.

Я и сам думал поискать, но мне было проще написать самому, чем разбиратся с новой библиотекой в новом яп

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants