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

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

  • Ответов 2,5 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
16 часов назад, jameszero сказал:

На Giga тот же процессор, что и на Viva, только памяти больше. Вы всё таки попробуйте zkeen, не понравится, вернётесь к своему списку обхода. Кстати, вы оптимизацию сервера выполнили?

Спасибо! На zkeen тоже самое, не понимаю. Причем долго открывается только при заходе на сайт. Внутри сайта все хорошо. А так же не понятны вылеты в онлайн играх, трафик же идет напрямую в них. Еще как я понял на встроенном прокси клиенте кинетика завезли udp в бете. Как его активировать?

Опубликовано
6 часов назад, jameszero сказал:

Доброе утро!

Для оптимизации подключения с клиентской стороны, можно добавить следующие параметры в outbound на роутере:

 

Здравствуйте! Не совсем понятно, как данный фрагмент вставить в outbound. У меня после вставки выдает ошибку. Можете, пожалуйста, сделать готовый файл outbound? Мне не нужны вообще никакие фильтры, у меня весь трафик напрямую идет через xkeen на VPS. Цель - максимально облегчить и ускорить веб-серфинг.

Опубликовано (изменено)
В 10.01.2024 в 19:12, Skrill0 сказал:

Добавлено
01. Режим TProxy | Спасибо @avn, @Alexey77, @bigpu, @Pawant, @Le ecureuil
02. Миграция модулей прошивки
03. GeoSite Zkeen от
@jameszero
04. Умные правила iptables
05. Поддержка чистого DNS сервиса от Xray для конкретной политики
06. Оптимизация сервера.

Здравствуйте!

Установил обновление, спасибо!
Но вот не могу найти файл GeoSite Zkeen. Понимаю, что его можно скачать отдельно и добавить, но мне просто интересно где он находится после установки обновления.

 

UPD: Нашёл, нужно выбрать соответствующий пункт при установке Xkeen, и тогда он появится.

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

На виртуальной машине (192.168.1.102) запущен Сервер.

На роутере открыт порт 50458, и направляет на 8090 для того, чтобы иметь доступ извне по доменному имени.

 

На новой версии Xkeen, я не могу получить доступ к Серверу.

Подключаюсь локально, по адресу 192.168.1.102:8090 - доступен, но по 192.168.1.102:50458 - недоступен.

Отключаю Xkeen, есть доступ.


На старой версии Xkeen настроенной через Redirect, это работало.

Подскажите пожалуйста как это исправить?
Или по крайней мере как отключить TProxy, может хотя бы через Redirect у меня заработает.

 

UPD: Здесь тоже сработал прошлый совет от @Alexey77, когда у меня не работал telegram.

Отредактировал параметр: port_donor="80,443", в файле "S24xray",  по пути "opt\etc\init.d"

После перезапуска Xkeen - заработало.

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

Модули ядра подсистемы Netfilter после выполнения команды

xkeen -modules

находятся в etc\ndm\netfilter.d ?

 

UPD: Нашёл, здесь находятся: /opt/lib/modules

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

Всем привет!

подскажите, пожалуйста, возможна ли работа сабжа с уже установленным adguard?

-----------

Прошу прощения, поиск по ключевым словам не дал ничего, но в инструкции увидел о возможности такой работы. попробую

------------

с adguard home все работает корректно, вроде.

вопрос - как добавить свой список блокировки рекламы? Вот тут есть список без дублей, собранный из многих других списков. одно кольцо, чтоб править всеми, так сказать

 

Изменено пользователем dok
список рекламы
Опубликовано (изменено)

Никак не получилось завести при помощи Redirect-mode на версии 1.0, при этом через Proxy работает. 
Есть идеи, куда нужно копать, чтобы решить проблему? Inbounds настраивал правильно, прописывал dokodemo-door, а вот правила маршрутизации не создавались

iptables -t nat -nL xkeen -v

писал, что ничего нет.

UPD. Смог завести на TProxy. Чудеса, да и только

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

Здравствуйте! 

Подскажите что делаю не так? Есть Keenetic Extra. Xkeen установился без проблем. VPS тоже настроен, с мобильного клиента и с компьютера отлично работает.

