Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Tailscale это новый проект - https://tailscale.com/ . Аналоги ngrok и ZeroTier. С помощью tailscale можно объединять в единую сеть разные устройств (в том числе и с "серыми" ip), давать доступ к другим устройствам, расположенным в одной сети с узлом tailscale, выходить в интернет через другой узел tailscale. Есть и другие функции - Magik DNS и т.д. Подробнее читайте на оффсайте. Есть версии под все современные операционные системы, а теперь и пакет Entware.
Исходный код проекта - https://github.com/tailscale/tailscale

Главное удобство - простота настройки.

Об опыте (положительном и отрицательном) делимся тут.

  • zyxmon изменил название на tailscale – сеть VPN, которая не нуждается в конфигурировании
Опубликовано

Спасибо!

 

А какие отличия от ZeroTier?

ZeroTier вроде тоже на mipsel ставится, даже была инструкция где-то здесь на форуме.

Есть инфа сколько занимает установка ZeroTier? Поднимется на внутреннем nand для прошивки 3.7.*

 

Пользую ZeroTier дома (но не на кинетике пока)

Опубликовано

Я с этим проектом не знаком. Попросили - собрал. Проверяющий ответил, что вроде работает, но инструкцию, что делал, написать не может. Да - это альтернатива 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. Нет уверенности, что для кинетика все тут правильно. Дальше, надеюсь, кому интересно дальше покопают.

Опубликовано
5 минут назад, Andrey Che сказал:

На KN-1010 запустилось и работает.

Что с потреблением памяти. Как то до этого считалось, что программы на go очень ресурсоемкие. По моим прикидкам демон tailscaled потребляет 20МБ и немного CPU.
Проверял через free с запущенным демоном и после его выгрузки.

Опубликовано
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

 

Видать логин не прописал... Но куда его прописать? Пока не вижу...

Опубликовано
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, поэтому и задержки большие)

Спасибо!

Опубликовано
12 минуты назад, Vladislav Proskuryakov сказал:

Теперь нормально и заработало!

Не все так просто. Я поставил tailscale на НАС в домашней сети и на кинетик (в режиме точки доступа). На НАС с работы захожу без проблем. А на кинетик не могу. Скорее всего - причина с правилами iptables на кинетике, не хватает тех, что добавляет tailscale. Позже может проверю и с роутером, там немного все иначе. Но у роутера белый ip - интереснее соединяться с устройствами с серыми ip.

Опубликовано
15 minutes ago, zyxmon said:

Не все так просто. Я поставил tailscale на НАС в домашней сети и на кинетик (в режиме точки доступа). На НАС с работы захожу без проблем. А на кинетик не могу. Скорее всего - причина с правилами iptables на кинетике, не хватает тех, что добавляет tailscale. Позже может проверю и с роутером, там немного все иначе. Но у роутера белый ip - интереснее соединяться с устройствами с серыми ip.

Подтверждаю... Сейчас поставил tailscale на телефон и зайти не могу на кинетик по ssh :(

Опубликовано

Заметил, что когда стопаешь процесс "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
~ #

 

Опубликовано
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

После этого все работает как надо.

Опубликовано
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 # 

 

 

Опубликовано

Я tailscale на кинетик в режиме роутера не ставил, не смотрел. Возможно главная проблема будет в том, что кинетик сбрасывает правила netfilter - 

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

Для NASов и компов tailscale интересный проект. Для роутеров - пока встретил пару сообщений об успешном запуске tailscale на openwrt.

Опубликовано
43 minutes ago, zyxmon said:

Я tailscale на кинетик в режиме роутера не ставил, не смотрел. Возможно главная проблема будет в том, что кинетик сбрасывает правила netfilter

То есть в режиме доступа к сети за кинетиком не получится так просто организовать доступ?

А то планировал взять этот вариант:

https://tailscale.com/kb/1019/subnets

Опубликовано
24 минуты назад, Vladislav Proskuryakov сказал:

То есть в режиме доступа к сети за кинетиком не получится так просто организовать доступ?

Я писал совсем о другом. О том, что операционная система кинетиков сбрасывает netfilter (который прописывает tailscale) и, скорее всего, потребуется писать скрипты-хуки.

ЗЫ Для доступа к сети за кинетиком, можно попробовать другое устройство, если на него можно поставить tailscale. Это может быть проще.

 

Опубликовано
6 minutes ago, zyxmon said:

ЗЫ Для доступа к сети за кинетиком, можно попробовать другое устройство, если на него можно поставить tailscale. Это может быть проще.

Да, уже понял, что, как обычно, лучше выходит это закрутить на малинке ))

Опубликовано (изменено)
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

 

Изменено пользователем Vladislav Proskuryakov
Опубликовано
35 минут назад, Vladislav Proskuryakov сказал:

Всё равно есть ошибки у меня, даже после вашей процедуры.

Похоже iptables не может удалить правила, которые удалила ось кинетика, как отмечалось выше.

Опубликовано

Добавил в репу пакет (пока только arm варианты). 

6 часов назад, Vladislav Proskuryakov сказал:

лучше выходит это закрутить на малинке ))

Проверил такой конфиг установкой на НАСе. Описал тут - https://forums.zyxmon.org/viewtopic.php?f=5&t=5787

Все работает. Настройка действительно очень простая.

Опубликовано (изменено)
4 часа назад, zyxmon сказал:

Все работает. Настройка действительно очень простая.

А скорости не выложите -- чтоб сравнить с WG/OVPN ?

Изменено пользователем krass
Опубликовано
3 минуты назад, krass сказал:

А скорости не выложите -- чтоб сравнить с WG/OVPN ?

Так это на базе WG. Основной "цимус" проекта - пробитие дырок в NAT и простая для пользователя конфигурация.

Опубликовано
12 часа назад, krass сказал:

А скорости не выложите -- чтоб сравнить с WG/OVPN ?

Теоретически так - используется ядерный модуль tun - тот же, что и в openvpn, а протокол на основе wireguard. Нужно смотреть.

Опубликовано
58 minutes ago, zyxmon said:

Теоретически так - используется ядерный модуль tun

Там, вроде, в случае установки tailscale идёт не ядерный модуль, а выполнение userspace бинарника написанного Go.

Так что замер скорости очень актуален, имхо.

Опубликовано

Замерил скорость с работы. Па самбе кидал файл с домашнего НАСа на комп на работе. Все уперлось в пропускной канал дома, около 100 мбит/с.

При этом tailscale стоит на arm8 НАСе с 4х ядерным процессором 1.4Ghz

Опубликовано
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

Опубликовано (изменено)

Ждем инструкцию  -- как поставить на кинетик , чтобы не было проблем с использованием этого vpn .

Изменено пользователем krass

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.