Собираем локальную сеть через интернет

Сегодня хочу показать как можно быстро и без существенных затрат собрать ваши ПК и телефоны в одну локальную сеть через интернет, делается все быстро, просто и без существенных затрат.

Собирать будем на базе ZeroTier

ZeroTier One - это программное обеспечение с открытым исходным кодом, которое может устанавливать одноранговое зашифрованное (P2P) между различными устройствами под управлением различных операционных систем. Он также предоставляет возможности управления сетью, такие как маршрутизация и создание правил брандмауэра.

Подготовка

  1. Переходим на https://my.zerotier.com/login создаем аккаунт и входим в него

  2. Откройте вкладку «Networks» и нажмите кнопку «Create a Network».

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

3. Зайдите во вновь созданную сеть что бы настроить ее

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

4. Вводим имя, выбираем тип сет Private

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

5. Мотаем ниже до раздела IPv4 Auto-Assign, ставим галочку Auto-Assign from Range, выбираем Easy, выбираем понравившийся диапазон из верхней или самой нижней строчки, это малые диапазоны на 256 адрес, больше не нужно, т.к. на бесплатном аккаунте ограничение в 25 устройств.

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

5. Мотаем еще чуть ниже до раздела Multicast, и проверяем что стоит галочка на пункте Enable Broadcast

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

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

Для телефонов ищем приложение ZeroTier One в официальном магазине приложений, как для Android так и для iOS, для Windows и Mac качаем приложение с официального сайта разработчика https://www.zerotier.com/download/
Если у вас Linux откройте терминал и выполните команду

sudo curl -s https://install.zerotier.com | sudo bash

Качаем, устанавливаем, запускаем

Настройка

  1. В Windows появится значок в трее, щалкаем по нему правой кнопкой и выбираем Join New Network

  2. В появившемся окошке вставляем ваш NetworkID из панели управления и нажимаем Join

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)
Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

3. Далее добавляем например телефон, устанавливаем приложение, открываем, нажимаем плюс в правом верхнем углу, вводим адрес сети и нажимаем Add Network

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)
Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

На Windows клиент автоматически подключится после добавления, на телефоне нужно будет переключить ползунок напротив идентификатора новой сети в положение включено.

4. Теперь возвращаемся в личный кабинет, и мотаем вниз до раздела Members, если оба клиента подключены, их можно будет увидеть в списке, ставим галочки в столбце Auth напротив каждого из них, и ждем пока у них появятся адреса в столбце Managed IPs

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

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

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

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

Сделать последний пункт не сложно, у меня есть 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

Собираем локальную сеть через интернет Windows, Linux, Android, Гайд, Программа, Длиннопост, Telegram (ссылка)

6.Далее в телефоне открываем приложение, выключаем подключение, заходим в него и переключаем ползунок Enable Default Route в положение включено, возвращаемся к списку сетей и включаем подклчюение. Проверяем например на сайте 2ip.ru какой отображается адрес, если это адрес вашего сервера, то всеч хорошо и все работает. Для включения данной функции на ПК - щелкаем правой кнопкой мыши в трее, находим нашу подключенную сеть, выбираем Allow Default Router Override, ждем какое-то время и проверяем что теперь в интернет мы ходим через наш серевр.

Так же можно развернуть свой сетевой контроллер, например на базе zero-ui но его установка и настройка для каких-то простых целей имеет мало смысла, т.к. тут и свой сервер нужен, и домен и посидеть покопаться придется, в общем овчинка может не стоить выделки.

Вместо заключения

Плюсы :
- Простой и быстрый старт, для простой локалки не нужно устанавливать и настраивать что-то сложное,
- В бесплатной версии возможно подключить до 25 устройств, что для домашнего использования более чем достаточно.
Минусы:
- К сожалению в век блокировок протокол может отлететь в любой момент наряду с другими которые уже блокируются,
- Есть небольшие вопросы к времени установления соединения, иногда с телефона думает в районе минуты после включения.

Если вы решили попробовать и у вас что-то не получилось за советом и помощью всегда можно придти в мой тг канал.

Автор поста оценил этот комментарий
Как-то сложно и как успели написать не безопасно , открытые исходники клиентской части 🤔
Nat хорошо обходит ?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

сквозь Nat работает хорошо

15
Автор поста оценил этот комментарий

А что с безопасностью? Локальная сеть на чужом оборудовании не выглядит надежным и безопасным решением.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

Любопытно. Этакий радминвпн, но с возможностью управления. А как со стабильностью работы сети? Часто лагает?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да в принципе норм

7
Автор поста оценил этот комментарий

Самый главный минус, который был у них несколько лет назад и до сих пор от него, насколько я могу судить, не избавились – отсутствие децентрализации. даже в self-hosted у него тотальная зависимость от корневых серверов zerotier (тогда они назывались планетами, а свои - лунами). Если копнуть исходники, в которых они захардкожены – получим список для блокировки. Таким образом, даже при наличии своих корней, если нет доступа до корневых zerotier – это тыква, ибо вся инфа о них живет там. Единственный вариант – пересобрать мир со своими планетами, но тут начинается проблема отдать это все на клиент. Версия для IOS/Android не умела работать с кастомным миром, правда для Android можно найти сторонний пропатченный клиент. На Win/Lin/Mac надо было закидывать бинарник и что-то перегенерировать на его основе. И так всякий раз, когда добавляешь новый корень, по всем клиентам.  Обещали это поменять в версии 2.0, но не сказали сроков ее появления.

раскрыть ветку (1)
Автор поста оценил этот комментарий

К сожалению да, с децентрализацией беда, ну пока живет и ладно

1
Автор поста оценил этот комментарий

Вы наверное хотели сказать, провайдер не всегда даёт статический белый ip, так как провайдер не имеет права давать серый ip. А блочить и резать что либо и подавно где-то далеко в прошлом.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Да конечно, статический белый ip

3
Автор поста оценил этот комментарий

Подключить все устройства в L2tp ispec чем хуже? Судя по инструкции ZeroTier ниразу не легче и быстрее.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Как уже было написано выше в zerotier подключенные устройства будут ходить напрямую между собой, минуя сервер если это возможно, это раз, два серверная часть l2tp ни разу не легче и быстрее, да в домашних роутерах она может и проще линукса в настройке но опять же не все провайдеры домашнего интернета дают внешние белые адреса, да и резать могут данный тип подключения

показать ответы
1
Автор поста оценил этот комментарий

1.Подключаемся к серверу по ssh и установливаем ZeroTier One....

Вопрос: чем ssh не устраивает? Для чего нужно это чудо?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Для создания именно локальной сети, которая ведет себя как локальная сеть, на SSH тоннелях это будет сильно сложнее сделать

Автор поста оценил этот комментарий

Очень сложная статья. Там же все гораздо проще.

А с Tailscale все гораздо проще и надежнее. Я почти полтора года сидел на удаленке через рдп. Рабочий комп в офисе оставался.


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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Tailscale К сожалению базируется на wireguard, а он как известно то работает то не работает, а это хоть какая то альтернатива

1
Автор поста оценил этот комментарий

А чем банальный VPN хуже? Нахрена велосипед изобретать, и еще через третьих лиц личные данные гонять

раскрыть ветку (1)
Автор поста оценил этот комментарий

Личные данные не гоняются через третьих лиц, только если нет другой возможности, это просто еще одна альтернатива, которая пока работает, в отличие от ваергарда или опенвпн

показать ответы