после запуска xkeen, сообщений об ошибках конфигурации нет. Но на vps сервере в панели 3x-ui клиент Offline.

root@Keenetic-2330:~$ xkeen -start
Xray 1.8.7 (Xray, Penetrates Everything.) 3f0bc13 (go1.21.5 linux/mipsle)
A unified platform for anti-censorship.
2024/01/18 09:47:07 Using confdir from env: /opt/etc/xray/configs
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/01_log.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/02_stats.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/03_dns.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/04_reverse.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/05_fake-dns.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/06_transport.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/07_inbounds.json
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/07_inbounds.json] appended inbound with tag: socks-in
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/08_outbonds.json
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/08_outbonds.json] prepend outbound with tag: proxy
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/08_outbonds.json] prepend outbound with tag: direct
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/08_outbonds.json] prepend outbound with tag: block
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/09_policy.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/10_routing.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/11_fallbacks.json
  Прокси-клиент запущен
 

Подскажите пожалуйста, что делаю не так? В логах xray на кинетике ставил уровень debug. Но активной записи в него не идёт.

2024/01/18 10:10:03 [Debug] app/log: Logger started
2024/01/18 10:10:03 [Debug] app/router: MphDomainMatcher is enabled for 703 domain rule(s)
2024/01/18 10:10:03 [Debug] app/router: MphDomainMatcher is enabled for 2 domain rule(s)
2024/01/18 10:10:03 [Debug] app/proxyman/inbound: creating stream worker on 192.168.1.1:54836
2024/01/18 10:10:03 [Info] transport/internet/tcp: listening TCP on 192.168.1.1:54836
2024/01/18 10:10:03 [Warning] core: Xray 1.8.7 started
 

Причём в политиках роутинга выставил направлять клиента кинетик на прокси соединение у клиента вообще никакого интернета нет, даже адреса днс не резолвит...

Опубликовано (изменено)

Добрый вечер.

Помогите разобраться. Сейчас настроен Xkeen в режиме REDIRECT, все работает, но хочу заставить работать TPROXY и не получатеся. Конфиги все, кроме 07_inbounds.json одинаковые, сервисы перенесены на 8443, порт 443 открыт и направлен на "Этот интернет-центр". Проверял перенаправляя его на другой хост в локалке, снаружи доступ есть. Компоненты нужные установлены. Один раз даже взлетело и заработало, но после перезагрузки роутера работать перестало и трафик больше не идет. Повторно заставить работать не получается. Статус кинетика в панели X-UI остается offline, при том, что при REDIRECT стабильно горит online.

Вот inbounds, которым пользуюсь и с которым не работает.

Скрытый текст
{
    "inbounds": [
        {
            "listen": "192.168.1.1",
            "port": 54836,
            "protocol": "dokodemo-door",
            "settings": {
                "network": "tcp,udp",
                "followRedirect": true
            },
            "sniffing": {
                "enabled": true,
                "destOverride": [
                    "http", 
                    "tls", 
                    "quic"
                ]
            },
            "streamSettings": {
                "sockopt": {
                  "tproxy": "tproxy"
                }
              },
            "tag": "socks-in"
        }
    ]
}

 

 

Изменено пользователем Gmarapet
Опубликовано (изменено)
2 часа назад, jameszero сказал:
"listen": "127.0.0.1",

Тот же результат.

Так заработало. В первый раз опечатался. 

Изменено пользователем Gmarapet
Опубликовано
48 минут назад, Gmarapet сказал:

Добрый вечер.

Помогите разобраться. Сейчас настроен Xkeen в режиме REDIRECT, все работает, но хочу заставить работать TPROXY и не получатеся. Конфиги все, кроме 07_inbounds.json одинаковые, сервисы перенесены на 8443, порт 443 открыт и направлен на "Этот интернет-центр". Проверял перенаправляя его на другой хост в локалке, снаружи доступ есть. Компоненты нужные установлены. Один раз даже взлетело и заработало, но после перезагрузки роутера работать перестало и трафик больше не идет. Повторно заставить работать не получается. Статус кинетика в панели X-UI остается offline, при том, что при REDIRECT стабильно горит online.

