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

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

Опубликовано
7 минут назад, krass сказал:

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

Все необходимое для написания в инструкции в теме уже есть. Остается только определить скрипты для netfilter.d - а они разные, скорее всего в зависят от того, задается ли exit node, или же advertise-routes, или же....

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

Бесплатно продаю идею, как вычислить необходимые правила для скрипта. Создаем файл

#!/opt/bin/sh

echo $* >> /opt/root/ip.txt
/opt/sbin/tables-multi iptables $*

делаем его исполняемым, и _временно_ заменяем файл iptables этим файлом. Запускаем tailscale. В файле /opt/root/ip.txt и будут нужные правила. Для `tailscale up` без дополнительных параметров, там будет примерно такое

-t filter -C FORWARD -m comment --comment tailscale -i tailscale0 -j ACCEPT --wait
-t nat -C POSTROUTING -m comment --comment tailscale -o eth0 -j MASQUERADE --wait
-t filter -N ts-input --wait
-t filter -N ts-forward --wait
-t nat -N ts-postrouting --wait
-t filter -N ts-input --wait
-t filter -F ts-input --wait
-t filter -N ts-forward --wait
-t filter -F ts-forward --wait
-t nat -N ts-postrouting --wait
-t nat -F ts-postrouting --wait
-t filter -C INPUT -j ts-input --wait
-t filter -I INPUT 1 -j ts-input --wait
-t filter -C FORWARD -j ts-forward --wait
-t filter -I FORWARD 1 -j ts-forward --wait
-t nat -C POSTROUTING -j ts-postrouting --wait
-t nat -I POSTROUTING 1 -j ts-postrouting --wait
-t filter -A ts-input ! -i tailscale0 -s 100.115.92.0/23 -j RETURN --wait
-t filter -A ts-input ! -i tailscale0 -s 100.64.0.0/10 -j DROP --wait
-t filter -A ts-forward -i tailscale0 -j MARK --set-mark 0x40000 --wait
-t filter -A ts-forward -m mark --mark 0x40000 -j ACCEPT --wait
-t filter -A ts-forward -o tailscale0 -s 100.64.0.0/10 -j DROP --wait
-t filter -A ts-forward -o tailscale0 -j ACCEPT --wait
-t filter -I ts-input 1 -i lo -s 100.85.86.2 -j ACCEPT --wait
-t nat -A ts-postrouting -m mark --mark 0x40000 -j MASQUERADE --wait

Тут в предпоследней строке ip адрес talescaled0 интерфейса - его нужно вычислить и подставить. Может потребоваться еще одно правило для INPUT с предыдущей страницы. Дальше уж сами......

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

В командной строке tailscale есть дополнительные параметры

~ # tailscale up --help
USAGE
  up [flags]

"tailscale up" connects this machine to your Tailscale network,
triggering authentication if necessary.

The flags passed to this command are specific to this machine. If you don't
specify any flags, options are reset to their default.

FLAGS
<тут пропущено>
  -netfilter-mode on                         netfilter mode (one of on, nodivert, off)
<тут пропущено>

Документации на флаг netfilter-mode я не нашел, из исходников

               case "nodivert":
                        prefs.NetfilterMode = preftype.NetfilterNoDivert
                        warnf("netfilter=nodivert; add iptables calls to ts-* chains manually.")
                case "off":
                        prefs.NetfilterMode = preftype.NetfilterOff
                        warnf("netfilter=off; configure iptables yourself.")

Поэтому я бы запускал tailscale up с флагом `-netfilter-mode off` и в хуках netfilter прописал правила, как для openvpn (bp Entware)

Для filter

/opt/sbin/iptables -I FORWARD -o tailscale0 -j ACCEPT
/opt/sbin/iptables -I FORWARD -i tailascale0 -j ACCEPT
/opt/sbin/iptables -I INPUT -i tailscale0 -j ACCEPT

А для таблицы nat

iptables -t nat -A POSTROUTING -o tailscale0 -j MASQUERADE

