Ник Пост Дата
spotted_giraffe

Вчера РКН превратил мою настройку XTLS-Reality в тыкву, что я сразу связал с новостью о запрете ECH. Все запросы упали с подобными ошибками:

В качестве клиента использую Nekobox, настройки DNS с которыми ранее все работало:

На VPS развернут xray с конфигурацией:

{
  "log": {
    "loglevel": "trace",
    "dnsLog": true
  },
  "routing": {
    "rules": [],
    "domainStrategy": "AsIs"
  },
  "inbounds": [
    {
      "port": 443,
      "protocol": "vless",
      "tag": "vless_tls",
      "settings": {
        "clients": [
          {
            "id": "********-****-****-****-********",
            "email": "someuser@myserver",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
                "realitySettings": {
                        "show": false,
                        "dest": "www.somedomain.org:443",
                        "xver": 0,
                        "serverNames": [
                                "www.somedomain.org",
                                "somedomain.org"
                        ],
						"privateKey": "*******************************************",
                        "minClientVer": "",
                        "maxClientVer": "",
                        "maxTimeDiff": 0,
                        "shortIds": [
                                "****************"
                        ]
                }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}

Который час бьюсь с попыткой найти решение, как я уже догадываюсь, DNS запросы клиент ранее всегда отправлял с моей машины, и после того как регулятор что-то докрутил, они начали падать.

Пытаюсь найти способ решить эту проблему, но похоже знаний и экспертизы не хватает уже, к тому же с DNS работал мало. Мои идеи сейчас:

  1. Попробовать настроить FakeDNS, запускать Nekobox в TUN режиме с FakeDNS настройкой. К сожалению пока безрезультатно.
  2. Перенаправлять все DNS запросы через SOCKS, на самой же впске их поднять

Возможно кто-то уже решил проблему, буду раз если поделитесь конфигами или советами.

P.S:

На данный момент пытался настроить fakedns по гайдам, нерабочее решение:

{
  "log": {
    "loglevel": "trace",
    "dnsLog": true
  },
  "routing": {
    "rules": [
      {
        "type": "field",
        "inboundTag": ["dns-in"],
        "port": 53,
        "outboundTag": "dns-out"
      }
    ],
    "domainStrategy": "AsIs"
  },
  "dns": {
    "servers": [
      "fakedns",
      "8.8.8.8"
    ],
    "queryStrategy": "UseIPv4"
  },
  "fakedns": [
    {
      "ipPool": "198.18.0.0/16",
      "poolSize": 65535
    }
  ],
  "inbounds": [
    {
      "port": 443,
      "protocol": "vless",
      "tag": "vless_tls",
      "settings": {
        "clients": [
          {
            "id": "********-****-****-****-********",
            "email": "someuser@myserver",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
                "realitySettings": {
                        "show": false,
                        "dest": "www.somedomain.org:443",
                        "xver": 0,
                        "serverNames": [
                                "www.somedomain.org",
                                "somedomain.org"
                        ],
                        "privateKey": "*******************************************",
                        "minClientVer": "",
                        "maxClientVer": "",
                        "maxTimeDiff": 0,
                        "shortIds": [
                                "****************"
                        ]
                }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls",
          "fakedns"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    },
    {
       "protocol": "dns",
       "tag": "dns-out"
    }
  ]
}
2024-11-07T08:53:19.481Z
akloman

А если отключить dns маршрутизацию на втором скрине? Тогда dns запросы будут разрешаться на вашем сервере xray (если не используется tun режим, тогда имена будут разрешаться на вашей машине, используя сервер в поле “удалённый dns”)

2024-11-07T09:11:24.912Z
spotted_giraffe

Увы, без результатов, сделал сейчас тест:

  1. Вернул старый конфиг(без настроек fakedns)
  2. Отключил всю маршрутизацию DNS
  3. Запустил клиент в TUN режиме

В основных настройках отключил режим прослушивания, ранее стояло “подслушивать для маршрутизации”:

Снимок экрана 2024-11-07 122654

2024-11-07T09:27:48.468Z
akloman

сейчас проверил, на ядре sing-box у меня вообще утечка dns. переключился на xray - все стало работать как надо. у вас какое ядро стоит?

обновлено: в nekobox 4 переделали много. тут я не помогу, надо тестировать, а обновлять старый клиент не хочется. у вас получается сервер на xray, а клиент на singbox, возможно в этом проблема. попробуйте другой клиент, на xray. Лично я использую v2rayN.

из патчноута nekobox 4:

  • Core больше не поддерживает Xray
  • DNS больше не совместим localhost
  • Тип DNS local изменен для использования реализации Single-Box. Если в режиме TUN возникают проблемы, рекомендуется использовать другие типы DNS.
2024-11-07T09:42:48.858Z
akloman

и я так понимаю, у вас nekobox 4 версии, которая бета? просто у меня необновленный 3.26, поля настроек немного другие. возможно и логику работы где-то поменяли. но работает с текущими настройками прекрасно. На сервере в конфиге xray вообще dns не настроен (то есть используется системный резолвер). Маршрутизация части доменов в warp, а части напрямую - работает (все настроено на сервере).
nekoray_bLAow3hfjW

2024-11-07T09:52:59.144Z
spotted_giraffe

Сейчас переключился на ядро xray, но все по прежнему осталось. У меня тоже часть траффика идет напрямую, часть через прокси, вообще не вижу чтобы там что-то сейчас шло.

В основных настройках режим подслушивания отключил

Делаю для интереса Url test:

2024/11/07 10:00:33 DNS accepted https://8.8.8.8/dns-query [dns -> bypass]
2024/11/07 10:00:33 DNS accepted https://8.8.8.8/dns-query [dns -> bypass]
2024/11/07 10:00:33 [Error] app/dns: failed to retrieve response for p2p-sto2.discovery.steamserver.net. > Post "https://8.8.8.8/dns-query": context canceled
2024/11/07 10:00:36 [Warning] app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [EOF] > common/retry: all retry attempts failed
[[VLESS] MyVLESS] ошибка теста: Get "http://cp.cloudflare.com/": io: read/write on closed pipe

Похоже еще используется dns сервер системы, который настроен как 8.8.8.8

Версия: NekoRay (3.26-2023-12-09)

Не совсем понимаю логику, у вас получается вообще никак не настроены правила DNS на сервере, но ресолв происходит на нем?

2024-11-07T10:09:04.936Z
0ka(0ka)

как вы определили что проблема в днс? у вас точно не лежит сервер? или может сайт для маскировки вас заблокировал или лежит? в конфиге пропишите ip адрес сервера, а не домен, и попробуйте зайти на сайт который не требует днс, напр http://1.1.1.2/cdn-cgi/trace

2024-11-07T10:14:01.613Z
akloman

Да, если не трогать dns в конфиге xray, он просто использует линуксовые системные ресолверы.
Насколько я понимаю, это поведение по-умолчанию. Запросы от клиента проксируются без разрешения доменных имён в ip адреса, это делает сервер, и отсылает в ответе уже все готовое. Если ресолвить домены на клиенте, то надо как-то проксировать и запросы к dns, что не очень удобно. Логично это делать на сервере.

2024-11-07T10:22:51.767Z
spotted_giraffe

Связал с новостью о ECH и увидел вчера ошибки, как на самом персом скриншоте в топике. У меня стояла включенная маршрутизация DNS. 1.1.1.1 не был прописан ни в системе, ни на сервере

Но сейчас странное получил с вашим тестом http://1.1.1.2/cdn-cgi/trace

Открываю в браузере и все ок.

Но добавляю в настройки маршрутов Nekobox (IP - Proxy) - доступа нет.

Сейчас смотрю нет ли проблем с самим сервером. xray работает:

На всякий случай перезапустил firewalld, добавил 443 порт в исключения:
firewall-cmd --add-port=443/tcp

Телнетом он открывается

2024-11-07T11:03:06.889Z
spotted_giraffe

Могу только сказать что настраивал по гайду с хабра Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто / Хабр

Про DNS ни слова не было, каким образом настраивал я Nekobox я уже не вспомню, но маршрутизацию включил не просто так. Если по дефолту DNS ресолвиться должен на сервере, то ситуация конечно странная, буду разбираться дальше

2024-11-07T11:09:22.203Z
akloman

Проверьте всё таки маскировочный домен. На нем должен работать TLS 1.3 и HTTP/2, проверить можно на Qualys SSL Labs Или такая удобная штука, если браузер лиса: GitHub - jannispinter/indicatetls: Addon for Mozilla Firefox that displays the TLS protocol version of websites you visit

2024-11-07T11:26:46.706Z
spotted_giraffe

В общем похоже ситуация разрешена. Все таки пришла мне идея проверить домен под которым я маскировался в reality и оказалось что он просто слег. Может там блокировки повлияли. Сменил в конфиге xray и клиента на новый и все заработало. Работает причем независимо от того, выбираю ли я включение маршрутизации DNS в клиенте или нет. Ошибки с dns-query смутили и отправили вообще по иному пути

Но раз топик завел попробую выяснить точно ли ресолвится все на сервере, а не у меня на системе

В таком случае пытаюсь понять что значат эти настройки:

Удаленный DNS: указывает, что ресолвинг происходит на сервере для соединений, которые добавлены у меня как маршруты через прокси? При этом ресолв будет происходит на 1.1.1.1?

DNS для прямых запросов: то что для политики напрямую, что я не хочу проксировать(доменную зону ru например). В таком случае используются настройки DNS системы?

Осталось разобраться с Final DNS Out

2024-11-07T11:39:37.079Z
akloman

Про DNS в Nekoray.pdf (314,0 КБ)
Тут хорошо написано.

2024-11-07T11:49:21.419Z
A.g(A.g)

А какое ядро лучше - xray или sign-box?

2024-11-07T12:41:33.632Z
rewhat

Особо не изучал тему, но sing-box говорят быстрее. И в нем есть правила типа domain_suffix, что тоже удобно. Кратко говоря, sing-box по идее лучше. Но если он хреново работает, то и xray нормальная тема.

2024-11-07T12:45:40.897Z
akloman

Ну да, sing-box в целом более функционален, зато под xray больше клиентов и серверного софта.

2024-11-07T12:58:06.983Z
spotted_giraffe

Благодарю. Похоже скорости лучше все таки отключать маршрутизацию через удаленный DNS сервис, даже если там DoH.

Про Firefox тоже полезное дополнение, т.к через него в основном и хожу всегда на сайты. Не хотелось бы конечно SOCKS5 открывать на впске, оставив только XTLS-Reality

2024-11-07T12:58:32.745Z
akloman

Firefox вообще тема для работы с прокси, особенно если освоить Firefox Containers с расширением вроде “Container proxy”.

2024-11-07T13:02:06.581Z
Quanxi

Mihomo

2024-11-16T16:21:38.252Z