Вот inbounds, которым пользуюсь и с которым не работает.

  Показать содержимое
{
    "inbounds": [
        {
            "listen": "192.168.1.1",
            "port": 54836,
            "protocol": "dokodemo-door",
            "settings": {
                "network": "tcp,udp",
                "followRedirect": true
            },
            "sniffing": {
                "enabled": true,
                "destOverride": [
                    "http", 
                    "tls", 
                    "quic"
                ]
            },
            "streamSettings": {
                "sockopt": {
                  "tproxy": "tproxy"
                }
              },
            "tag": "socks-in"
        }
    ]
}

 

 

И Вам доброго вечера!

Покажите, пожалуйста, после запуска XKeen результаты следующих команд:

cat /opt/etc/ndm/netfilter.d/proxy.sh
iptables -t mangle -nL PREROUTING -v
iptables -t mangle -nL xkeen -v

 

Опубликовано (изменено)

В директории /etc/xray/configs/ нет лишних файлов или папок? Например, резервных копий конфигов. Они могут считываться и накладываться на настройки.

Удалите файл /etc/ndm/netfilter.d/xray.sh, если остался после обновления.

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

Добрый вечер! tproxy заработал (со 127.0.0.1 в конфиге inbounds), для диагностики просили:

Скрытый текст
~ # iptables -t mangle -nL PREROUTING -v
Chain PREROUTING (policy ACCEPT 6507 packets, 2239K bytes)
 pkts bytes target     prot opt in     out     source               destination
   45  6140 _NDM_PREROUTING_MC  all  --  *      *       0.0.0.0/0            224.0.0.0/4
14274 3025K _NDM_IPSEC_PREROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0
14274 3025K _NDM_HOTSPOT_PRERT  all  --  *      *       0.0.0.0/0            0.0.0.0/0
 8175  833K xkeen      all  --  *      *       0.0.0.0/0            0.0.0.0/0            connmark match  0xffffd00 ! ctstate INVALID
