zyxmon Posted March 28, 2021 Share Posted March 28, 2021 Tailscale это новый проект - https://tailscale.com/ . Аналоги ngrok и ZeroTier. С помощью tailscale можно объединять в единую сеть разные устройств (в том числе и с "серыми" ip), давать доступ к другим устройствам, расположенным в одной сети с узлом tailscale, выходить в интернет через другой узел tailscale. Есть и другие функции - Magik DNS и т.д. Подробнее читайте на оффсайте. Есть версии под все современные операционные системы, а теперь и пакет Entware.Исходный код проекта - https://github.com/tailscale/tailscaleГлавное удобство - простота настройки. Об опыте (положительном и отрицательном) делимся тут. Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 29, 2021 Share Posted March 29, 2021 Спасибо! А какие отличия от ZeroTier? ZeroTier вроде тоже на mipsel ставится, даже была инструкция где-то здесь на форуме. Есть инфа сколько занимает установка ZeroTier? Поднимется на внутреннем nand для прошивки 3.7.* Пользую ZeroTier дома (но не на кинетике пока) Quote Link to comment Share on other sites More sharing options...
Andrey Che Posted March 29, 2021 Share Posted March 29, 2021 На KN-1010 запустилось и работает. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 29, 2021 Author Share Posted March 29, 2021 Я с этим проектом не знаком. Попросили - собрал. Проверяющий ответил, что вроде работает, но инструкцию, что делал, написать не может. Да - это альтернатива ZeroTier. Что делал я. 0. установил пакет iproute2, busybox похоже не достаточно. opkg install ip-full А вот tun уже входит у меня в ядро, модуль не нужен. 1. В отдельной консоли запустил сервис tailscaled -state=/opt/var/tailscaled.state По идее нужно запускать в фоне с перенаправлением stdout и stderr в /dev/null. Я решил оставить лог в консоли для отладки. 2. Поднял tailscale в другой консоли. Тут два варианта - интерактивный или через постоянный ключ Интерактивно: tailscale up Или через ключ (нужно создать постоянный на несколько хостов на tailscale.com tailscale up --authkey=tskey-........ 3. Проверить через ping 100.101.102.103, что соединение рабочее. Я еще через iptables -nvL ip route show table all смотрел, что там с маршрутизацией и правилами netfilter. Нет уверенности, что для кинетика все тут правильно. Дальше, надеюсь, кому интересно дальше покопают. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 29, 2021 Author Share Posted March 29, 2021 5 минут назад, Andrey Che сказал: На KN-1010 запустилось и работает. Что с потреблением памяти. Как то до этого считалось, что программы на go очень ресурсоемкие. По моим прикидкам демон tailscaled потребляет 20МБ и немного CPU. Проверял через free с запущенным демоном и после его выгрузки. Quote Link to comment Share on other sites More sharing options...
Andrey Che Posted March 29, 2021 Share Posted March 29, 2021 Потребляет примерно 18 мб памяти и ~1% cpu. Но иногда подскакивает до 40%. Смотрю по htop. Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 29, 2021 Share Posted March 29, 2021 2 hours ago, zyxmon said: Поднял tailscale в другой консоли. Что-то у меня не поднимается... Висит "tailscale up" команда: /storage/tmp # tailscale up В другом терминале крутится "tailscaled -state=/opt/var/tailscaled.state" Но там вижу ошибки: control: authRoutine: state:authenticating; wantLoggedIn=true control: direct.TryLogin(token=false, flags=0) control: doLogin(regen=false, hasUrl=false) Received error: TryLogin: fetch control key: Get "https://login.tailscale.com/key": x509: certificate signed by unknown authority control: authRoutine: backoff: 5664 msec monitor: RTM_NEWROUTE: src=, dst=64.233.164.102/32, gw=192.168.8.1, outif=24, table=10 monitor: RTM_NEWROUTE: src=, dst=64.233.164.138/32, gw=192.168.8.1, outif=24, table=10 [RATE LIMITED] format string "monitor: %s: src=%v, dst=%v, gw=%v, outif=%v, table=%v" (example: "monitor: RTM_NEWROUTE: src=, dst=64.233.164.101/32, gw=192.168.8.1, outif=24, table=10") logtail: dialed "log.tailscale.io:443" in 230ms logtail: upload: log upload of 889 bytes compressed failed: Post "https://log.tailscale.io/c/tailnode.log.tailscale.io/f8a6e474728ab83a276b3e56fb41ab9f8fd18270b35dc0a5b8e19d3ae852d972": x509: certificate signed by unknown authority logtail: backoff: 3586 msec Видать логин не прописал... Но куда его прописать? Пока не вижу... Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 29, 2021 Author Share Posted March 29, 2021 2 минуты назад, Vladislav Proskuryakov сказал: Что-то у меня не поднимается... Пакеты с сертификатами установлены? `opkg install ca-bundle` Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 29, 2021 Share Posted March 29, 2021 2 minutes ago, zyxmon said: Пакеты с сертификатами установлены? `opkg install ca-bundle` Нет, действительно /storage/tmp # opkg install ca-bundle Installing ca-bundle (20210119-1) to root... Downloading http://bin.entware.net/mipselsf-k3.4/ca-bundle_20210119-1_all.ipk Configuring ca-bundle. /storage/tmp # До этого и iptables не стоял... но это сам понял по ошибке раньше: ~ # tailscaled -state=/opt/var/tailscaled.state ... Creating router... wgengine.NewUserspaceEngine(tun "tailscale0") error: exec: "iptables": executable file not found in $PATH wgengine.New: exec: "iptables": executable file not found in $PATH flushing log. logger closing down Теперь нормально и заработало! /storage/tmp # tailscale up To authenticate, visit: https://login.tailscale.com/a/111111111 Success. /storage/tmp # Пинги пошли: ~ # ping 100.101.102.103 PING 100.101.102.103 (100.101.102.103): 56 data bytes 64 bytes from 100.101.102.103: seq=3 ttl=64 time=90.169 ms (связь через 4G, поэтому и задержки большие) Спасибо! Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 29, 2021 Author Share Posted March 29, 2021 12 минуты назад, Vladislav Proskuryakov сказал: Теперь нормально и заработало! Не все так просто. Я поставил tailscale на НАС в домашней сети и на кинетик (в режиме точки доступа). На НАС с работы захожу без проблем. А на кинетик не могу. Скорее всего - причина с правилами iptables на кинетике, не хватает тех, что добавляет tailscale. Позже может проверю и с роутером, там немного все иначе. Но у роутера белый ip - интереснее соединяться с устройствами с серыми ip. Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 29, 2021 Share Posted March 29, 2021 15 minutes ago, zyxmon said: Не все так просто. Я поставил tailscale на НАС в домашней сети и на кинетик (в режиме точки доступа). На НАС с работы захожу без проблем. А на кинетик не могу. Скорее всего - причина с правилами iptables на кинетике, не хватает тех, что добавляет tailscale. Позже может проверю и с роутером, там немного все иначе. Но у роутера белый ip - интереснее соединяться с устройствами с серыми ip. Подтверждаю... Сейчас поставил tailscale на телефон и зайти не могу на кинетик по ssh Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 29, 2021 Share Posted March 29, 2021 Заметил, что когда стопаешь процесс "tailscaled -state=/opt/var/tailscaled.state" то видны ошибки по iptables: ^Ctailscaled got signal interrupt; shutting down control: client.Shutdown() control: client.Shutdown: inSendStatus=0 control: authRoutine: state:synchronized; goal=nil control: mapRoutine: state:authenticated control: mapRoutine: quit control: Client.Shutdown done. magicsock: closing connection to derp-4 (conn-close), age 40m1s magicsock: 0 active derp conns router: note: deleting [-j ts-input] in filter/INPUT: %!w(*iptables.Error=&{{0xdb62f0 []} {/opt/sbin/iptables [/opt/sbin/iptables -t filter -D INPUT -j ts-input --wait] [] <nil> <nil> 0x1160528 [] <nil> 0xcd4270 0xdb62f0 <nil> <nil> true [0x122e380 0x122e3b8 0x122e3e8] [0x122e380 0x122e3b8 0x122e3e8] [0x122e3c0] [0x34f82c] 0x12b1040 <nil>} iptables v1.4.21: Couldn't load target `ts-input':No such file or directory Try `iptables -h' or 'iptables --help' for more information. 0 <nil>}) router: note: deleting [-j ts-forward] in filter/FORWARD: %!w(*iptables.Error=&{{0xdb6430 []} {/opt/sbin/iptables [/opt/sbin/iptables -t filter -D FORWARD -j ts-forward --wait] [] <nil> <nil> 0x115e240 [] <nil> 0xc1e3f0 0xdb6430 <nil> <nil> true [0xdd0568 0xdd0578 0xdd0588] [0xdd0568 0xdd0578 0xdd0588] [0xdd0580] [0x34f82c] 0xd150c0 <nil>} iptables v1.4.21: Couldn't load target `ts-forward':No such file or directory Try `iptables -h' or 'iptables --help' for more information. 0 <nil>}) router: note: deleting [-j ts-postrouting] in nat/POSTROUTING: %!w(*iptables.Error=&{{0xdb64f0 []} {/opt/sbin/iptables [/opt/sbin/iptables -t nat -D POSTROUTING -j ts-postrouting --wait] [] <nil> <nil> 0x115e2a0 [] <nil> 0xc1e450 0xdb64f0 <nil> <nil> true [0xdd05d0 0xdd05e0 0xdd05f0] [0xdd05d0 0xdd05e0 0xdd05f0] [0xdd05e8] [0x34f82c] 0xd15440 <nil>} iptables v1.4.21: Couldn't load target `ts-postrouting':No such file or directory Try `iptables -h' or 'iptables --help' for more information. 0 <nil>}) monitor: RTM_DELROUTE: src=100.96.170.25/0, dst=100.96.170.25/32, gw=, outif=35, table=255 flushing log. logger closing down ~ # Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 29, 2021 Author Share Posted March 29, 2021 2 часа назад, Vladislav Proskuryakov сказал: то видны ошибки по iptables: У меня все корректно. Единственно перед `killall tailscaled` я делаю `tailscale down` tailscaled got signal terminated; shutting down control: client.Shutdown() control: client.Shutdown: inSendStatus=0 control: authRoutine: state:authenticated; goal=nil control: mapRoutine: quit control: Client.Shutdown done. external route MTU: 1280 (<nil>) monitor: RTM_DELROUTE: src=, dst=fe80::/64, gw=, outif=31, table=254 monitor: RTM_DELROUTE: src=, dst=ff00::/8, gw=, outif=31, table=254 [RATE LIMITED] format string "monitor: %s: src=%v, dst=%v, gw=%v, outif=%v, table=%v" (example: "monitor: RTM_DELROUTE: src=, dst=fe80::ab30:2278:5f0b:fb30/128, gw=, outif=1, table=254") flushing log. logger closing down Кстати, я выяснил, какого правила не хватает для доступа к кинетику (в моем случае). Достаточно прописать iptables -I INPUT -i tailscale0 -j ACCEPT После этого все работает как надо. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 30, 2021 Share Posted March 30, 2021 17 часов назад, Andrey Che сказал: Потребляет примерно 18 мб памяти и ~1% cpu. Но иногда подскакивает до 40%. Смотрю по htop. Скрытый текст / # ps | grep tailscale 1331 root 656m S tailscaled -state=/opt/var/tailscaled.state 1533 root 5000 S grep tailscale / # cd /proc/1331 /proc/1331 # cat status Name: tailscaled Umask: 0022 State: S (sleeping) Tgid: 1331 Ngid: 0 Pid: 1331 PPid: 1231 TracerPid: 0 Uid: 0 0 0 0 Gid: 0 0 0 0 FDSize: 32 Groups: VmPeak: 672716 kB VmSize: 672716 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 17512 kB VmRSS: 16668 kB RssAnon: 7816 kB RssFile: 8852 kB RssShmem: 0 kB VmData: 11908 kB VmStk: 132 kB VmExe: 5136 kB VmLib: 3664 kB VmPTE: 36 kB VmPMD: 0 kB VmSwap: 0 kB Threads: 13 SigQ: 4/1987 SigPnd: 00000000000000000000000000000000 ShdPnd: 00000000000000000000000000000000 SigBlk: 00000000000000000000000000000000 SigIgn: 00000000000000000000000000001000 SigCgt: fffffffffffffffffffffffc783feeff CapInh: 0000000000000000 CapPrm: 0000003fffffffff CapEff: 0000003fffffffff CapBnd: 0000003fffffffff CapAmb: 0000000000000000 Speculation_Store_Bypass: unknown Cpus_allowed: f Cpus_allowed_list: 0-3 voluntary_ctxt_switches: 885 nonvoluntary_ctxt_switches: 426 /proc/1331 # Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 30, 2021 Share Posted March 30, 2021 Tailscale Admin portal - https://login.tailscale.com/admin/machines Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 30, 2021 Author Share Posted March 30, 2021 Я tailscale на кинетик в режиме роутера не ставил, не смотрел. Возможно главная проблема будет в том, что кинетик сбрасывает правила netfilter - Для бинарников, которые сами пытаются управлять этими правилами нужно все равно писать скрипты-хуки. Для NASов и компов tailscale интересный проект. Для роутеров - пока встретил пару сообщений об успешном запуске tailscale на openwrt. Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 30, 2021 Share Posted March 30, 2021 43 minutes ago, zyxmon said: Я tailscale на кинетик в режиме роутера не ставил, не смотрел. Возможно главная проблема будет в том, что кинетик сбрасывает правила netfilter То есть в режиме доступа к сети за кинетиком не получится так просто организовать доступ? А то планировал взять этот вариант: https://tailscale.com/kb/1019/subnets Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 30, 2021 Author Share Posted March 30, 2021 24 минуты назад, Vladislav Proskuryakov сказал: То есть в режиме доступа к сети за кинетиком не получится так просто организовать доступ? Я писал совсем о другом. О том, что операционная система кинетиков сбрасывает netfilter (который прописывает tailscale) и, скорее всего, потребуется писать скрипты-хуки. ЗЫ Для доступа к сети за кинетиком, можно попробовать другое устройство, если на него можно поставить tailscale. Это может быть проще. Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 30, 2021 Share Posted March 30, 2021 6 minutes ago, zyxmon said: ЗЫ Для доступа к сети за кинетиком, можно попробовать другое устройство, если на него можно поставить tailscale. Это может быть проще. Да, уже понял, что, как обычно, лучше выходит это закрутить на малинке )) Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 30, 2021 Author Share Posted March 30, 2021 Обновил пакет. Добавил зависимость от ca-bundle, скрипт запуска демона S06tailscaled. Небольшие патчи для совместимости с entware. Ссылка старая http://zyxnerd.zyxmon.org/files/tailscale_1.6.0-1_mipsel-3.4.ipk Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 30, 2021 Share Posted March 30, 2021 (edited) 15 hours ago, zyxmon said: У меня все корректно. Единственно перед `killall tailscaled` я делаю `tailscale down` Всё равно есть ошибки у меня, даже после вашей процедуры. Может тоже чего не хватает на свеже установленном entware в 3.7.Alpha4 ? Switching ipn state Running -> Stopped (WantRunning=false) magicsock: SetPrivateKey called (zeroed) magicsock: closing connection to derp-4 (zero-private-key), age 6m32s magicsock: 0 active derp conns health("overall"): error: state=Stopped, wantRunning=false control: mapRoutine: paused wgengine: Reconfig: configuring userspace wireguard config (with 0/0 peers) control: mapRoutine: awaiting unpause wgengine: Reconfig: configuring router router: note: deleting [-j ts-input] in filter/INPUT: %!w(*iptables.Error=&{{0x10a2680 []} {/opt/sbin/iptables [/opt/sbin/iptables -t filter -D INPUT -j ts-input --wait] [] <nil> <nil> 0x15fa180 [] <nil> 0x10c2420 0x10a2680 <nil> <nil> true [0x1148328 0x1148358 0x1148390] [0x1148328 0x1148358 0x1148390] [0x1148360] [0x34f82c] 0x134e540 <nil>} iptables v1.4.21: Couldn't load target `ts-input':No such file or directory Try `iptables -h' or 'iptables --help' for more information. 0 <nil>}) router: note: deleting [-j ts-forward] in filter/FORWARD: %!w(*iptables.Error=&{{0x10a2a20 []} {/opt/sbin/iptables [/opt/sbin/iptables -t filter -D FORWARD -j ts-forward --wait] [] <nil> <nil> 0x15fa1c8 [] <nil> 0x10c2510 0x10a2a20 <nil> <nil> true [0x1148660 0x1148718 0x1148758] [0x1148660 0x1148718 0x1148758] [0x1148748] [0x34f82c] 0x134e7c0 <nil>} iptables v1.4.21: Couldn't load target `ts-forward':No such file or directory Try `iptables -h' or 'iptables --help' for more information. 0 <nil>}) router: note: deleting [-j ts-postrouting] in nat/POSTROUTING: %!w(*iptables.Error=&{{0x117a110 []} {/opt/sbin/iptables [/opt/sbin/iptables -t nat -D POSTROUTING -j ts-postrouting --wait] [] <nil> <nil> 0x15fa210 [] <nil> 0x10c2570 0x117a110 <nil> <nil> true [0x1148848 0x1148898 0x11488b0] [0x1148848 0x1148898 0x11488b0] [0x11488a0] [0x34f82c] 0x134e980 <nil>} iptables v1.4.21: Couldn't load target `ts-postrouting':No such file or directory Try `iptables -h' or 'iptables --help' for more information. 0 <nil>}) Может iptables не той версии? iptables v1.4.21 Edited March 30, 2021 by Vladislav Proskuryakov Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 30, 2021 Author Share Posted March 30, 2021 35 минут назад, Vladislav Proskuryakov сказал: Всё равно есть ошибки у меня, даже после вашей процедуры. Похоже iptables не может удалить правила, которые удалила ось кинетика, как отмечалось выше. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 30, 2021 Author Share Posted March 30, 2021 Добавил в репу пакет (пока только arm варианты). 6 часов назад, Vladislav Proskuryakov сказал: лучше выходит это закрутить на малинке )) Проверил такой конфиг установкой на НАСе. Описал тут - https://forums.zyxmon.org/viewtopic.php?f=5&t=5787 Все работает. Настройка действительно очень простая. 1 Quote Link to comment Share on other sites More sharing options...
krass Posted March 30, 2021 Share Posted March 30, 2021 (edited) 4 часа назад, zyxmon сказал: Все работает. Настройка действительно очень простая. А скорости не выложите -- чтоб сравнить с WG/OVPN ? Edited March 30, 2021 by krass Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 30, 2021 Author Share Posted March 30, 2021 3 минуты назад, krass сказал: А скорости не выложите -- чтоб сравнить с WG/OVPN ? Так это на базе WG. Основной "цимус" проекта - пробитие дырок в NAT и простая для пользователя конфигурация. 1 Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 31, 2021 Author Share Posted March 31, 2021 12 часа назад, krass сказал: А скорости не выложите -- чтоб сравнить с WG/OVPN ? Теоретически так - используется ядерный модуль tun - тот же, что и в openvpn, а протокол на основе wireguard. Нужно смотреть. 1 Quote Link to comment Share on other sites More sharing options...
FlyingHavoc Posted March 31, 2021 Share Posted March 31, 2021 58 minutes ago, zyxmon said: Теоретически так - используется ядерный модуль tun Там, вроде, в случае установки tailscale идёт не ядерный модуль, а выполнение userspace бинарника написанного Go. Так что замер скорости очень актуален, имхо. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 31, 2021 Author Share Posted March 31, 2021 Замерил скорость с работы. Па самбе кидал файл с домашнего НАСа на комп на работе. Все уперлось в пропускной канал дома, около 100 мбит/с. При этом tailscale стоит на arm8 НАСе с 4х ядерным процессором 1.4Ghz 2 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 31, 2021 Share Posted March 31, 2021 2 часа назад, Vladislav Proskuryakov сказал: Там, вроде, в случае установки tailscale идёт не ядерный модуль, а выполнение userspace бинарника написанного Go. Так что замер скорости очень актуален, имхо. wgengine.NewUserspaceEngine(tun "tailscale0") ... Starting userspace wireguard engine with tun device "tailscale0" CreateTUN ok. Bringing wireguard device up... и так же https://pkg.go.dev/tailscale.com/wgengine#section-documentation https://github.com/tailscale/tailscale/tree/v1.6.0/wgengine Quote Link to comment Share on other sites More sharing options...
krass Posted March 31, 2021 Share Posted March 31, 2021 (edited) Ждем инструкцию -- как поставить на кинетик , чтобы не было проблем с использованием этого vpn . Edited March 31, 2021 by krass Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.