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

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

Опубликовано
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
  • 3 месяца спустя...
Опубликовано

добрый день.
Может кто решить все же себе установить entware клиент.

у меня keenetic GIGA-1011, архитектура mips
инструкция, как достучаться до локальных пк, и обойти правила прошивки keenetic.
на просторах не нашел, родилась в мучениях вместе ИИ google. 

скажу сразу: при доступе к дисковому хранилищу keenetic USB3.0 загрузка процессора 90-95%, память до 50-55%

если архив на внешнем устройстве - тогда все намного лучше. Тестировал через Rclone windows.

Никак не смог победить ZeroTier на мобильных сетях, а поскольку доступ нужен именно там, где кроме смартфона и инета ничего нет, пока тестирую TailScale.  

WebDav клиент, встроенный в прошивку тоже победить не удалось - доступ только через облако keenetic (тормозит жутко), установил RClone. Трафик http, поскольку tailscale итак шифрованная сеть .

Шаг 1: Установка Tailscale

bash
opkg update
opkg install tailscale (я так ставил)
Так как в репозиториях для MIPS пакета часто нет, можно использовать статический бинарник.
Узнайте архитектуру: uname -m.
1. Скачайте нужный архив с pkgs.tailscale.com.
Распакуйте и скопируйте файлы tailscale и tailscaled в /opt/bin/

2. Создаем правильный конфиг запуска (Init-скрипт)
Чтобы вам не нужно было вручную вводить путь к сокету, создайте (или отредактируйте) файл /opt/etc/init.d/S06tailscale:
bash
#!/bin/sh

# Paths for Entware environment
TAILSCALED="/opt/bin/tailscaled"
STATE_FILE="/opt/var/lib/tailscale/tailscaled.state"
SOCKET_FILE="/opt/var/run/tailscale/tailscaled.sock"

case "$1" in
    start)
        mkdir -p /opt/var/lib/tailscale
        mkdir -p /opt/var/run/tailscale
        # Start daemon with explicit paths
        $TAILSCALED --state=$STATE_FILE --socket=$SOCKET_FILE > /dev/null 2>&1 &
        echo "Tailscale started."
        ;;
    stop)
        killall tailscaled
        echo "Tailscale stopped."
        ;;
    restart)
        $0 stop
        sleep 2
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac
Не забудьте: chmod +x /opt/etc/init.d/S06tailscale
3. Настройка Alias (чтобы забыть про длинные команды)
Чтобы команда tailscale status работала как в обычном Linux, добавьте псевдоним в профиль оболочки:
bash
# Одной командой добавляем алиас в профиль
echo "alias tailscale='/opt/bin/tailscale --socket=/opt/var/run/tailscale/tailscaled.sock'" >> /opt/etc/profile
# Применяем изменения прямо сейчас
source /opt/etc/profile

Шаг 2: Создание скрипта автоматизации
В KeeneticOS 5.x системные правила (PBR) агрессивно вытесняют трафик Entware в основной WAN. Чтобы этого избежать, создаем скрипт /opt/etc/ndm/netfilter.d/100-tailscale.sh:
bash
#!/bin/sh
# Exit if not filter or nat table
[ "$table" != "filter" ] && [ "$table" != "nat" ] && [ -n "$table" ] && exit 0

if [ -z "$table" ] || [ "$table" == "filter" ]; then
    # 1. Routing Priority (FIX для доступа к Windows)
    ip route add 100.64.0.0/10 dev tailscale0 table main 2>/dev/null
    ip rule del to 100.64.0.0/10 priority 1 2>/dev/null
    ip rule add to 100.64.0.0/10 priority 1 table main

    # 2. Firewall Rules
    iptables -I INPUT -i tailscale0 -j ACCEPT
    iptables -I FORWARD -i tailscale0 -j ACCEPT
    iptables -I FORWARD -o tailscale0 -j ACCEPT

    # 3. MSS Clamping (Стабильность фото в LTE)
    iptables -t mangle -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1240

    # 4. Disable RP_Filter
    echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/tailscale0/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/br0/rp_filter
fi

