Skrill0 Posted October 5, 2023 Author Share Posted October 5, 2023 (edited) 17 минут назад, Sercha сказал: Спасибо за поддержку! Долгое ожидание ничего не даёт, увы, трафик На попытку запустить данный скрипт я получаю краткое "Permission denied" (поискал поиском - вроде один такой)). Однако принудительный sh вроде исполняет этот скрипт. Еще нюанс, что не применив эти правила - трафик идёт "не туда", что, в целом, тоже не комильфо в моём случае. В идеале было бы поведение "kill-switch", чтобы нет ножек-нет печенья... Боюсь подписку потерять на утечке). Что касается подождать - это конечно, правда жду как на иголках т.к. в понедельник нужно будет надолго уехать и возможности (мм желания? "настраивать роутер удалённо - к долгой дороге/назад/!") настроить уже не будет. Я, конечно, прочёл, что ожидается прозрачный режим работы, и это прекрасно! Готов быть альфа-тестером )). Но пока готов побороться за результат и с нынешней версией.. Возможно попробую вариант с tproxy, хотя боюсь это оверкилл для моих скиллов. Плюс вижу что добавили UDP функционал в штатный прокси - возможно стоит поэкспериментировать в сторону дев-версии прошивки? Тогда до выхода обновления можете руками обновить init скрипт по пути /opt/etc/init.d/S24xray. Это должно решить Вашу проблему) Скрытый текст #!/bin/sh ### Начало информации о службе # Краткое-описание: Запуск / Остановка Xray # version="0.8" # Версия ### Конец информации о службе # Цвета для вывода green="\033[32m" red="\033[31m" yellow="\033[33m" reset="\033[0m" # Пути и переменные xkeen_info_log="/opt/var/log/xkeen/info.log" xkeen_error_log="/opt/var/log/xkeen/error.log" path="/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin" xray_path="xray" xray_config="/opt/etc/xray/configs" app_name="Xkeen" interface="br0" ndm="/opt/etc/ndm/netfilter.d" export XRAY_LOCATION_ASSET="/opt/etc/xray/dat/" # Функции для ведения журнала в роутере log_notice_init() { local header="${app_name}" logger -p notice -t "${header}" "${1}" } log_error_init() { local header="${app_name}" logger -p error -t "${header}" "${1}" } exit_with_error() { echo "Ошибка: $1" exit 1 } # Функция для определения файла inbounds determine_config_file() { config_file="" if [ -n "$(ls "$xray_config" | grep 'inbounds')" ]; then config_file="$xray_config/$(ls "$xray_config" | grep 'inbounds')" elif [ -e "$xray_config/config.json" ]; then config_file="$xray_config/config.json" fi } # Функция для определения порта xray determine_xray_port() { xray_port=$(cat "$config_file" | grep -o '"port": [0-9]*' | awk '{print $2}' | head -n 1) if [ -z "$xray_port" ]; then exit_with_error "Не удалось определить xray_port из настроек." else # Проверяем, что xray_port является числом if ! [[ "$xray_port" =~ ^[0-9]+$ ]]; then exit_with_error "xray_port не является допустимым числом." fi fi } add_rules () { determine_config_file determine_xray_port if grep -q '"protocol": "dokodemo-door"' "$config_file"; then if grep -q '"tproxy": "tproxy"' "$config_file"; then xray_mode="tproxy" else xray_mode="redirect" fi else xray_mode="socks" fi case "$xray_mode" in "tproxy") log_notice_init "Найден «dokodemo-door» с режимом Transparent proxy в inbounds. Xray запущен в режиме Transparent proxy." ;; "redirect") log_notice_init "Найден «dokodemo-door» в inbounds. Xray запущен в режиме Redirect." ;; "socks") log_notice_init "Не найден «dokodemo-door» в inbounds. Xray запущен в обычном режиме. Для работы Xray нужно направить на него соединение любым удобным Вам способом." ;; *) log_notice_init "Ошибка: Недопустимое значение xray_mode: $xray_mode" exit 1 ;; esac echo -n > /opt/etc/ndm/netfilter.d/xray.sh cat > /opt/etc/ndm/netfilter.d/xray.sh <<EOL #!/bin/sh xray_mode=$xray_mode if [ "\$xray_mode" = "socks" ]; then exit 0 elif [ "\$xray_mode" = "redirect" ]; then if ! iptables -t nat -C PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port 2>/dev/null; then iptables -t nat -A PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port fi if ! iptables -t nat -C PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port 2>/dev/null; then iptables -t nat -A PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port fi if ! ip6tables -t nat -C PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port 2>/dev/null; then ip6tables -t nat -A PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port fi if ! ip6tables -t nat -C PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port 2>/dev/null; then ip6tables -t nat -A PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port fi elif [ "\$xray_mode" = "tproxy" ]; then iptables -t mangle -N XRAY iptables -t mangle -N XRAY_SELF iptables -t mangle -N DIVERT else echo "Ошибка: Недопустимое значение переменной xray_mode: $xray_mode" exit 1 fi EOL } # Функция для удаления правил redirect для адресов IPv4 delete_rules() { echo -n > /opt/etc/ndm/netfilter.d/xray.sh determine_config_file determine_xray_port # Проверка существования правил и удаление их, если они существуют if iptables -t nat -C PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then iptables -t nat -D PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" fi if iptables -t nat -C PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then iptables -t nat -D PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" fi if ip6tables -t nat -C PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then ip6tables -t nat -D PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" fi if ip6tables -t nat -C PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then ip6tables -t nat -D PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" fi } # Функция для проверки статуса xray xray_status() { if pgrep -f "$xray_path run -confdir $xray_config" > /dev/null; then return 0 # Процесс существует и работает else return 1 # Процесс не существует fi } # Функция для запуска Xray | Особая благодарность jameszero start() { log_notice_init "Инициирован запуск Xray" max_retries=10 # Максимальное количество попыток запуска retries=0 delay=1 # Начальная задержка в секундах while [ $retries -lt $max_retries ]; do if xray_status; then echo -e " Xray уже ${green}запущен${reset}" log_notice_init "Не удалось запустить Xray, так как он уже запущен" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Xray уже запущен" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" return 0 # Прерываем цикл, так как Xray уже запущен else "$xray_path" run -confdir "$xray_config" & sleep $delay if xray_status; then echo -e " Xray ${green}запущен${reset}" log_notice_init "Xray запущен" # Устанавливаем правила IPv4 и IPv6 add_rules $ndm/xray.sh echo "" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" return 0 # Прерываем цикл, так как Xray успешно запущен else retries=$((retries + 1)) echo -e " Попытка повторного запуска Xray: $retries из $max_retries" log_notice_init "Попытка повторного запуска Xray: $retries из $max_retries" delay=$((delay + 1)) # Увеличиваем задержку на 1 секунду fi fi done # Если достигнуто максимальное количество попыток и Xray не запущен, выводим ошибку echo -e " Не удалось запустить Xray после $max_retries попыток" log_error_init "Не удалось запустить Xray после $max_retries попыток" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Не удалось запустить Xray после $max_retries попыток" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" } # Функция для остановки xray stop() { log_notice_init "Инициирована остановка Xray" if xray_status; then # Удаляем правила IPv4 и IPv6 iptables -t nat -A PREROUTING -i "$interface" -s 192.0.0.0/24 -j ACCEPT sleep 1 delete_rules sleep 1 iptables -t nat -D PREROUTING -i "$interface" -s 192.0.0.0/24 -j ACCEPT killall -q -9 "$xray_path" echo -e " Xray ${yellow}остановлен${reset}" log_notice_init "Xray остановлен" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray остановлен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" else echo -e " Xray ${red}не запущен${reset}" log_error_init "Остановка Xray не удалась. Xray не был запущен" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Xray не был запущен" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" fi } # Обработка аргументов командной строки case "$1" in start) start ;; stop) stop ;; status) if xray_status; then echo -e " Xray ${green}запущен${reset}" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" else echo -e " Xray ${red}не запущен${reset}" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray не запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" fi ;; restart) stop > /dev/null 2>&1 start > /dev/null 2>&1 echo -e " Xray ${green}перезапущен${reset}" ;; *) echo -e " Команды: ${green}start${reset} | ${red}stop${reset} | ${yellow}restart${reset} | status" ;; esac exit 0 Edited October 5, 2023 by Skrill0 Quote Link to comment Share on other sites More sharing options...
Sercha Posted October 5, 2023 Share Posted October 5, 2023 (edited) 14 часа назад, Skrill0 сказал: Тогда до выхода обновления можете руками обновить init скрипт по пути /opt/etc/init.d/S24xray. Это должно решить Вашу проблему) Показать содержимое #!/bin/sh ### Начало информации о службе # Краткое-описание: Запуск / Остановка Xray # version="0.8" # Версия ### Конец информации о службе # Цвета для вывода green="\033[32m" red="\033[31m" yellow="\033[33m" reset="\033[0m" # Пути и переменные xkeen_info_log="/opt/var/log/xkeen/info.log" xkeen_error_log="/opt/var/log/xkeen/error.log" path="/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin" xray_path="xray" xray_config="/opt/etc/xray/configs" app_name="Xkeen" interface="br0" ndm="/opt/etc/ndm/netfilter.d" export XRAY_LOCATION_ASSET="/opt/etc/xray/dat/" # Функции для ведения журнала в роутере log_notice_init() { local header="${app_name}" logger -p notice -t "${header}" "${1}" } log_error_init() { local header="${app_name}" logger -p error -t "${header}" "${1}" } exit_with_error() { echo "Ошибка: $1" exit 1 } # Функция для определения файла inbounds determine_config_file() { config_file="" if [ -n "$(ls "$xray_config" | grep 'inbounds')" ]; then config_file="$xray_config/$(ls "$xray_config" | grep 'inbounds')" elif [ -e "$xray_config/config.json" ]; then config_file="$xray_config/config.json" fi } # Функция для определения порта xray determine_xray_port() { xray_port=$(cat "$config_file" | grep -o '"port": [0-9]*' | awk '{print $2}' | head -n 1) if [ -z "$xray_port" ]; then exit_with_error "Не удалось определить xray_port из настроек." else # Проверяем, что xray_port является числом if ! [[ "$xray_port" =~ ^[0-9]+$ ]]; then exit_with_error "xray_port не является допустимым числом." fi fi } add_rules () { determine_config_file determine_xray_port if grep -q '"protocol": "dokodemo-door"' "$config_file"; then if grep -q '"tproxy": "tproxy"' "$config_file"; then xray_mode="tproxy" else xray_mode="redirect" fi else xray_mode="socks" fi case "$xray_mode" in "tproxy") log_notice_init "Найден «dokodemo-door» с режимом Transparent proxy в inbounds. Xray запущен в режиме Transparent proxy." ;; "redirect") log_notice_init "Найден «dokodemo-door» в inbounds. Xray запущен в режиме Redirect." ;; "socks") log_notice_init "Не найден «dokodemo-door» в inbounds. Xray запущен в обычном режиме. Для работы Xray нужно направить на него соединение любым удобным Вам способом." ;; *) log_notice_init "Ошибка: Недопустимое значение xray_mode: $xray_mode" exit 1 ;; esac echo -n > /opt/etc/ndm/netfilter.d/xray.sh cat > /opt/etc/ndm/netfilter.d/xray.sh <<EOL #!/bin/sh xray_mode=$xray_mode if [ "\$xray_mode" = "socks" ]; then exit 0 elif [ "\$xray_mode" = "redirect" ]; then if ! iptables -t nat -C PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port 2>/dev/null; then iptables -t nat -A PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port fi if ! iptables -t nat -C PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port 2>/dev/null; then iptables -t nat -A PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port fi if ! ip6tables -t nat -C PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port 2>/dev/null; then ip6tables -t nat -A PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port fi if ! ip6tables -t nat -C PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port 2>/dev/null; then ip6tables -t nat -A PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port fi elif [ "\$xray_mode" = "tproxy" ]; then iptables -t mangle -N XRAY iptables -t mangle -N XRAY_SELF iptables -t mangle -N DIVERT else echo "Ошибка: Недопустимое значение переменной xray_mode: $xray_mode" exit 1 fi EOL } # Функция для удаления правил redirect для адресов IPv4 delete_rules() { echo -n > /opt/etc/ndm/netfilter.d/xray.sh determine_config_file determine_xray_port # Проверка существования правил и удаление их, если они существуют if iptables -t nat -C PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then iptables -t nat -D PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" fi if iptables -t nat -C PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then iptables -t nat -D PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" fi if ip6tables -t nat -C PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then ip6tables -t nat -D PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" fi if ip6tables -t nat -C PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then ip6tables -t nat -D PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" fi } # Функция для проверки статуса xray xray_status() { if pgrep -f "$xray_path run -confdir $xray_config" > /dev/null; then return 0 # Процесс существует и работает else return 1 # Процесс не существует fi } # Функция для запуска Xray | Особая благодарность jameszero start() { log_notice_init "Инициирован запуск Xray" max_retries=10 # Максимальное количество попыток запуска retries=0 delay=1 # Начальная задержка в секундах while [ $retries -lt $max_retries ]; do if xray_status; then echo -e " Xray уже ${green}запущен${reset}" log_notice_init "Не удалось запустить Xray, так как он уже запущен" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Xray уже запущен" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" return 0 # Прерываем цикл, так как Xray уже запущен else "$xray_path" run -confdir "$xray_config" & sleep $delay if xray_status; then echo -e " Xray ${green}запущен${reset}" log_notice_init "Xray запущен" # Устанавливаем правила IPv4 и IPv6 add_rules $ndm/xray.sh echo "" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" return 0 # Прерываем цикл, так как Xray успешно запущен else retries=$((retries + 1)) echo -e " Попытка повторного запуска Xray: $retries из $max_retries" log_notice_init "Попытка повторного запуска Xray: $retries из $max_retries" delay=$((delay + 1)) # Увеличиваем задержку на 1 секунду fi fi done # Если достигнуто максимальное количество попыток и Xray не запущен, выводим ошибку echo -e " Не удалось запустить Xray после $max_retries попыток" log_error_init "Не удалось запустить Xray после $max_retries попыток" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Не удалось запустить Xray после $max_retries попыток" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" } # Функция для остановки xray stop() { log_notice_init "Инициирована остановка Xray" if xray_status; then # Удаляем правила IPv4 и IPv6 iptables -t nat -A PREROUTING -i "$interface" -s 192.0.0.0/24 -j ACCEPT sleep 1 delete_rules sleep 1 iptables -t nat -D PREROUTING -i "$interface" -s 192.0.0.0/24 -j ACCEPT killall -q -9 "$xray_path" echo -e " Xray ${yellow}остановлен${reset}" log_notice_init "Xray остановлен" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray остановлен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" else echo -e " Xray ${red}не запущен${reset}" log_error_init "Остановка Xray не удалась. Xray не был запущен" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Xray не был запущен" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" fi } # Обработка аргументов командной строки case "$1" in start) start ;; stop) stop ;; status) if xray_status; then echo -e " Xray ${green}запущен${reset}" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" else echo -e " Xray ${red}не запущен${reset}" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray не запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" fi ;; restart) stop > /dev/null 2>&1 start > /dev/null 2>&1 echo -e " Xray ${green}перезапущен${reset}" ;; *) echo -e " Команды: ${green}start${reset} | ${red}stop${reset} | ${yellow}restart${reset} | status" ;; esac exit 0 Спасибо огромное! Заработало! Но, в рамках помощи ловли багов - и теперь ругается на превышение полномочий) : Скрытый текст ~ # xkeen -status Xray не запущен ~ # xkeen -start Xray 1.8.4 (Xray, Penetrates Everything.) Custom (go1.21.0 linux/mipsle) A unified platform for anti-censorship. 2023/10/05 20:50:15 Using confdir from arg: /opt/etc/xray/configs 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/01_log.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/02_stats.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/03_dns.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/04_reverse.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/05_fake-dns.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/06_transport.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/07_inbounds.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/08_outbounds.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/09_policy.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/10_routing.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/11_fallbacks.json Xray запущен /opt/etc/init.d/S24xray: line 195: /opt/etc/ndm/netfilter.d/xray.sh: Permission denied BusyBox v1.36.1 (2023-09-01 19:09:45 UTC) built-in shell (ash) строка 195 это выходит $ndm/xray.sh однако работает!) продолжаю тестирование, ещё раз спасибо! Добавка: /opt/etc/init.d/S24xray: line 195: /opt/etc/ndm/netfilter.d/xray.sh: Permission denied ошибка исправилась пермишенами на файл /opt/etc/ndm/netfilter.d/xray.sh. Теперь работает, в том числе после перезагрузки ЗЫ несколько токенов bep20, а вот с адресом trc20 возникла проблема (ругается кошель) (смотрел на гитхабе) Edited October 6, 2023 by Sercha 1 Quote Link to comment Share on other sites More sharing options...
Роберт Зарипов Posted October 6, 2023 Share Posted October 6, 2023 (edited) 10 часов назад, Skrill0 сказал: Тогда до выхода обновления можете руками обновить init скрипт по пути /opt/etc/init.d/S24xray. Это должно решить Вашу проблему) Показать содержимое #!/bin/sh ### Начало информации о службе # Краткое-описание: Запуск / Остановка Xray # version="0.8" # Версия ### Конец информации о службе # Цвета для вывода green="\033[32m" red="\033[31m" yellow="\033[33m" reset="\033[0m" # Пути и переменные xkeen_info_log="/opt/var/log/xkeen/info.log" xkeen_error_log="/opt/var/log/xkeen/error.log" path="/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin" xray_path="xray" xray_config="/opt/etc/xray/configs" app_name="Xkeen" interface="br0" ndm="/opt/etc/ndm/netfilter.d" export XRAY_LOCATION_ASSET="/opt/etc/xray/dat/" # Функции для ведения журнала в роутере log_notice_init() { local header="${app_name}" logger -p notice -t "${header}" "${1}" } log_error_init() { local header="${app_name}" logger -p error -t "${header}" "${1}" } exit_with_error() { echo "Ошибка: $1" exit 1 } # Функция для определения файла inbounds determine_config_file() { config_file="" if [ -n "$(ls "$xray_config" | grep 'inbounds')" ]; then config_file="$xray_config/$(ls "$xray_config" | grep 'inbounds')" elif [ -e "$xray_config/config.json" ]; then config_file="$xray_config/config.json" fi } # Функция для определения порта xray determine_xray_port() { xray_port=$(cat "$config_file" | grep -o '"port": [0-9]*' | awk '{print $2}' | head -n 1) if [ -z "$xray_port" ]; then exit_with_error "Не удалось определить xray_port из настроек." else # Проверяем, что xray_port является числом if ! [[ "$xray_port" =~ ^[0-9]+$ ]]; then exit_with_error "xray_port не является допустимым числом." fi fi } add_rules () { determine_config_file determine_xray_port if grep -q '"protocol": "dokodemo-door"' "$config_file"; then if grep -q '"tproxy": "tproxy"' "$config_file"; then xray_mode="tproxy" else xray_mode="redirect" fi else xray_mode="socks" fi case "$xray_mode" in "tproxy") log_notice_init "Найден «dokodemo-door» с режимом Transparent proxy в inbounds. Xray запущен в режиме Transparent proxy." ;; "redirect") log_notice_init "Найден «dokodemo-door» в inbounds. Xray запущен в режиме Redirect." ;; "socks") log_notice_init "Не найден «dokodemo-door» в inbounds. Xray запущен в обычном режиме. Для работы Xray нужно направить на него соединение любым удобным Вам способом." ;; *) log_notice_init "Ошибка: Недопустимое значение xray_mode: $xray_mode" exit 1 ;; esac echo -n > /opt/etc/ndm/netfilter.d/xray.sh cat > /opt/etc/ndm/netfilter.d/xray.sh <<EOL #!/bin/sh xray_mode=$xray_mode if [ "\$xray_mode" = "socks" ]; then exit 0 elif [ "\$xray_mode" = "redirect" ]; then if ! iptables -t nat -C PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port 2>/dev/null; then iptables -t nat -A PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port fi if ! iptables -t nat -C PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port 2>/dev/null; then iptables -t nat -A PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port fi if ! ip6tables -t nat -C PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port 2>/dev/null; then ip6tables -t nat -A PREROUTING -i $interface -p tcp -j REDIRECT --to-port $xray_port fi if ! ip6tables -t nat -C PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port 2>/dev/null; then ip6tables -t nat -A PREROUTING -i $interface -p udp -j REDIRECT --to-port $xray_port fi elif [ "\$xray_mode" = "tproxy" ]; then iptables -t mangle -N XRAY iptables -t mangle -N XRAY_SELF iptables -t mangle -N DIVERT else echo "Ошибка: Недопустимое значение переменной xray_mode: $xray_mode" exit 1 fi EOL } # Функция для удаления правил redirect для адресов IPv4 delete_rules() { echo -n > /opt/etc/ndm/netfilter.d/xray.sh determine_config_file determine_xray_port # Проверка существования правил и удаление их, если они существуют if iptables -t nat -C PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then iptables -t nat -D PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" fi if iptables -t nat -C PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then iptables -t nat -D PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" fi if ip6tables -t nat -C PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then ip6tables -t nat -D PREROUTING -i "$interface" -p tcp -j REDIRECT --to-port "$xray_port" fi if ip6tables -t nat -C PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" 2>/dev/null; then ip6tables -t nat -D PREROUTING -i "$interface" -p udp -j REDIRECT --to-port "$xray_port" fi } # Функция для проверки статуса xray xray_status() { if pgrep -f "$xray_path run -confdir $xray_config" > /dev/null; then return 0 # Процесс существует и работает else return 1 # Процесс не существует fi } # Функция для запуска Xray | Особая благодарность jameszero start() { log_notice_init "Инициирован запуск Xray" max_retries=10 # Максимальное количество попыток запуска retries=0 delay=1 # Начальная задержка в секундах while [ $retries -lt $max_retries ]; do if xray_status; then echo -e " Xray уже ${green}запущен${reset}" log_notice_init "Не удалось запустить Xray, так как он уже запущен" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Xray уже запущен" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" return 0 # Прерываем цикл, так как Xray уже запущен else "$xray_path" run -confdir "$xray_config" & sleep $delay if xray_status; then echo -e " Xray ${green}запущен${reset}" log_notice_init "Xray запущен" # Устанавливаем правила IPv4 и IPv6 add_rules $ndm/xray.sh echo "" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" return 0 # Прерываем цикл, так как Xray успешно запущен else retries=$((retries + 1)) echo -e " Попытка повторного запуска Xray: $retries из $max_retries" log_notice_init "Попытка повторного запуска Xray: $retries из $max_retries" delay=$((delay + 1)) # Увеличиваем задержку на 1 секунду fi fi done # Если достигнуто максимальное количество попыток и Xray не запущен, выводим ошибку echo -e " Не удалось запустить Xray после $max_retries попыток" log_error_init "Не удалось запустить Xray после $max_retries попыток" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Не удалось запустить Xray после $max_retries попыток" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" } # Функция для остановки xray stop() { log_notice_init "Инициирована остановка Xray" if xray_status; then # Удаляем правила IPv4 и IPv6 iptables -t nat -A PREROUTING -i "$interface" -s 192.0.0.0/24 -j ACCEPT sleep 1 delete_rules sleep 1 iptables -t nat -D PREROUTING -i "$interface" -s 192.0.0.0/24 -j ACCEPT killall -q -9 "$xray_path" echo -e " Xray ${yellow}остановлен${reset}" log_notice_init "Xray остановлен" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray остановлен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" else echo -e " Xray ${red}не запущен${reset}" log_error_init "Остановка Xray не удалась. Xray не был запущен" echo "" >> "$xkeen_error_log" echo "[start] Проверка статуса Xray" >> "$xkeen_error_log" echo " [error] Xray не был запущен" >> "$xkeen_error_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_error_log" echo "" >> "$xkeen_error_log" fi } # Обработка аргументов командной строки case "$1" in start) start ;; stop) stop ;; status) if xray_status; then echo -e " Xray ${green}запущен${reset}" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" else echo -e " Xray ${red}не запущен${reset}" echo "" >> "$xkeen_info_log" echo "[start] Проверка статуса Xray" >> "$xkeen_info_log" echo " [info] Xray не запущен" >> "$xkeen_info_log" echo "[end] Проверка статуса Xray выполнена" >> "$xkeen_info_log" echo "" >> "$xkeen_info_log" fi ;; restart) stop > /dev/null 2>&1 start > /dev/null 2>&1 echo -e " Xray ${green}перезапущен${reset}" ;; *) echo -e " Команды: ${green}start${reset} | ${red}stop${reset} | ${yellow}restart${reset} | status" ;; esac exit 0 спасибо большое эта конфинурация решило мою проблему Edited October 6, 2023 by Роберт Зарипов 1 Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 6, 2023 Share Posted October 6, 2023 Добрый день. Спасибо автору за проделанную работу. Я своими кривыми ручонками не смог завести. Прошу Вас помочь. **Описание проблемы.** Полностью отвалился интернет. **Мои шаги, приведшие к проблеме.** Настроил впс по мануалу Проверил с тел через FoXray, работает. На роутере установил Xray По ленивой конфигурации настроил конфиги Упал инет совсем😁 **Снимки экрана или сам текст с консоли.* Скрытый текст скрин веб роутера скрин с терминала запуска xray статус в терминале веб **Информация о роутере ** - Keenetic - 4.0.4 - KN-1011 **Дополнительные пояснения.** Прочитал весь тред, перезагружал роутер. По логам из терминала вижу, что ошибка загрузки конфиг файлов. Они все находятся по тем путям. Кофиги менял 7,8,10 из ленивой настройки, нужные строки менял на свои. Добавлял днс DoT DoH. Сценарий initrc на месте. Как починить не знаю, прошу Вашей помощи. После запуска Xray падал инет на всех устройствах, отключал сокс. помогло только отключть самбу и opkg. Вытащил флешку с энтваре. Quote Link to comment Share on other sites More sharing options...
Sercha Posted October 6, 2023 Share Posted October 6, 2023 Вопрос kill-swith в режиме redirect решил воттакенным костылём. Возможно кому-то будет полезно... /opt/etc/init.d/S01xraynf Скрытый текст #!/bin/sh iptables -t nat -A PREROUTING -i br0 -p tcp -j REDIRECT --to-port 54836 iptables -t nat -A PREROUTING -i br0 -p udp -j REDIRECT --to-port 54836 ip6tables -t nat -A PREROUTING -i br0 -p tcp -j REDIRECT --to-port 54836 ip6tables -t nat -A PREROUTING -i br0 -p udp -j REDIRECT --to-port 54836 exit 1 🫠 Осталось убедится, что DNS идут через так же через прокси - буду благодарен за совет! Quote Link to comment Share on other sites More sharing options...
Sercha Posted October 6, 2023 Share Posted October 6, 2023 23 минуты назад, m0.graph сказал: Добрый день. Спасибо автору за проделанную работу. Я своими кривыми ручонками не смог завести. Прошу Вас помочь. **Описание проблемы.** Полностью отвалился интернет. **Мои шаги, приведшие к проблеме.** Настроил впс по мануалу Проверил с тел через FoXray, работает. На роутере установил Xray По ленивой конфигурации настроил конфиги Упал инет совсем😁 **Снимки экрана или сам текст с консоли.* Скрыть содержимое скрин веб роутера скрин с терминала запуска xray статус в терминале веб **Информация о роутере ** - Keenetic - 4.0.4 - KN-1011 **Дополнительные пояснения.** Прочитал весь тред, перезагружал роутер. По логам из терминала вижу, что ошибка загрузки конфиг файлов. Они все находятся по тем путям. Кофиги менял 7,8,10 из ленивой настройки, нужные строки менял на свои. Добавлял днс DoT DoH. Сценарий initrc на месте. Как починить не знаю, прошу Вашей помощи. После запуска Xray падал инет на всех устройствах, отключал сокс. помогло только отключть самбу и opkg. Вытащил флешку с энтваре. похоже, что у вас не загружены гео-добавки, однако включены в файле 10_routing. ИМХО, попробуйте его для начала упростить: Скрытый текст { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ { "inboundTag": ["socks-in"], "outboundTag": "proxy", "type": "field" } ] } } Ну а для проверки работы самого подключения - я использовал сначала 07_s_inbounds.json (SOCKS режим) и подключался к нему через прокси-клиент браузера FF. Но сначала должен пройти xkeen -start без ошибок. 1 1 Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 6, 2023 Share Posted October 6, 2023 23 минуты назад, Sercha сказал: ИМХО, попробуйте его для начала упростить: Прекрасно! Спасибо! Заработало. Весь трафик со всех устройств оборачивается в сокс. Так и должно быть? Нужно настроить 10_routing, чтобы не весь трафик заворачивался? Quote Link to comment Share on other sites More sharing options...
Sercha Posted October 6, 2023 Share Posted October 6, 2023 13 минуты назад, m0.graph сказал: Прекрасно! Спасибо! Заработало. Весь трафик со всех устройств оборачивается в сокс. Так и должно быть? Нужно настроить 10_routing, чтобы не весь трафик заворачивался? Отлично, 🤝 Да, думаю теперь надо усложнять 10_routing. У вас ругалось на то, что небыло geo файлов - стало быть надо их установить/загрузить.. 1 Quote Link to comment Share on other sites More sharing options...
Roman Balaev Posted October 6, 2023 Share Posted October 6, 2023 Добрый вечер, подскажите, как правильно добавить в роутинг игры из google play, кроме названия игры собственно ничего не известно. Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 6, 2023 Share Posted October 6, 2023 (edited) Добрый вечер, помогите разобраться, как работает GeoSite и GeoIP? Документацию читал и не понимаю😐 Скрытый текст Сейчас конфиг из ленивой сборки // Настройка маршрутизации { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ // Настройка черного списка { "inboundTag": ["socks-in"], "domain": [ "ext:geosite_v2fly.dat:category-ads-all", "google-analytics", // Могут быть проблемы с сервисами Google. Нужны тесты "analytics.yandex" // Могут быть проблемы с сервисами Yandex. Нужны тесты ], "outboundTag": "block", "type": "field" }, // Блокируем соединение по уязвимым UDP портам { "inboundTag": ["socks-in"], "network": "udp", "port": "135, 137, 138, 139", "outboundTag": "block", "type": "field" }, // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" }, // Настройка подключений через VPS с помощью IP { "inboundTag": ["socks-in"], "ip": [ "ext:geoip_antifilter.dat:antifilter", "ext:geoip_antifilter.dat:antifilter-community", "ext:geoip_v2fly.dat:facebook", "ext:geoip_v2fly.dat:netflix", "ext:geoip_v2fly.dat:twitter" ], "outboundTag": "proxy", "type": "field" }, // Направление остальныех соединений на VPS { "inboundTag": ["socks-in"], "outboundTag": "direct", "type": "field" } ] } } Хочу добавить например whoer.net Скрытый текст добавляю в // Настройка подключений через VPS с помощью доменных имен "ext:geosite_v2fly.dat:whoer", // Настройка маршрутизации { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ // Настройка черного списка { "inboundTag": ["socks-in"], "domain": [ "ext:geosite_v2fly.dat:category-ads-all", "google-analytics", // Могут быть проблемы с сервисами Google. Нужны тесты "analytics.yandex" // Могут быть проблемы с сервисами Yandex. Нужны тесты ], "outboundTag": "block", "type": "field" }, // Блокируем соединение по уязвимым UDP портам { "inboundTag": ["socks-in"], "network": "udp", "port": "135, 137, 138, 139", "outboundTag": "block", "type": "field" }, // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "ext:geosite_v2fly.dat:whoer", // добавил "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" }, // Настройка подключений через VPS с помощью IP { "inboundTag": ["socks-in"], "ip": [ "ext:geoip_antifilter.dat:antifilter", "ext:geoip_antifilter.dat:antifilter-community", "ext:geoip_v2fly.dat:facebook", "ext:geoip_v2fly.dat:netflix", "ext:geoip_v2fly.dat:twitter" ], "outboundTag": "proxy", "type": "field" }, // Направление остальныех соединений на VPS { "inboundTag": ["socks-in"], "outboundTag": "direct", "type": "field" } ] } } Обновляю и всё ломается, кроме хуера никуда не идет трафик и айпи провайдера. Скрытый текст Скрин терминала Увидел, как добавлен speedtest.net догадался добавить также // Настройка подключений через VPS с помощью доменных имен "whoer.net", сохраняю обновляю все заработало. Объясните, пожалуйста. Edited October 6, 2023 by m0.graph Quote Link to comment Share on other sites More sharing options...
Roman Balaev Posted October 6, 2023 Share Posted October 6, 2023 2 минуты назад, m0.graph сказал: Объясните, пожалуйста. сам не сильно разобрался, удалите этот профиль "ext:geosite_v2fly.dat:whoer", и добавте сайт как спид тест. Вообще сам бы хотел найти список этих профилей, но гугл не помог. Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 6, 2023 Share Posted October 6, 2023 (edited) 8 минут назад, Roman Balaev сказал: и добавте сайт как спид тест. так и сделал, теперь хочется понимать принцип, как это работает Возник еще вопрос, добавляю 2ip.ru, 2ip.io на них трафик не оборачивается, какие-то конфиги приоритетнее, получается. Возможно выборочно заворачивать трафик на сайты из ru? Edited October 6, 2023 by m0.graph Quote Link to comment Share on other sites More sharing options...
Skrill0 Posted October 6, 2023 Author Share Posted October 6, 2023 23 минуты назад, m0.graph сказал: Добрый вечер, помогите разобраться, как работает GeoSite и GeoIP? Документацию читал и не понимаю😐 Показать содержимое Сейчас конфиг из ленивой сборки // Настройка маршрутизации { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ // Настройка черного списка { "inboundTag": ["socks-in"], "domain": [ "ext:geosite_v2fly.dat:category-ads-all", "google-analytics", // Могут быть проблемы с сервисами Google. Нужны тесты "analytics.yandex" // Могут быть проблемы с сервисами Yandex. Нужны тесты ], "outboundTag": "block", "type": "field" }, // Блокируем соединение по уязвимым UDP портам { "inboundTag": ["socks-in"], "network": "udp", "port": "135, 137, 138, 139", "outboundTag": "block", "type": "field" }, // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" }, // Настройка подключений через VPS с помощью IP { "inboundTag": ["socks-in"], "ip": [ "ext:geoip_antifilter.dat:antifilter", "ext:geoip_antifilter.dat:antifilter-community", "ext:geoip_v2fly.dat:facebook", "ext:geoip_v2fly.dat:netflix", "ext:geoip_v2fly.dat:twitter" ], "outboundTag": "proxy", "type": "field" }, // Направление остальныех соединений на VPS { "inboundTag": ["socks-in"], "outboundTag": "direct", "type": "field" } ] } } Хочу добавить например whoer.net Показать содержимое добавляю в // Настройка подключений через VPS с помощью доменных имен "ext:geosite_v2fly.dat:whoer", // Настройка маршрутизации { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ // Настройка черного списка { "inboundTag": ["socks-in"], "domain": [ "ext:geosite_v2fly.dat:category-ads-all", "google-analytics", // Могут быть проблемы с сервисами Google. Нужны тесты "analytics.yandex" // Могут быть проблемы с сервисами Yandex. Нужны тесты ], "outboundTag": "block", "type": "field" }, // Блокируем соединение по уязвимым UDP портам { "inboundTag": ["socks-in"], "network": "udp", "port": "135, 137, 138, 139", "outboundTag": "block", "type": "field" }, // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "ext:geosite_v2fly.dat:whoer", // добавил "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" }, // Настройка подключений через VPS с помощью IP { "inboundTag": ["socks-in"], "ip": [ "ext:geoip_antifilter.dat:antifilter", "ext:geoip_antifilter.dat:antifilter-community", "ext:geoip_v2fly.dat:facebook", "ext:geoip_v2fly.dat:netflix", "ext:geoip_v2fly.dat:twitter" ], "outboundTag": "proxy", "type": "field" }, // Направление остальныех соединений на VPS { "inboundTag": ["socks-in"], "outboundTag": "direct", "type": "field" } ] } } Обновляю и всё ломается, кроме хуера никуда не идет трафик и айпи провайдера. Показать содержимое Скрин терминала Увидел, как добавлен speedtest.net догадался добавить также // Настройка подключений через VPS с помощью доменных имен "whoer.net", сохраняю обновляю все заработало. Объясните, пожалуйста. Доброго Вам вечера! GeoSite | GeoIP — это уже готовые списки. Сайт, к примеру, Whoer, они не содержат) Все их полезные категории вынесены в шапку темы. Если вы хотите добавить whoer, то секция будет выглядеть следующим образом // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "whoer", "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" } То есть, сайты, адрес которых содержит в себе whoer будут открываться через подключение outbounds c тегом proxy) 1 Quote Link to comment Share on other sites More sharing options...
Skrill0 Posted October 6, 2023 Author Share Posted October 6, 2023 16 минут назад, m0.graph сказал: так и сделал, теперь хочется понимать принцип, как это работает Возник еще вопрос, добавляю 2ip.ru, 2ip.io на них трафик не оборачивается, какие-то конфиги приоритетнее, получается. Возможно выборочно заворачивать трафик на сайты из ru? Если Вы хотите направить соединение с сайтами РФ, к примеру, на direct, то можно взять из ленивой конфигурации routing следующие заготовки: "regexp:^([\\w\\-\\.]+\\.)ru$", // .ru "regexp:^([\\w\\-\\.]+\\.)su$", // .su "regexp:^([\\w\\-\\.]+\\.)xn--p1ai$", // .рф "regexp:^([\\w\\-\\.]+\\.)xn--p1acf$", // .рус "regexp:^([\\w\\-\\.]+\\.)xn--80asehdb$", // .онлайн "regexp:^([\\w\\-\\.]+\\.)xn--c1avg$", // .орг "regexp:^([\\w\\-\\.]+\\.)xn--80aswg$", // .сайт "regexp:^([\\w\\-\\.]+\\.)xn--80adxhks$", // .москва "regexp:^([\\w\\-\\.]+\\.)moscow$", // .moscow "regexp:^([\\w\\-\\.]+\\.)xn--d1acj3b$", // .дети "ext:geosite_v2fly.dat:category-gov-ru" 1 Quote Link to comment Share on other sites More sharing options...
Skrill0 Posted October 6, 2023 Author Share Posted October 6, 2023 1 час назад, Roman Balaev сказал: Добрый вечер, подскажите, как правильно добавить в роутинг игры из google play, кроме названия игры собственно ничего не известно. Здравствуйте! К сожалению, если кроме названия игры ничего не известно, то никак. Нужно выяснить, на каком сервере работает игра. Его ip/domain, а потом внести в списки. Для этого можно написать в поддержку игры. Обычно, они без проблем отвечают на такие вопросы. 1 Quote Link to comment Share on other sites More sharing options...
Skrill0 Posted October 6, 2023 Author Share Posted October 6, 2023 19 часов назад, Sercha сказал: Спасибо огромное! Заработало! Но, в рамках помощи ловли багов - и теперь ругается на превышение полномочий) : Показать содержимое ~ # xkeen -status Xray не запущен ~ # xkeen -start Xray 1.8.4 (Xray, Penetrates Everything.) Custom (go1.21.0 linux/mipsle) A unified platform for anti-censorship. 2023/10/05 20:50:15 Using confdir from arg: /opt/etc/xray/configs 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/01_log.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/02_stats.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/03_dns.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/04_reverse.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/05_fake-dns.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/06_transport.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/07_inbounds.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/08_outbounds.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/09_policy.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/10_routing.json 2023/10/05 20:50:15 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/11_fallbacks.json Xray запущен /opt/etc/init.d/S24xray: line 195: /opt/etc/ndm/netfilter.d/xray.sh: Permission denied BusyBox v1.36.1 (2023-09-01 19:09:45 UTC) built-in shell (ash) строка 195 это выходит $ndm/xray.sh однако работает!) продолжаю тестирование, ещё раз спасибо! Добавка: /opt/etc/init.d/S24xray: line 195: /opt/etc/ndm/netfilter.d/xray.sh: Permission denied ошибка исправилась пермишенами на файл /opt/etc/ndm/netfilter.d/xray.sh. Теперь работает, в том числе после перезагрузки ЗЫ несколько токенов bep20, а вот с адресом trc20 возникла проблема (ругается кошель) (смотрел на гитхабе) Доброго Вам вечера) В первую очередь благодарю за поддержку. С trc20 и правда проблема, спасибо за замечание) Где-то послезавтра будет обновление, в котором будет полноценно исправлена проблема с внесением правил и, скорее всего, с tproxy) Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 6, 2023 Share Posted October 6, 2023 (edited) 16 минут назад, Skrill0 сказал: То есть, сайты, адрес которых содержит в себе whoer будут открываться через подключение outbounds c тегом proxy) Спасибо за ответ. Накрутил чего-то, у меня перестали открываться запрещенные сайты. Заново скопировал конфиг из шапки Скрытый текст Этот // Настройка маршрутизации { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ // Настройка черного списка { "inboundTag": ["socks-in"], "domain": [ "ext:geosite_v2fly.dat:category-ads-all", "google-analytics", // Могут быть проблемы с сервисами Google. Нужны тесты "analytics.yandex" // Могут быть проблемы с сервисами Yandex. Нужны тесты ], "outboundTag": "block", "type": "field" }, // Блокируем соединение по уязвимым UDP портам { "inboundTag": ["socks-in"], "network": "udp", "port": "135, 137, 138, 139", "outboundTag": "block", "type": "field" }, // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" }, // Настройка подключений через VPS с помощью IP { "inboundTag": ["socks-in"], "ip": [ "ext:geoip_antifilter.dat:antifilter", "ext:geoip_antifilter.dat:antifilter-community", "ext:geoip_v2fly.dat:facebook", "ext:geoip_v2fly.dat:netflix", "ext:geoip_v2fly.dat:twitter" ], "outboundTag": "proxy", "type": "field" }, // Направление остальныех соединений на VPS { "inboundTag": ["socks-in"], "outboundTag": "direct", "type": "field" } ] } } Заработало. Хуера в нем нет, на него трафик заворачивается и ip сокса показывает. Не понимаю🫤 УПД: я не перезапустил xray Edited October 6, 2023 by m0.graph Quote Link to comment Share on other sites More sharing options...
Skrill0 Posted October 6, 2023 Author Share Posted October 6, 2023 Только что, m0.graph сказал: Спасибо за ответ. Накрутил чего-то, у меня перестали открываться запрещенные сайты. Заново скопировал конфиг из шапки Скрыть содержимое Этот // Настройка маршрутизации { "routing": { "domainStrategy": "IPIfNonMatch", "rules": [ // Настройка черного списка { "inboundTag": ["socks-in"], "domain": [ "ext:geosite_v2fly.dat:category-ads-all", "google-analytics", // Могут быть проблемы с сервисами Google. Нужны тесты "analytics.yandex" // Могут быть проблемы с сервисами Yandex. Нужны тесты ], "outboundTag": "block", "type": "field" }, // Блокируем соединение по уязвимым UDP портам { "inboundTag": ["socks-in"], "network": "udp", "port": "135, 137, 138, 139", "outboundTag": "block", "type": "field" }, // Настройка подключений через VPS с помощью доменных имен { "inboundTag": ["socks-in"], "domain": [ "speedtest.net", "ext:geosite_antifilter.dat:antifilter-community", "ext:geosite_v2fly.dat:openai", "ext:geosite_v2fly.dat:paypal", "ext:geosite_v2fly.dat:ebay", "ext:geosite_v2fly.dat:facebook", "ext:geosite_v2fly.dat:instagram" ], "outboundTag": "proxy", "type": "field" }, // Настройка подключений через VPS с помощью IP { "inboundTag": ["socks-in"], "ip": [ "ext:geoip_antifilter.dat:antifilter", "ext:geoip_antifilter.dat:antifilter-community", "ext:geoip_v2fly.dat:facebook", "ext:geoip_v2fly.dat:netflix", "ext:geoip_v2fly.dat:twitter" ], "outboundTag": "proxy", "type": "field" }, // Направление остальныех соединений на VPS { "inboundTag": ["socks-in"], "outboundTag": "direct", "type": "field" } ] } } Заработало. Хуера в нем нет, на него трафик заворачивается и ip сокса показывает. Не понимаю🫤 Перед тестированием новых конфигураций, нужно почистить кэш браузера и перезапустить сам xkeen) Quote Link to comment Share on other sites More sharing options...
Sercha Posted October 6, 2023 Share Posted October 6, 2023 1 час назад, Skrill0 сказал: Доброго Вам вечера) В первую очередь благодарю за поддержку. С trc20 и правда проблема, спасибо за замечание) Где-то послезавтра будет обновление, в котором будет полноценно исправлена проблема с внесением правил и, скорее всего, с tproxy) 🤝 и вам большое спасибо за поддержку. К сожалению, имею опыт подобных кошельков... надеюсь у вас будет более положительный, но сильно на них надеятся нельзя конечно... на хабре /давно/ была статья хорошая про это. Меня в таком виде вполне устраивает, более того, на период своего отьезда я отключу даже обновления самого роутера - во избежании). Для статистике, на виве из моего профиля (актуальной) вышло ~30-32мбит/с в обе стороны, без туна - 230-250. Роутер работает в режиме беспроводного клиента 5gHz. Режет нехило (ифон на этом профиле даёт 200 мбит серверных), но мне хватает вполне. Мне бы теперь понять, как надёжно с DNS поступить... я настроил не один десяток днс-серверов/резолверов, но вот никак не понимаю, что китайцы имеют ввиду под названием fakedns 😆. Возможно конечно просто не разобрался с wireshark в руках) Quote Link to comment Share on other sites More sharing options...
Skrill0 Posted October 6, 2023 Author Share Posted October 6, 2023 (edited) 2 часа назад, Sercha сказал: 🤝 и вам большое спасибо за поддержку. К сожалению, имею опыт подобных кошельков... надеюсь у вас будет более положительный, но сильно на них надеятся нельзя конечно... на хабре /давно/ была статья хорошая про это. Меня в таком виде вполне устраивает, более того, на период своего отьезда я отключу даже обновления самого роутера - во избежании). Для статистике, на виве из моего профиля (актуальной) вышло ~30-32мбит/с в обе стороны, без туна - 230-250. Роутер работает в режиме беспроводного клиента 5gHz. Режет нехило (ифон на этом профиле даёт 200 мбит серверных), но мне хватает вполне. Мне бы теперь понять, как надёжно с DNS поступить... я настроил не один десяток днс-серверов/резолверов, но вот никак не понимаю, что китайцы имеют ввиду под названием fakedns 😆. Возможно конечно просто не разобрался с wireshark в руках) На самом деле, в большинстве случаев, скорость будет выше, чем ~30мб. Если шифрование не требуется в задаче (xtls шифрует только еще не зашифрованное соединение), то скорость может достигать ~90-120мб в Вашем случае) fakedns — свой сервер, который разрешает DNS запросы в ip адреса. К примеру, мы можем указать ya.ru разрешать в 192.168.1.1 и клиента будет перенаправлять на web роутера при попытке открыть ya.ru) Но, тут важно уточнить, что Xray не создает сам по себе FakeDNS сервер, а только умеет работать с уже созданным) Edited October 6, 2023 by Skrill0 1 Quote Link to comment Share on other sites More sharing options...
Roman Balaev Posted October 7, 2023 Share Posted October 7, 2023 Замечаю отвалы xkeen, через какоето время сервис стопится. в чем может быть проблема? так же не стартует после перезагрузки Quote Link to comment Share on other sites More sharing options...
adk Posted October 8, 2023 Share Posted October 8, 2023 12 часа назад, Roman Balaev сказал: так же не стартует после перезагрузки после перезагрузки роутера? если да - аналогичная ситуация: роутер по крону раз в неделю перезагружается и xkeen не стартует. Но если я правильно помню, уважаемая Skrill0 планировала в следующих апдейтах пофиксить этот момент. Quote Link to comment Share on other sites More sharing options...
Илья Фёдоров Posted October 8, 2023 Share Posted October 8, 2023 Здравствуйте, нужна помощь. Установил xkeen в качестве конфига использовал 07_s_inbounds, 10_d_routing и 08_outbounds. Создал политику, в которой оставил только прокси, когда направляю в неё устройство, то ни один сайт не открывается xkeen -status пишет, что Xray запущен В чём может быть ошибка? xkeen -start Прокси keenetic Quote Link to comment Share on other sites More sharing options...
adk Posted October 8, 2023 Share Posted October 8, 2023 4 минуты назад, Илья Фёдоров сказал: Здравствуйте, нужна помощь. Установил xkeen в качестве конфига использовал 07_s_inbounds, 10_d_routing и 08_outbounds. Создал политику, в которой оставил только прокси, когда направляю в неё устройство, то ни один сайт не открывается xkeen -status пишет, что Xray запущен В чём может быть ошибка? xkeen -start Прокси keenetic Как минимум один момент точно некорректный: на скрине кинетика в типе прокси-подключения поставьте Socksv5 + я бы добавил DoT\DoH, на всякий случай. 1 1 Quote Link to comment Share on other sites More sharing options...
Илья Фёдоров Posted October 8, 2023 Share Posted October 8, 2023 44 минуты назад, adk сказал: Как минимум один момент точно некорректный: на скрине кинетика в типе прокси-подключения поставьте Socksv5 + я бы добавил DoT\DoH, на всякий случай. Здравствуйте, спасибо, всё заработало Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 8, 2023 Share Posted October 8, 2023 Добрый день. Пожалуйста, скажите можно исключить устройства из правил xkeen? Quote Link to comment Share on other sites More sharing options...
bigpu Posted October 8, 2023 Share Posted October 8, 2023 (edited) 4 минуты назад, m0.graph сказал: можно исключить устройства из правил xkeen в режиме proxy это делается добавлением/удалением уст-ва в политике, в режиме redirect все уст-ва работают через Xray Edited October 8, 2023 by bigpu 1 1 Quote Link to comment Share on other sites More sharing options...
m0.graph Posted October 8, 2023 Share Posted October 8, 2023 11 минуту назад, bigpu сказал: в режиме proxy это делается добавлением/удалением уст-ва в политике, в режиме redirect все уст-ва работают через Xray В шапке конфиг 10_routing_p.json режим прокси, 10_d_routing.json режим директ? В политике в вебе роутера? Quote Link to comment Share on other sites More sharing options...
adk Posted October 8, 2023 Share Posted October 8, 2023 16 минут назад, m0.graph сказал: В шапке конфиг 10_routing_p.json режим прокси, 10_d_routing.json режим директ? В политике в вебе роутера? 07_s_inbounds.json | Для подключения по socks. К примеру, прокси-клиента Keenetic 07_r_inbounds.json | Для подключения по redirect. 1 Quote Link to comment Share on other sites More sharing options...
Илья Фёдоров Posted October 8, 2023 Share Posted October 8, 2023 17 минут назад, m0.graph сказал: В шапке конфиг 10_routing_p.json режим прокси, 10_d_routing.json режим директ? В политике в вебе роутера? 07_s_inbounds режим прокси в вебе Кнетика 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.