elchako
Участники форума-
Постов
5 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Галерея
Загрузки
Блоги
События
Весь контент elchako
-
спасибо @zyxmon за подсказку сделал инструкцию, еще обкатываю ее, но хотябы tailscale не отключает соединения извне каждые N минут для тех у кого tailscale вместо headscale пропустите часть с подключением к headscale Установка компонентов Теперь можно войти по SSH (порт 22 или 222) в keenetic под пользователем root пароль keenetic(например ssh root@192.168.1.1) Не забудьте сменить стандартный пароль командой passwd root Удобно установить пароль от учетки admin Обновляем список пакетов 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
-
Отвечу на свой вопрос, если вдруг кто-то будет искать стратегии для балансировщика (router strategy). Посмотрел в исходный код xray-core и обнаружил там 4 стратегии "random", "leastping", "roundrobin", "leastload" Но в последней версии xkeen стоит xray версии 1.8.4 в ней работает только random стратегия. Скачал xray версии 1.8.10 (заменяем файл xray /opt/sbin/xray) но в ней работают только "random", "roundrobin" Может @Skrill0 знает почему могут не работать стратегии "leastping", "leastload" ? При запуске xkeen с одной из них получаю ошибку (panic: runtime error: invalid memory address or nil pointer dereference) (ошибка времени выполнения: неверный адрес памяти или разыменование нулевого указателя) panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x6d2d60] goroutine 12 [running]: github.com/xtls/xray-core/app/router.(*LeastLoadStrategy).getNodes(0x4000373ce0, {0x4000386220, 0x2, 0x6c95b8?}, 0x0) github.com/xtls/xray-core/app/router/strategy_leastload.go:143 +0xa0 github.com/xtls/xray-core/app/router.(*LeastLoadStrategy).pickOutbounds(0x4000373ce0, {0x4000386220?, 0x0?, 0x6ca330?}) github.com/xtls/xray-core/app/router/strategy_leastload.go:75 +0x2c github.com/xtls/xray-core/app/router.(*LeastLoadStrategy).PickOutbound(0x400035afc0?, {0x4000386220?, 0x0?, 0x2?}) github.com/xtls/xray-core/app/router/strategy_leastload.go:65 +0x20 github.com/xtls/xray-core/app/router.(*Balancer).PickOutbound(0x400035afc0) github.com/xtls/xray-core/app/router/balancing.go:60 +0x1fc github.com/xtls/xray-core/app/router.(*Rule).GetTag(...) github.com/xtls/xray-core/app/router/config.go:21 github.com/xtls/xray-core/app/router.(*Router).PickRoute(0x10788a8?, {0x1081eb0?, 0x400034e5d0?}) github.com/xtls/xray-core/app/router/router.go:87 +0x54 github.com/xtls/xray-core/app/dispatcher.(*DefaultDispatcher).routedDispatch(0x4000362c00, {0x10788a8, 0x4000388450}, 0x40003861a0, {{0x1078678, 0x40003584a0}, 0x1bb, 0x2}) github.com/xtls/xray-core/app/dispatcher/default.go:403 +0x26c github.com/xtls/xray-core/app/dispatcher.(*DefaultDispatcher).Dispatch.func1() github.com/xtls/xray-core/app/dispatcher/default.go:266 +0x340 created by github.com/xtls/xray-core/app/dispatcher.(*DefaultDispatcher).Dispatch in goroutine 11 github.com/xtls/xray-core/app/dispatcher/default.go:239 +0x378 Описание стратегий: Random: Описание: Стратегия случайным образом выбирает один из узлов из доступного списка без учёта их текущей загрузки или доступности. Применение: Подходит для простых сценариев, где требуется равномерное распределение трафика между узлами без учёта их состояния. LeastPing: Описание: Эта стратегия выбирает узел с наименьшим временем отклика (ping) в момент запроса. Применение: Используется в сетевых условиях, где важно минимизировать задержки и максимизировать производительность путём выбора узла с наилучшими сетевыми характеристиками. RoundRobin: Описание: Стратегия поочерёдно выбирает каждый узел из списка, начиная с первого, и циклически возвращается к началу после достижения последнего узла. Применение: Подходит для равномерного распределения нагрузки между узлами в общей сети, обеспечивая справедливую и эффективную балансировку. LeastLoad: Описание: Данная стратегия выбирает узел с наименьшей текущей загрузкой (количеством активных соединений или другими метриками загрузки). Применение: Полезна в ситуациях, где требуется минимизировать нагрузку на узлы и обеспечить равномерное распределение трафика с учётом текущей загрузки каждого узла.
-
На этот счет есть статья https://habr.com/ru/articles/774838/ Если получится по ней, отпишись пожалуйста.
-
@jameszero @k0steg спасибо! Резервирование канала реализовал через балансировщик. Теперь при падении одного сервера xray переключается на другой. Но в стратегии балансировщика (05_routing.json) стоит "type": "Random". И бывает в рандомном режиме трафик идет через разные сервера ) Ищу другие стратегии, но в документации не нашел, или не там смотрю https://xtls.github.io/en/config/routing.html 04_outbounds.json 05_routing.json
-
Добрый день! Подскажите пожалуйста, можно ли в конфиге xray добавить подключение к другому серверу? Или можно ли это сделать через keenetic Суть в том чтобы резервировать xray канал либо назначать разным сетям политику с разными серверами xray