~ # iptables -t mangle -nL xkeen -v
Chain xkeen (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/8
    0     0 RETURN     all  --  *      *       0.0.0.0/0            10.0.0.0/8
   17  1166 RETURN     all  --  *      *       0.0.0.0/0            100.64.0.0/10
    0     0 RETURN     all  --  *      *       0.0.0.0/0            127.0.0.0/8
    0     0 RETURN     all  --  *      *       0.0.0.0/0            169.254.0.0/16
    0     0 RETURN     all  --  *      *       0.0.0.0/0            172.16.0.0/12
    0     0 RETURN     all  --  *      *       0.0.0.0/0            192.0.0.0/24
    0     0 RETURN     all  --  *      *       0.0.0.0/0            192.0.2.0/24
  547 56769 RETURN     all  --  *      *       0.0.0.0/0            192.168.0.0/16
    0     0 RETURN     all  --  *      *       0.0.0.0/0            198.18.0.0/15
    0     0 RETURN     all  --  *      *       0.0.0.0/0            198.51.100.0/24
    0     0 RETURN     all  --  *      *       0.0.0.0/0            203.0.113.0/24
   34  4831 RETURN     all  --  *      *       0.0.0.0/0            224.0.0.0/4
    0     0 RETURN     all  --  *      *       0.0.0.0/0            240.0.0.0/4
    0     0 RETURN     all  --  *      *       0.0.0.0/0            255.255.255.255
 7064  665K TPROXY     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            TPROXY redirect 127.0.0.1:54836 mark 0x111/0xffffffff
 1024  158K TPROXY     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            TPROXY redirect 127.0.0.1:54836 mark 0x111/0xffffffff
~ # cat /opt/etc/ndm/netfilter.d/proxy.sh
#!/bin/sh

mode_proxy="TPROXY"
network="tcp udp"
name_prerouting_chain="xkeen"
name_output_chain="xkeen_mask"
name_profile="xkeen"
port_proxy="54836"
port_donor=""
policy_mark="0xffffd00"
table_redirect="nat"
table_tproxy="mangle"
table_mark="0x111"
table_id="111"
file_dns=""
port_dns="53"
directory_os_modules=/lib/modules/4.9-ndm-5
directory_user_modules=/opt/lib/modules

load_module() {
    local module=${1}
    local directory_modules

    if [ -f "${directory_user_modules}/${module}" ]
    then
        directory_modules="${directory_user_modules}"
    else
        directory_modules="${directory_os_modules}"
    fi

    insmod ${directory_modules}/${module} >/dev/null 2>&1
}

if [ "${mode_proxy}" = "REDIRECT" ]; then
    network="tcp"
else
    network="tcp udp"
fi

if [ -n "${file_dns}" ]; then
        port_donor="${port_dns},${port_donor}"
fi

iptables_supported=$(command -v iptables >/dev/null 2>&1 && echo true || echo false)
ip6tables_supported=$(command -v ip6tables >/dev/null 2>&1 && echo true || echo false)

add_ipt_rule() {
    local family="${1}"
    local table="${2}"
    local chain="${3}"
    shift 3

    if { [ "${family}" = "iptables" ] && [ "${iptables_supported}" = "false" ]; } || { [ "${family}" = "ip6tables" ] && [ "${ip6tables_supported}" = "false" ]; }; then
        return
    fi


    if ! "${family}" -t "${table}" -nL ${name_prerouting_chain} >/dev/null 2>&1; then
        "${family}" -t "${table}" -N ${name_prerouting_chain} >/dev/null 2>&1 || exit 0

           add_exclude_rules ${name_prerouting_chain}

                for net in ${network}; do
            case "${mode_proxy}" in
                "REDIRECT")
                    "${family}" -t "${table}" -A ${name_prerouting_chain} -p "${net}" -j REDIRECT --to-port "${port_proxy}" >/dev/null 2>&1
                    ;;
                "TPROXY")
                    "${family}" -t "${table}" -A ${name_prerouting_chain} -p "${net}" -j TPROXY --on-ip "${proxy_ip}" --on-port "${port_proxy}" --tproxy-mark "${table_mark}" >/dev/null 2>&1
                    ;;
                *)
                    exit 0
                    ;;
            esac
        done
    fi

        if [ -n "${file_dns}" ]; then
                if ! "${family}" -t "${table}" -nL ${name_output_chain} >/dev/null 2>&1; then
                        "${family}" -t "${table}" -N ${name_output_chain} >/dev/null 2>&1 || exit 0

                        add_exclude_rules ${name_output_chain}

                        "${family}" -t "${table}" -A ${name_output_chain} -j CONNMARK --set-mark "${table_mark}"
                fi
        fi

}

add_exclude_rules() {
    local chain="${1}"

        for exclude in ${exclude_list}; do
                if ([ "${exclude}" = "192.168.0.0/16" ] || [ "${exclude}" = "fd00::/8" ]) && [ -n "${file_dns}" ]; then
                        "${family}" -t "${table}" -A ${chain} -d "${exclude}" -p tcp ! --dport 53 -j RETURN 2>/dev/null
                        "${family}" -t "${table}" -A ${chain} -d "${exclude}" -p udp ! --dport 53 -j RETURN 2>/dev/null
                else
                        "${family}" -t "${table}" -A ${chain} -d "${exclude}" -j RETURN 2>/dev/null
                fi
        done
}

configure_route() {
    local ip_version="${1}"
    if ! ip -"${ip_version}" rule show | grep -q "fwmark ${table_mark} lookup ${table_id}" >/dev/null 2>&1; then
        ip -"${ip_version}" rule add fwmark "${table_mark}" lookup "${table_id}" >/dev/null 2>&1
        ip -"${ip_version}" route add local default dev lo table "${table_id}" >/dev/null 2>&1
    fi
}

case "${mode_proxy}" in
    "TPROXY")
        active_table="${table_tproxy}"
        load_module xt_TPROXY.ko
        ;;
    "REDIRECT")
        active_table="${table_redirect}"
        ;;
    *)
        exit 0
        ;;
esac