Думаю знатоки iptables осилят (я таковым не являюсь).

  • 3 месяца спустя...
  • 2 недели спустя...
Опубликовано

У кого-то получилось сделать выход в интернет через keenetic? Поделитесь правилами iptables! Не могу разобраться. 

  • 2 месяца спустя...
Опубликовано

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

На роутере установлен Entware и сервис tailscale. Настроен доступ к роутеру из Интернета по его IP-адресу в локальной сети: веб-конфигуратору (порт 80), к консоли командной строки CLI (порт 22) и к веб-интерфейсу Transmission (порт 8090). Однако, нет доступа из Интернета к серверам SMB и DLNA, а также к консоли командной строки OPKG (порт 222), хотя из локальной сети он есть. Не смог получить доступ к файлам на подключенном к роутеру USB-диске через SFTP-сервер, но без проблем настроил такой доступ через FTP-сервер. Явно нужно что-то открыть в настройках роутера (межсетевого экрана, задать правила переадресации портов), чтобы появился доступ серверам SMB и DLNA, а также к консоли командной строки OPKG (порт 222), но моих знаний для этого не хватает.

  • 1 год спустя...
Опубликовано

Как убрать ошибку?

03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   __clone()+0x6c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   start()+0xcc
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Thread::StartRoutine_(void*)+0x420
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Task::Thread::Run()+0x38
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Task::Thread::Run_()+0x464
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::ThreadPool::Task_::Run()+0x208
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::ThreadPool::Task_::ProcessJsonRequest_(Core::Configurator&, Core::Scgi::Request const&, Core::Scgi::Trace&, Array<char>&, Io::OStream&)+0x54c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::JsonPost(Core::Configurator&, Core::Scgi::Request const&, Json::Document const&, Core::Scgi::Trace&, Json::Document&, bool*)+0x1dc
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xf1c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xf1c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xf1c
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostValue_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Value const*, Json::Object*)+0x184
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Scgi::Tools::(anonymous namespace)::JsonPostObject_(Core::Configurator&, Command::Request const&, Core::Scgi::Trace&, Json::Object const*, Json::Object*)+0xa38
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Configurator::Serve(Command::Request const&, Command::Response&)+0x5a0
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Core::Configurator::Execute(Command::Base const*, Command::Request const&, Command::Response&)+0x274
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Command::(anonymous namespace)::ShowIpv6Route::Execute(Command::Request const&, Command::Response&) const+0x118
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Network::Ip6::RoutingTable::GetRoutes(AutoPVector<Network::Ip6::RoutingTable::Entry, StdDeleter>&, CString const&, Network::Ip6::CBlock const&, unsigned int, Log::VerboseT) const+0xb8
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable:   Network::Ip6::RoutingTable::GetRoutes_(AutoPVector<Network::Ip6::RoutingTable::Entry, StdDeleter>&, LockedPtr<Network::Interface::Ip6 const> const&, Network::Ip6::CBlock const&, unsigned int, bool, Log::VerboseT) const+0xfc
03-13-2023	11:48:21	User.Error	192.168.77.1	Mar 13 11:48:19 Keenetic-1300 ndm: Network::Ip6::RoutingTable: "Queue::BVOFTLCNTRGPKQMC::http/rci" (29883) backtrace:

 

  • 1 год спустя...
  • 2 месяца спустя...
Опубликовано (изменено)

Поставил пакеты, tailscale, таблицы. Tailscale сразу поднялся и подцепился к сети. Компы видны, всё работает, но периодически приходится перезапускать сервис:  

/opt/etc/init.d/S06tailscaled restart

или
 

tailscale down
tailscale up


Потому что, через какое то время, я не могу подключаться к удаленным компам. Сам сервис показывает что в сети и список всех устройств выводит, но пинга нет.
по tailscale status вижу такую картину в конце лога:

Цитата

# Health check:
#     - writing to "/etc/resolv.pre-tailscale-backup.conf" in rename of "/etc/resolv.conf": open /etc/resolv.pre-tailscale-backup.conf: read-only file system
#     - writing to "/etc/resolv.pre-tailscale-backup.conf" in rename of "/etc/resolv.conf": open /etc/resolv.pre-tailscale-backup.conf: read-only file system



