добрый день.
Может кто решить все же себе установить 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 интерфейс.