for family in iptables ip6tables; do
    if [ "${family}" = "ip6tables" ]; then
        exclude_list="0000::/8 0100::/64 0200::/7 2001:0002::/48 2001:0010::/28 2001:0db8::/32 2002::/16 3ffe::/16 fc00::/7 fd00::/8 fe80::/10 fec0::/10 ff00::/8 ::1/128 ::ffff:0:0/96 64:ff9b::/96 64:ff9b:1::/48 100::/64 2001::/23"
        proxy_ip="::1"
        configure_route 6
    else
        exclude_list="0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.0.0.0/24 192.0.2.0/24 192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 224.0.0.0/4 240.0.0.0/4 255.255.255.255/32"
        proxy_ip="127.0.0.1"
        configure_route 4
    fi

        add_ipt_rule "${family}" "${active_table}" "${name_prerouting_chain}"

        if [ -n "${file_dns}" ]; then
                add_ipt_rule "${family}" "${active_table}" "${name_output_chain}"
        fi

done

if [ -n "${port_donor}" ]; then

        load_module xt_multiport.ko
        load_module xt_owner.ko
    for net in ${network}; do
        for family in iptables ip6tables; do
            if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
                iptables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1
            fi
            if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
                ip6tables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1
            fi
                        if [ -n "${file_dns}" ]; then
                                if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1; }; then
                                        iptables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1
                                fi
                                if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1; }; then
                                        ip6tables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1
                                fi
                        fi
        done
    done
else
    for family in iptables ip6tables; do
        if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
            iptables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1
        fi
        if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
            ip6tables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1
        fi

                if [ -n "${file_dns}" ]; then
                        if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1; }; then
                                iptables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1
                        fi
                        if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1; }; then
                                ip6tables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1
                        fi
                fi
    done
fi

exit 0

 

 

Изменено пользователем Konstantin Rezvykh
Опубликовано (изменено)
3 часа назад, Skrill0 сказал:

Покажите, пожалуйста, после запуска XKeen результаты следующих команд:

В первый раз вместо 127.0.0.1 написал 128.0.0.1, рука дрогнула.

Исправил на 127.0.0.1 и все заработало.

Вот диагностика

cat /opt/etc/ndm/netfilter.d/proxy.sh

Скрытый текст
#!/bin/sh

mode_proxy="TPROXY"
network="tcp udp"
name_prerouting_chain="xkeen"
name_output_chain="xkeen_mask"
name_profile="xkeen"
port_proxy="54836"
port_donor=""
policy_mark="0xffffd02"
table_redirect="nat"
table_tproxy="mangle"
table_mark="0x111"
table_id="111"
file_dns=""
port_dns="53"
directory_os_modules=/lib/modules/4.9-ndm-5
directory_user_modules=/opt/lib/modules

load_module() {
    local module=${1}
    local directory_modules

    if [ -f "${directory_user_modules}/${module}" ]
    then
        directory_modules="${directory_user_modules}"
    else
        directory_modules="${directory_os_modules}"
    fi

    insmod ${directory_modules}/${module} >/dev/null 2>&1
}

if [ "${mode_proxy}" = "REDIRECT" ]; then
    network="tcp"
else
    network="tcp udp"
fi

if [ -n "${file_dns}" ]; then
	port_donor="${port_dns},${port_donor}"
fi

iptables_supported=$(command -v iptables >/dev/null 2>&1 && echo true || echo false)
ip6tables_supported=$(command -v ip6tables >/dev/null 2>&1 && echo true || echo false)