Я так понимаю он что то пытается записать сопоставление имен для dns, но я тут вообще 0. Подскажите, что ему прописать...

Я пытался симлинк сделать на другую директорию, но пишет что раздел защищен от записи.

Изменено пользователем IvanS505
  • 1 месяц спустя...
Опубликовано (изменено)
В 17.08.2024 в 11:30, IvanS505 сказал:

Я так понимаю он что то пытается записать сопоставление имен для dns, но я тут вообще 0. Подскажите, что ему прописать...

мне помог запуск вот с этим аргументом tailscale up --accept-dns=false и tailscale больше не падал. Сообщение  HealthCheck тоже пропало.

Изменено пользователем Влад Бадамшин
Опубликовано
В 24.09.2024 в 15:32, Влад Бадамшин сказал:

 tailscale up --accept-dns=false

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

Опубликовано
В 25.09.2024 в 20:44, IvanS505 сказал:

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

Я тоже заметил что все таки теряется связь через время... Решил проблему, точнее скорее не проблему а последствия проблемы, прописав вашу команду в crontab. Вроде после этого ничего не ломалось...

*/30 * * * * /opt/etc/init.d/S06tailscaled restart
Опубликовано
7 часов назад, Vladsky сказал:
*/30 * * * * /opt/etc/init.d/S06tailscaled restart

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

  • 5 месяцев спустя...
Опубликовано (изменено)

Почитал комменты выше и понял, что мой вопрос не актуален. Ответ на него - крон с регулярным рестартом тэйлскейл

Изменено пользователем filipp
Опубликовано

Народ фиксит

# Health check:
#     - writing to "/etc/resolv.pre-tailscale-backup.conf" in rename of "/etc/resolv.conf": open /etc/resolv.pre-tailscale-backup.conf: read-only file system
#     - writing to "/etc/resolv.pre-tailscale-backup.conf" in rename of "/etc/resolv.conf": open /etc/resolv.pre-tailscale-backup.conf: read-only file system

Просто отключением. А, как заставить работать TS DNS на роутере в режиме Subnet routers? Бонусом и багрепорты эти пофиксятся...

  • 1 месяц спустя...
Опубликовано

Друзья. А сколько памяти в среднем должна потреблять последняя версия при обычной работе? Что-то системных требований не нашёл. А то настроил, вроде работает исправно, а через htop поглядел - 70 мегабайт сожрало, многовато. Это что-то я настроил неправильно, или так и должно быть, норма? В первых сообщениях про 15-20 мбайт писали.

  • 5 месяцев спустя...
Опубликовано (изменено)

спасибо @zyxmon за подсказку

сделал инструкцию, еще обкатываю ее, но хотябы tailscale не отключает соединения извне каждые N минут

для тех у кого tailscale вместо headscale пропустите часть с подключением к headscale

Установка компонентов

Спойлер

Установка компонентов

Добавим компоненты в /system/components

Нужно добавить Поддержку открытых пакетов
image.thumb.png.78c814a97929fa569d302bd6352d8060.png

Подтверждаем и перезагружаем роутер

 

Для установки Entware на Keenetic Ultra (KN-1811) необходимо использовать правильную версию установочного архива, соответствующую архитектуре процессора.

Keenetic Ultra KN-1811 базируется на архитектуре aarch64 (ARM64), поэтому для него следует использовать архив aarch64-installer.tar.gz
Установочный файл aarch64-installer.tar.gz нужно загрузить в папку install на подготовленном USB-накопителе.
image.thumb.png.2611aa781401da2ac89a643e98a8874f.png

В менеджере пакетов OPKG:

 
  • Выбираем Встроенное хранилище
  • Ставим галочку напротив admin для доступа по ssh
  • Нажимаем сохранить

image.thumb.png.8765833aae765b06ef51ccdb29d3a8f4.png

В системном журнале будет виден процесс установкиimage.thumb.png.54deff402ed6300ee714db22b43423e1.png

 

