Инструкция для подключения удалённого доступа с помощью Tailscale

Для форка OpenWRT 24,


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

3 лайка

И еще чувствительная тема, они по умолчанию логи трафика с девайсов собирают: Logging overview · Tailscale Docs

Надо это отключать явно руками: Logging overview · Tailscale Docs

На десктопном линуксе я это смог сделать, прописав в /etc/environment переменную TS_NO_LOGS_NO_SUPPORT=true, а как это правильно сделать в OpenWRT, не знаю.

Буду благодарен, если подскажете.

Вроде бы, в extra settings можно дополнительные аргументы прописать, но из вывода ps непонятно, куда идет этот флаг

root@RouteRich:~# ps | grep tailscale
21209 root     1222m S    /usr/sbin/tailscaled --port 41641 --state /etc/tailscale/tailscaled.state
21369 root      1680 S    {tailscale} /bin/sh /etc/rc.common /etc/init.d/tailscale start
21433 root      1320 S    grep tailscale
21436 root     1218m R    /usr/sbin/tailscaled --cleanup
root@RouteRich:~# ps | grep tailscale
24902 root     1222m S    /usr/sbin/tailscaled --port 41641 --state /etc/tailscale/tailscaled.state
24903 root      1452 S    {tailscale_helpe} /bin/sh /usr/sbin/tailscale_helper --accept-dns=false --no-logs-no-support
24956 root      1796 S    {tailscale} /bin/sh /etc/rc.common /etc/init.d/tailscale stop
25089 root     1220m S    /usr/sbin/tailscaled --cleanup
root@RouteRich:~# ps | grep tailscale
26311 root     1222m S    /usr/sbin/tailscaled --port 41641 --state /etc/tailscale/tailscaled.state
26493 root      1680 S    {tailscale} /bin/sh /etc/rc.common /etc/init.d/tailscale start
26558 root     1220m R    /usr/sbin/tailscaled --cleanup

Сделайте это, командой:
sh
uci set tailscale.settings.log_stderr=0
uci commit tailscale /etc/init.d/tailscale restart

Если вам нужно полностью отключить сбор логов и отправку данных, вы можете добавить параметр --no-logs-no-support в запуск службы Tailscale.

Добавление этого ключа в Extra parameters вызывает ошибки и регулярные перезапуски tailscaled.

Пока костыль добавил:

ssh routerich.lan
vim /etc/init.d/tailscale

Далее после 91 строки со словами procd_set_param command $PROGD добавить еще одну procd_append_param command --no-logs-no-support

В результате должно получиться

...
procd_open_instance
procd_set_param command $PROGD

procd_append_param command --no-logs-no-support    # <<<<< дописать

[ -n "$port" ] && procd_append_param command --port "$port"
[ -n "$state_file" ] && procd_append_param command --state "$state_file"

procd_set_param env TS_DEBUG_FIREWALL_MODE="$fw_mode"
...

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

Как вариант. Но так как я написал проще.

Это не про то.

uci set tailscale.settings.log_stderr=0 - это просто отключение вывода сообщений в stderr.

Логи трафика по-прежнему будут уходить в https://log.tailscale.io

А если изменить конфигурацию syslog, чтобы перенаправить логи в /dev/null ?

nano /etc/syslog.conf

и туда добавить:

!!tailscaled
daemon.info /dev/null

Перезапуск службы:

/etc/init.d/syslog restart

Вы путаете печать в локальные потоки вывода (stdout, stderr), локального демона по сбору логов, и отправку информации за океан.

Можно что угодно перенаправлять в /dev/null, на работу этой функции оно не повлияет.
Весь трафик, который tailscaled пропускает через себя, он еще туда отсылает.

Вот где оно выключается: tailscale/logpolicy/logpolicy.go at main · tailscale/tailscale · GitHub

Я, к сожалению, плохо знаю Go, поэтому не могу сориентироваться в этом файле.

В Go не разбираюсь, так же
Тогда самое простое, как написано выше..
procd_append_param command --no-logs-no-support

Или можно попробовать добавить в файл /etc/profile или /etc/init.d/tailscale , но не факт, что сработает.

export TS_NO_LOGS_NO_SUPPORT=true

Потом /etc/init.d/tailscale restart

В не-embedded линуксах /etc/profile - это для интерактивных сессий. Тут, вероятно, тоже. Так что не сработает.

Остается редактировать /etc/init.d/tailscale и возвращать правки после обновлений.

Хорошо бы, чтобы команда Routerich прикрутила в своем форке нормальную поддержку этого ключа из конфигов. Это все там же делается, в районе 80-90 строки файла /etc/init.d/tailscale (@Zerodev)

Добавили данные параметры в наш форк tailscale. Как и писали, название форка: tailscale-lite. Если поставить сверху обычный пакет tailscale то все затрётся. Можете тестировать

2 лайка

Молодцы!
У меня роутер v0 с OpenWrt 23.05. Придется подождать, когда в firmware selector появится.

Здравствуйте, подскажите пожалуйста, Exit node включать надо только для роутера или для смартфона тоже?

Если вы планируете использовать роутер как выходное устройство, то только на роутере. На телефоне в приложении Tailscale просто выбрать роутер как exit node. Вы можете добавить в сеть, например, разные роутеры и переключаться между ними.

Ну вот настроил я всё. на вебку роутера заходит без проблем. Включил exit node, но перенапраление трафика на своём смарте я как-то не наблюдаю. на роутере ЮАБ и подкоп стоит, а тот же ютуб на смарте не работает. Может ещё какие манипуляции на роутере надо сделать, чтобы трафик через роутер проходил? Подскажите пожалуйста.

Кроме exit node нужно включить перенаправление в подсеть роутера.

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

В начале темы есть пункт про разрешенные маршруты

IP адрес никак не меняется, хоть включён exit node, хоть выключен, IP один и тот же, выданный оператором связи. Перенаправление трафика не происходит, хотя на сам роутер с мобильного зайти можно. Я уже несколько раз уже всё перенастраивал с полным удалением tailscale, но нет не работает. Не понятно, где причина, на стороне роутера или на стороне tailscale. Есть идеи у кого-нибудь?

В личном кабинете на сайте tailscale вы подтвердили, что роутер является exit node? Просто указать на роутере недостаточно