add_ipt_rule() {
    local family="${1}"
    local table="${2}"
    local chain="${3}"
    shift 3

    if { [ "${family}" = "iptables" ] && [ "${iptables_supported}" = "false" ]; } || { [ "${family}" = "ip6tables" ] && [ "${ip6tables_supported}" = "false" ]; }; then
        return
    fi


    if ! "${family}" -t "${table}" -nL ${name_prerouting_chain} >/dev/null 2>&1; then
        "${family}" -t "${table}" -N ${name_prerouting_chain} >/dev/null 2>&1 || exit 0
       
	   add_exclude_rules ${name_prerouting_chain}
		
		for net in ${network}; do
            case "${mode_proxy}" in
                "REDIRECT")
                    "${family}" -t "${table}" -A ${name_prerouting_chain} -p "${net}" -j REDIRECT --to-port "${port_proxy}" >/dev/null 2>&1
                    ;;
                "TPROXY")
                    "${family}" -t "${table}" -A ${name_prerouting_chain} -p "${net}" -j TPROXY --on-ip "${proxy_ip}" --on-port "${port_proxy}" --tproxy-mark "${table_mark}" >/dev/null 2>&1
                    ;;
                *)
                    exit 0
                    ;;
            esac
        done
    fi
	
	if [ -n "${file_dns}" ]; then
		if ! "${family}" -t "${table}" -nL ${name_output_chain} >/dev/null 2>&1; then
			"${family}" -t "${table}" -N ${name_output_chain} >/dev/null 2>&1 || exit 0
			
			add_exclude_rules ${name_output_chain}
			
			"${family}" -t "${table}" -A ${name_output_chain} -j CONNMARK --set-mark "${table_mark}"
		fi
	fi

}

add_exclude_rules() {
    local chain="${1}"
	
	for exclude in ${exclude_list}; do
		if ([ "${exclude}" = "192.168.0.0/16" ] || [ "${exclude}" = "fd00::/8" ]) && [ -n "${file_dns}" ]; then
			"${family}" -t "${table}" -A ${chain} -d "${exclude}" -p tcp ! --dport 53 -j RETURN 2>/dev/null
			"${family}" -t "${table}" -A ${chain} -d "${exclude}" -p udp ! --dport 53 -j RETURN 2>/dev/null
		else
			"${family}" -t "${table}" -A ${chain} -d "${exclude}" -j RETURN 2>/dev/null
		fi
	done
}

configure_route() {
    local ip_version="${1}"
    if ! ip -"${ip_version}" rule show | grep -q "fwmark ${table_mark} lookup ${table_id}" >/dev/null 2>&1; then
        ip -"${ip_version}" rule add fwmark "${table_mark}" lookup "${table_id}" >/dev/null 2>&1
        ip -"${ip_version}" route add local default dev lo table "${table_id}" >/dev/null 2>&1
    fi
}

case "${mode_proxy}" in
    "TPROXY")
        active_table="${table_tproxy}"
        load_module xt_TPROXY.ko
        ;;
    "REDIRECT")
        active_table="${table_redirect}"
        ;;
    *)
        exit 0
        ;;
esac

for family in iptables ip6tables; do
    if [ "${family}" = "ip6tables" ]; then
        exclude_list="0000::/8 0100::/64 0200::/7 2001:0002::/48 2001:0010::/28 2001:0db8::/32 2002::/16 3ffe::/16 fc00::/7 fd00::/8 fe80::/10 fec0::/10 ff00::/8 ::1/128 ::ffff:0:0/96 64:ff9b::/96 64:ff9b:1::/48 100::/64 2001::/23"
        proxy_ip="::1"
        configure_route 6
    else
        exclude_list="0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.0.0.0/24 192.0.2.0/24 192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 224.0.0.0/4 240.0.0.0/4 255.255.255.255/32"
        proxy_ip="127.0.0.1"
        configure_route 4
    fi
	
	add_ipt_rule "${family}" "${active_table}" "${name_prerouting_chain}"
	
	if [ -n "${file_dns}" ]; then
		add_ipt_rule "${family}" "${active_table}" "${name_output_chain}"
	fi

done

if [ -n "${port_donor}" ]; then
	
	load_module xt_multiport.ko
	load_module xt_owner.ko
    for net in ${network}; do
        for family in iptables ip6tables; do
            if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
                iptables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1
            fi
            if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
                ip6tables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -p "${net}" -m multiport --dports "${port_donor}" -j ${name_prerouting_chain} >/dev/null 2>&1
            fi
			if [ -n "${file_dns}" ]; then
				if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1; }; then
					iptables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1
				fi
				if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1; }; then
					ip6tables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m conntrack ! --ctstate INVALID  ! -p icmp  -j ${name_output_chain} >/dev/null 2>&1
				fi
			fi			
        done
    done
