Собираем локальную сеть через интернет
Сегодня хочу показать как можно быстро и без существенных затрат собрать ваши ПК и телефоны в одну локальную сеть через интернет, делается все быстро, просто и без существенных затрат.
Собирать будем на базе ZeroTier
ZeroTier One - это программное обеспечение с открытым исходным кодом, которое может устанавливать одноранговое зашифрованное (P2P) между различными устройствами под управлением различных операционных систем. Он также предоставляет возможности управления сетью, такие как маршрутизация и создание правил брандмауэра.
Подготовка
Переходим на https://my.zerotier.com/login создаем аккаунт и входим в него
Откройте вкладку «Networks» и нажмите кнопку «Create a Network».
3. Зайдите во вновь созданную сеть что бы настроить ее
4. Вводим имя, выбираем тип сет Private
5. Мотаем ниже до раздела IPv4 Auto-Assign, ставим галочку Auto-Assign from Range, выбираем Easy, выбираем понравившийся диапазон из верхней или самой нижней строчки, это малые диапазоны на 256 адрес, больше не нужно, т.к. на бесплатном аккаунте ограничение в 25 устройств.
5. Мотаем еще чуть ниже до раздела Multicast, и проверяем что стоит галочка на пункте Enable Broadcast
Для телефонов ищем приложение ZeroTier One в официальном магазине приложений, как для Android так и для iOS, для Windows и Mac качаем приложение с официального сайта разработчика https://www.zerotier.com/download/
Если у вас Linux откройте терминал и выполните команду
sudo curl -s https://install.zerotier.com | sudo bash
Качаем, устанавливаем, запускаем
Настройка
В Windows появится значок в трее, щалкаем по нему правой кнопкой и выбираем Join New Network
В появившемся окошке вставляем ваш NetworkID из панели управления и нажимаем Join
3. Далее добавляем например телефон, устанавливаем приложение, открываем, нажимаем плюс в правом верхнем углу, вводим адрес сети и нажимаем Add Network
На Windows клиент автоматически подключится после добавления, на телефоне нужно будет переключить ползунок напротив идентификатора новой сети в положение включено.
4. Теперь возвращаемся в личный кабинет, и мотаем вниз до раздела Members, если оба клиента подключены, их можно будет увидеть в списке, ставим галочки в столбце Auth напротив каждого из них, и ждем пока у них появятся адреса в столбце Managed IPs
5. После того как мы поставили галочки, это значит что мы авторизовали устройства и они имеют доступ друг к другу, проверяем, открываем терминал на ПК например и пробуем пинговать телефон, если пинг прошел, ура, мы справились, наша сеть работает.
Данный способ позволяет быстро организовывать небольшие сетки, можно расшарить доступ например к сетевой папке или принтеру для друга, или выйти в интернет с домашнего адреса. Например если мобильный оператор куда-то не пускает, ну или организовать что-то вроде шлюза в интернет если вас куда-то не пускают с адресом домашнего интернета.
Сделать последний пункт не сложно, у меня есть VPS на базе убунту22 с личным сайтом и я его тоже подулючил в эту локалку. Там требуется вчего несколько действий:
1.Подключаемся к серверу по ssh и установливаем ZeroTier One
sudo curl -s https://install.zerotier.com | sudo bash
2. Подключаем сервер к нашей сети командой
sudo zerotier-cli join xxxx62b0157d3aeb
где xxxx62b0157d3aeb это id вашей сети из панели управления
3. Включаем маршрутизацию на сервере, добавляем в файл /etc/sysctl.conf строчку
net.ipv4.ip_forward = 1
и применяем параметры ядра командой
sudo sysctl -p
4. Вот тут важно, далее нужно настроить фаервол что бы работали правила NAT, проверяем включен ли фаервол вообще командой
ufw status verbose
если статус inactive или команда не найдена то выполняем команду
iptables -t nat -A POSTROUTING -o ethXXX -j MASQUERADE
где ethXXX это глеавнй интерфейс вашего сервера, посмотреть его можно командой ip link show, на виртуальных серверах это обычно ethX или ensX
!!!Данное правило будет работать только до момента перезагрузки, и в зависимости от того как ваш хостер собирает образ этой ОС список правил iptables может хранится в разных местах если вообще хранится, это нужно будет искать на сервере или уточнить у хостера.
Если же фаервол включен, то открываем на редактирование файл /etc/ufw/before.rules и в конец вставляем следующий блок
*nat
-F
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o ethXXX -j MASQUERADE
COMMIT
Не забываем указать правильное имя интерфейса, сохраняем и перезапускаем фаервол командой
sudo ufw reload
5. Теперь идем в личный кабинет ZeroTier и добавляем маршурт по умолчанию для нашей сети
Находим блок Managed Routes
В поле Destination вводим 0.0.0.0/0 а в поле Via адрес нашего сервера в локальной сети, его можно посмотреть в списке Member ниже, и нажимаем кнопку Submit
6.Далее в телефоне открываем приложение, выключаем подключение, заходим в него и переключаем ползунок Enable Default Route в положение включено, возвращаемся к списку сетей и включаем подклчюение. Проверяем например на сайте 2ip.ru какой отображается адрес, если это адрес вашего сервера, то всеч хорошо и все работает. Для включения данной функции на ПК - щелкаем правой кнопкой мыши в трее, находим нашу подключенную сеть, выбираем Allow Default Router Override, ждем какое-то время и проверяем что теперь в интернет мы ходим через наш серевр.
Так же можно развернуть свой сетевой контроллер, например на базе zero-ui но его установка и настройка для каких-то простых целей имеет мало смысла, т.к. тут и свой сервер нужен, и домен и посидеть покопаться придется, в общем овчинка может не стоить выделки.
Вместо заключения
Плюсы :
- Простой и быстрый старт, для простой локалки не нужно устанавливать и настраивать что-то сложное,
- В бесплатной версии возможно подключить до 25 устройств, что для домашнего использования более чем достаточно.
Минусы:
- К сожалению в век блокировок протокол может отлететь в любой момент наряду с другими которые уже блокируются,
- Есть небольшие вопросы к времени установления соединения, иногда с телефона думает в районе минуты после включения.
Если вы решили попробовать и у вас что-то не получилось за советом и помощью всегда можно придти в мой тг канал.
Никто в здравом уме, сетевой поток со своих серверов не будет гонять через левый сервис , для домашнего использования ...ок , но для серверного сегмента ...не ну нахуй
А что с безопасностью? Локальная сеть на чужом оборудовании не выглядит надежным и безопасным решением.
Подключить все устройства в L2tp ispec чем хуже? Судя по инструкции ZeroTier ниразу не легче и быстрее.
Самый главный минус, который был у них несколько лет назад и до сих пор от него, насколько я могу судить, не избавились – отсутствие децентрализации. даже в self-hosted у него тотальная зависимость от корневых серверов zerotier (тогда они назывались планетами, а свои - лунами). Если копнуть исходники, в которых они захардкожены – получим список для блокировки. Таким образом, даже при наличии своих корней, если нет доступа до корневых zerotier – это тыква, ибо вся инфа о них живет там. Единственный вариант – пересобрать мир со своими планетами, но тут начинается проблема отдать это все на клиент. Версия для IOS/Android не умела работать с кастомным миром, правда для Android можно найти сторонний пропатченный клиент. На Win/Lin/Mac надо было закидывать бинарник и что-то перегенерировать на его основе. И так всякий раз, когда добавляешь новый корень, по всем клиентам. Обещали это поменять в версии 2.0, но не сказали сроков ее появления.
А чем банальный VPN хуже? Нахрена велосипед изобретать, и еще через третьих лиц личные данные гонять
Сервис имба, несколько лет пользуюсь для организации локалок со своими друзьями. Ещё можно упомянуть Tailscale в качестве альтернативы, там magicdns есть
На счёт своего контроллера, вы немного ошибаетесь. Его поднять можно на любой машине, даже не имеющей белого ip. С веб-мордами zero-ui или ztncui управление элементарное.
Любопытно. Этакий радминвпн, но с возможностью управления. А как со стабильностью работы сети? Часто лагает?
Очень сложная статья. Там же все гораздо проще.
А с Tailscale все гораздо проще и надежнее. Я почти полтора года сидел на удаленке через рдп. Рабочий комп в офисе оставался.
Полгода пользовался Zerotier, но это было мучительно. Перешел на тейлскейл и проблемы с коннектом, с лагами исчезли на корню. Приложения на телефон и линух ставятся с полпинка.
1.Подключаемся к серверу по ssh и установливаем ZeroTier One....
Вопрос: чем ssh не устраивает? Для чего нужно это чудо?
Nat хорошо обходит ?