if [ -z "$table" ] || [ "$table" == "nat" ]; then
    # 5. Masquerade (Доверие со стороны Windows/Kaspersky)
    iptables -t nat -I POSTROUTING -s 100.64.0.0/10 -o br0 -j MASQUERADE
fi
Важно: Сделайте chmod +x для этого файла.
Шаг 3: Запуск и авторизация
Запустите демон и авторизуйтесь (лучше через Auth Key): - по другому вообще не получилось. 
bash
/opt/bin/tailscaled --state=/opt/var/lib/tailscale/tailscaled.state --socket=/opt/var/run/tailscale/tailscaled.sock &
/opt/bin/tailscale --socket=/opt/var/run/tailscale/tailscaled.sock up --authkey tskey-auth-ВАШ_КЛЮЧ --advertise-routes=192.168.1.0/24 --accept-dns=false
 

Шаг 4: Оптимизация доступа к фото (WebDAV через rclone)
В SSH Keenetic введите:

bash
opkg update
opkg install rclone
2. Скрипт автозапуска для Keenetic
Чтобы rclone на роутере запускался сам и «слушал» правильный порт (например, 9091, чтобы не конфликтовать с компьютером на 9090), создайте файл /opt/etc/init.d/S99rclone:
bash
#!/bin/sh

# Укажите ПРАВИЛЬНЫЙ путь к вашему USB-диску

# df -h - посмотреть, куда примонтирован диск 
DISK_PATH="/tmp/mnt/ВАШ_ПУТЬ"

case "$1" in
    start)
        # Запуск с оптимизацией под слабый CPU Keenetic
        /opt/bin/rclone serve webdav "$DISK_PATH" \
            --addr :9091 \
            --user admin \
            --pass admin \
            --vfs-cache-mode minimal \
            --buffer-size 1M \
            --dir-cache-time 10m \
            --vfs-read-chunk-size 1M &
        ;;
    stop)
        killall rclone
        ;;
    *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac

3. Права и запуск
bash
chmod +x /opt/etc/init.d/S99rclone
/opt/etc/init.d/S99rclone start
4. Разрешение порта в вашем основном скрипте
Не забудьте добавить порт 9091 в ваш список правил /opt/etc/ndm/netfilter.d/100-tailscale.sh, иначе Keenetic заблокирует вход:
bash

добавить в /opt/etc/ndm/netfilter.d/100-tailscale.sh
iptables -I INPUT -i tailscale0 -p tcp --dport 9091 -j ACCEPT
Используйте код с осторожностью.

Для Windows-пк:
Чтобы не перегружать слабый CPU роутера протоколом Samba (95% нагрузки), используем rclone на Windows-ПК в качестве WebDAV-сервера.
На Windows-ПК: Скачайте rclone, запустите:

rclone.exe serve webdav "D:\Photos" --addr :9090 --user admin --pass admin --vfs-cache-mode minimal
На Keenetic: Пробросьте порт 9090 через iptables

добавить в /opt/etc/ndm/netfilter.d/100-tailscale.sh
iptables -I INPUT -i tailscale0 -p tcp --dport 9090 -j ACCEPT

обращайтесь напрямую по локальному IP (благодаря priority 1 в скрипте выше, это теперь работает).
На телефоне: В (Cx Проводник) добавьте WebDAV по адресу 192.168.1.XX:9090.

добавил запуск rclone в автозагрузку через планировщик windows

Почему это работает лучше ZeroTier (пояснения от google):
DERP-реле: Если UDP блокируется (Мегафон), Tailscale прозрачно переходит на TCP/443.
Priority 1: Правило маршрутизации обходит системные политики KeeneticOS 5.x, которые раньше «сливали» ответы Windows-ПК в интернет-канал провайдера.

ЗЫ. дольше всего искал это   # 1. Routing Priority (FIX для доступа к Windows)
при этом все другие устройства в сети были доступны. сначала была много попыток по MASQUERADE и FORWARD и добавлению правил в файервол windows. помог tcpdump по всем интерфейсам, и было выяснено, что keenetic кидает ответные пакеты в основной WAN интерфейс. 

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

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

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

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

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

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

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

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

×
×
  • Создать...

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

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