else
    for family in iptables ip6tables; do
        if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
            iptables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1
        fi
        if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1; }; then
            ip6tables -t "${active_table}" -A PREROUTING -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID -j ${name_prerouting_chain} >/dev/null 2>&1
        fi
		
		if [ -n "${file_dns}" ]; then
			if [ "${family}" = "iptables" ] && { ! iptables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1; }; then
				iptables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1
			fi
			if [ "${family}" = "ip6tables" ] && { ! ip6tables -t "${active_table}" -C OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1; }; then
				ip6tables -t "${active_table}" -A OUTPUT -m owner ! --gid-owner ${name_profile} -m connmark --mark "${policy_mark}" -m conntrack ! --ctstate INVALID ! -p icmp -j ${name_output_chain} >/dev/null 2>&1
			fi
		fi
    done	
fi

exit 0

 


iptables -t mangle -nL PREROUTING -v

Скрытый текст
Chain PREROUTING (policy ACCEPT 19001 packets, 21M bytes)
 pkts bytes target     prot opt in     out     source               destination
   70 10684 _NDM_PREROUTING_MC  all  --  *      *       0.0.0.0/0            224.0.0.0/4
25265   22M _NDM_IPSEC_PREROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0
25265   22M _NDM_HOTSPOT_PRERT  all  --  *      *       0.0.0.0/0            0.0.0.0/0
 7773 1169K xkeen      all  --  *      *       0.0.0.0/0            0.0.0.0/0            connmark match  0xffffd02 ! ctstate INVALID

 


iptables -t mangle -nL xkeen -v

Скрытый текст
Chain xkeen (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/8
    0     0 RETURN     all  --  *      *       0.0.0.0/0            10.0.0.0/8
    5   300 RETURN     all  --  *      *       0.0.0.0/0            100.64.0.0/10
    0     0 RETURN     all  --  *      *       0.0.0.0/0            127.0.0.0/8
    0     0 RETURN     all  --  *      *       0.0.0.0/0            169.254.0.0/16
    0     0 RETURN     all  --  *      *       0.0.0.0/0            172.16.0.0/12
    0     0 RETURN     all  --  *      *       0.0.0.0/0            192.0.0.0/24
    0     0 RETURN     all  --  *      *       0.0.0.0/0            192.0.2.0/24
 1515  230K RETURN     all  --  *      *       0.0.0.0/0            192.168.0.0/16
    0     0 RETURN     all  --  *      *       0.0.0.0/0            198.18.0.0/15
    0     0 RETURN     all  --  *      *       0.0.0.0/0            198.51.100.0/24
    0     0 RETURN     all  --  *      *       0.0.0.0/0            203.0.113.0/24
   49  8150 RETURN     all  --  *      *       0.0.0.0/0            224.0.0.0/4
    0     0 RETURN     all  --  *      *       0.0.0.0/0            240.0.0.0/4
    0     0 RETURN     all  --  *      *       0.0.0.0/0            255.255.255.255
 4807  678K TPROXY     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            TPROXY redirect 127.0.0.1:54836 mark 0x111/0xffffffff
 1680  283K TPROXY     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            TPROXY redirect 127.0.0.1:54836 mark 0x111/0xffffffff

 

3 часа назад, jameszero сказал:

В директории /etc/xray/configs/ нет лишних файлов или папок? Например, резервных копий конфигов. Они могут считываться и накладываться на настройки.

Удалите файл /etc/ndm/netfilter.d/xray.sh, если остался после обновления.

Лишних файлов нет. В /opt/etc/ndm/netfilter.d/ только proxy.sh

 

Изменено пользователем Gmarapet
Опубликовано
10 часов назад, activio сказал:

Здравствуйте, на extra 2 заведется? usb есть у него.

Только что протестил. Завёлся через встроенный прокси. Через Redirect не пробывал. С редиректом еще не разобрался как настроить. Там видимо через iptables.

А можно попросить инструкцию для настойки REDIRECT или на какой странице форума она?

Опубликовано
14 часа назад, danil-v сказал:

Здравствуйте! 

Подскажите что делаю не так? Есть Keenetic Extra. Xkeen установился без проблем. VPS тоже настроен, с мобильного клиента и с компьютера отлично работает.

после запуска xkeen, сообщений об ошибках конфигурации нет. Но на vps сервере в панели 3x-ui клиент Offline.

root@Keenetic-2330:~$ xkeen -start
Xray 1.8.7 (Xray, Penetrates Everything.) 3f0bc13 (go1.21.5 linux/mipsle)
A unified platform for anti-censorship.
2024/01/18 09:47:07 Using confdir from env: /opt/etc/xray/configs
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/01_log.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/02_stats.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/03_dns.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/04_reverse.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/05_fake-dns.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/06_transport.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/07_inbounds.json
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/07_inbounds.json] appended inbound with tag: socks-in
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/08_outbonds.json
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/08_outbonds.json] prepend outbound with tag: proxy
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/08_outbonds.json] prepend outbound with tag: direct
2024/01/18 09:47:07 [Info] infra/conf: [/opt/etc/xray/configs/08_outbonds.json] prepend outbound with tag: block
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/09_policy.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/10_routing.json
2024/01/18 09:47:07 [Info] infra/conf/serial: Reading config: /opt/etc/xray/configs/11_fallbacks.json
  Прокси-клиент запущен
 

