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

Приветствую, друзья! Есть такая задача: нужно резолвить DNS имена на стороне socks5 прокси. Например, если в браузере Firefox поставить галочку на пункте “отправлять DNS запросы через socks5”, то браузер не будет резолвить DNS локально, а сразу будет отправлять запрос на подключение не с IP, а с именем хоста. Как реализовать такую же функциональность, но чтобы направить в socks5 трафик всех приложений? Думал, что sing-box fakeip как раз для этого используется. Но когда настроил, оказалось, что да, он на DNS запрос отвечает фейковым IP (например из диапазона 198.18.0.0/15), но при запросе к этому адресу, все равно лезет его разрезолвливать. Да, можно резолвить через TCP 1.1.1.1 и запросы направить через прокси. Но нужно, чтобы использовались именно нативные DNS, как в случае с Firefox. Также пробовал выставить в конфиге sing-box в inbound (type: tun) параметр “sniff_override_destination”: true, но безуспешно. Подскажите, можно ли эту задачу в принципе решить с помощью sing-box? Или посоветуйте другой аналогичный софт, в котором это возможно реализовать. Спасибо!

2025-01-08T14:49:27.008Z
Xunlei

Не совсем понял, что вы хотите, но что-то похожее есть в Proxifier:

2025-01-08T14:58:14.608Z
rexby

Да, нужна именно эта функциональность, как в Proxifier. Но чтобы софт был открытый и его можно было запустить, например, на OpenWRT роутере, как sing-box.

2025-01-08T15:02:04.942Z
Xunlei

Convert TUN/TAP to Socks5/HTTP proxy
Так и не понял, что вы хотите сделать, прозрачный прокси, или SOCKS5 прокси который будет резолвить имена не локально, а через исходящий прокси? За OpenWRT ничего не знаю, так что умываю руки.

2025-01-08T15:08:03.566Z
0ka(0ka)

тоже ничего не понял. автор, перефразируй

2025-01-08T15:14:12.231Z
rexby

Спасибо за ответы! Хочу направить весь трафик всех приложений через прокси. Но плюс ещё и чтобы ДНС тоже резолвились через этот же прокси. Причем не через публичные днс (1.1.1.1, 8.8.8.8), а через те, что используются на стороне прокси. Предполагается, что заворачивание трафика будет происходить на маршрутизаторе, в качестве которого будет выступать роутер OpenWRT или PC с Linux.

2025-01-08T15:16:37.270Z
Xunlei

Это возможно сделать, не подскажу как, но имейте ввиду, что часть приложений не будет работать (VoIP, UDP hole punching, ICMP tunnel).

2025-01-08T15:23:35.519Z
rexby

Да, это понятно, что чтобы работал UDP это нужна поддержка на стороне прокси. Но в данный момент интересует именно нативный резолвинг ДНС, как вы показали в Proxifier.

2025-01-08T15:29:05.889Z
0ka(0ka)

вы никак не сделаете чтобы приложения сами отказались от системного днс и начали резолвить через сокс, нужно перехватывать днс на уровне системы и направлять куда нужно (например через sing-box проксировать 127.0.0.1:53 на x.x.x.x:53 в proxy outbound)

2025-01-08T16:19:18.394Z
rexby

Перехватить и направить DNS - не проблема. Уже сделано так, что приложения используют DNS от sing-box с опцией fakeip. Т.е. каждое имя резолвится в IP из диапазона 198.18.0.0/15. А запросы к этим IP идут в sing-box. Проблема именно в том, что sing-box сам резолвит DNS имена и вместо фейковых IP подставляет настоящие. Вот мой вопрос в том, можно ли как-то настроить sing-box так, чтобы он в подключение по socks5 подставлял имена хостов вместо IP адресов?

2025-01-08T16:41:03.992Z
Xunlei

Если даже такой опции нет, то возможность пропатчить есть, думаю. Взяв доменое имя из таблицы сопоставления имя ↔ фейковый IP.

2025-01-08T16:53:07.576Z
PatchDragon(Patch)

Там можно настроить прокси.

2025-01-08T17:38:45.567Z
rexby

Спасибо, посмотрю.

2025-01-08T17:46:03.955Z
rexby

В общем, удалось решить задачу. Надо в качестве inbound использовать tproxy (вероятно, redirect тоже будет работать). В режиме tun почему-то не захотела работать опция sniff_override_destination. А с tproxy всё нормально: ДНС выдаются нативные, те, что использует socks5 прокси. Всем спасибо за советы!

2025-01-10T16:05:46.722Z
Stromparadirmg

Уважаемый rexby
Мне нужно решить аналогичную задачу, но к сожалению я первый день пока только изучаю sing box и являюсь абсолютным новичком

Мог бы я просить вас показать ваш шаблон кода для профиля Синг бокс, которые решает задачу раздачу socks с родным днc прoкcu провайдера ?

Совсем пока тяжело с этим языком, гуглил каждое слово в вашем сообщение про тпрокси и прочее

2025-03-19T11:49:44.982Z
OctopusBrigade
            {
                "inbound": "mixed-in",
				"action": "resolve"
            }
2025-03-19T16:16:27.646Z
Stromparadirmg

Огромное спасибо за ваш ответ!!!
К сожалению, при импорте конфигурации в сингбокс ругается, что “missing outbound field”

Извиняюсь, что полный нуб

2025-03-19T17:34:06.144Z
0ka(0ka)

прочитай лс

2025-03-19T18:39:08.346Z
Stromparadirmg

Актуально решить задачу под sing box iOS с днсом прокси
Если кто знает, направьте пжлст

2025-03-22T22:26:48.666Z