Теперь можно войти по SSH (порт 22 или 222) в keenetic под пользователем root пароль keenetic(например ssh root@192.168.1.1)

 

Не забудьте сменить стандартный пароль командой passwd root

Удобно установить пароль от учетки admin

image.png.a9ad2ddc02145fc5a9c12377d77e43fd.png

Обновляем список пакетов

opkg update

 

Устанавливаем tailscale

opkg install nano iptables tailscale

 

Стартуем службу

/opt/etc/init.d/S06tailscaled start

 

Вводим команду для присоединения к сети, где --authkey нужно получить у админа headscale

tailscale up --login-server=https://head.example.com --authkey 4410412513e0f4e0fa8bce69846c36add13fc --accept-routes

 

Если нужно расшарить доступ к локальной сети вводим команду. Где 192.168.1.0/24 подсеть которую будем шарить

tailscale set --advertise-routes 192.168.1.0/24

Если нужно установить понятное имя отображаемое в админке вводим команду. Где после --hostname вводим имя латиницей без точек

tailscale set --hostname ТутВВодимСвоеИмя

 

Для правильной работы netfilet делаем следующее

1) Отключаем управление правилами netfilter
tailscale set --netfilter-mode off

2) создаем файл hook с правилами

nano /opt/etc/ndm/netfilter.d/tailscale.sh
 
Эти правила рабочие, но не факт что тут нет ошибки. Возможно требуется коррекция
Вставляем текст в файл tailscale.sh
#!/opt/bin/sh

# Создаем цепочки, если их нет
iptables -N ts-forward 2>/dev/null || true
iptables -N ts-input 2>/dev/null || true

# Пытаемся удалить старые правила аккуратно, без ошибок
iptables -D INPUT -i tailscale0 -j ACCEPT 2>/dev/null || true

iptables -D FORWARD -i tailscale0 -j ACCEPT 2>/dev/null || true
iptables -D FORWARD -o tailscale0 -j ACCEPT 2>/dev/null || true

iptables -D ts-forward -i tailscale0 -j MARK --set-xmark 0x40000/0xff0000 2>/dev/null || true
iptables -D ts-forward -m mark --mark 0x40000/0xff0000 -j ACCEPT 2>/dev/null || true
iptables -D ts-forward -o tailscale0 -j DROP 2>/dev/null || true
iptables -D ts-forward -i tailscale0 -j ACCEPT 2>/dev/null || true

iptables -D ts-input -i lo -j ACCEPT 2>/dev/null || true
iptables -D ts-input -m addrtype ! --src-type LOCAL -j RETURN 2>/dev/null || true
iptables -D ts-input -i tailscale0 -s 100.64.0.0/10 -j DROP 2>/dev/null || true
iptables -D ts-input -i tailscale0 -j ACCEPT 2>/dev/null || true

# Добавляем правила INPUT
iptables -I INPUT -i tailscale0 -j ACCEPT

# Добавляем правила FORWARD
iptables -I FORWARD -i tailscale0 -j ACCEPT
iptables -I FORWARD -o tailscale0 -j ACCEPT

# Добавляем правила ts-forward
iptables -I ts-forward -i tailscale0 -j MARK --set-xmark 0x40000/0xff0000
iptables -I ts-forward -m mark --mark 0x40000/0xff0000 -j ACCEPT
iptables -I ts-forward -o tailscale0 -j DROP
iptables -I ts-forward -i tailscale0 -j ACCEPT

# Добавляем правила ts-input
iptables -I ts-input -i lo -j ACCEPT
iptables -I ts-input -i tailscale0 -s 100.64.0.0/10 -j DROP
iptables -I ts-input -i tailscale0 -j ACCEPT

3) Делаем файл исполняемым и запускаем

chmod +x /opt/etc/ndm/netfilter.d/tailscale.sh
/opt/etc/ndm/netfilter.d/tailscale.sh

Теперь правила для tailscale не будут удаляться кинетиком

Для проверки подключения вводим команду

tailscale status

 

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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