Подскажите пожалуйста, что делаю не так? В логах xray на кинетике ставил уровень debug. Но активной записи в него не идёт.

2024/01/18 10:10:03 [Debug] app/log: Logger started
2024/01/18 10:10:03 [Debug] app/router: MphDomainMatcher is enabled for 703 domain rule(s)
2024/01/18 10:10:03 [Debug] app/router: MphDomainMatcher is enabled for 2 domain rule(s)
2024/01/18 10:10:03 [Debug] app/proxyman/inbound: creating stream worker on 192.168.1.1:54836
2024/01/18 10:10:03 [Info] transport/internet/tcp: listening TCP on 192.168.1.1:54836
2024/01/18 10:10:03 [Warning] core: Xray 1.8.7 started
 

Причём в политиках роутинга выставил направлять клиента кинетик на прокси соединение у клиента вообще никакого интернета нет, даже адреса днс не резолвит...

Разобрался в чём дело. Нужно было в приоритетах подключений, в правилах с Xray так же ставить галку на подключении к провайдеру. И всё заработало!!!

 

Опубликовано
1 час назад, danil-v сказал:

А можно попросить инструкцию для настойки REDIRECT или на какой странице форума она?

Доброе утро. В шапке темы написано и есть файлы 07_inbounds.json один для прокси другой для редирект. Используйте файл 07_r_inbounds.json и после перезагрузите роутер. 

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

Добрый день. И с праздником всех, кто празднует.

И снова у меня что-то не так. )

В режиме TProxy ломается доступ к устройствам внутри домашней сети через переадресацию портов.

Более подробно: внутри есть пара устройства, к которым нужен доступ снаружи. Обычно захожу на них по адресу my.domain:port, настроив  переадресацию на нужный порт на роутере. В режиме redirect доступ работает, переключаюсь на tproxy и доступа нет, хотя 10_routing.json в обоих случаях одинаковый.

Роутинг на xray настроен всё, кроме исключений, слать директом.

Как получить доступ в режиме tproxy?

Опубликовано
2 часа назад, Alexey77 сказал:

Вам может попробовать добавить порты xkeen -ap 80,443. 

Спасибо, помогло. Теперь заходит всюду, кроме keenetic-web, который на порту 8443.   Зайти на роутер получается только по локальному адресу или через приложение. https://myname.keenetic.pro:8443 по-прежнему не отвечает.

Опубликовано (изменено)
13 часа назад, jameszero сказал:

у вас белый IP-адрес? Попробуйте добавить его с 32 маской в параметр ipv4_exclude

Спасибо, помогло.

Но как-то странно помогло. Извне всё открылось со всех устройств. А вот в локалке с PC открывается, с телефона Poco открывается, а с двух разных Google Pixel отваливается по таймауту. Меня это прямо обескураживает.

Изменено пользователем Gmarapet
Опубликовано
14 часа назад, Gmarapet сказал:

двух разных Google Pixel отваливается по таймауту.

Добрый день. Предполагаю что они используют dns роутера и вдобавок ещё dns от гугла. 

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

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

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

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

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

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

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

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

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

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

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

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