Всем привет, возник вопрос про работу туннелирования в разном софте.
Имеется vps, на нём стоит амнезия в своём контейнере с протоколом amneziawg, отдельным контейнером стоит xray с reality. Я хочу пускать одну из игр в стиме напрямую, чтобы в коннект ничего (или почти ничего) не вмешивалось, ей важны открытые порты и открытый nat, т.к. игра p2p. Если я использую амнезию и в split tunneling указываю, чтобы экзешник игры не использовал впн, коннект отличный как без впн вообще, порты открыты, в игре надпись nat open и исходящий и входящий порты совпадают. В мониторе ресурсов локальный адрес, который использует процесс, совпадает с айпишником компа в локальной сети. Если же я то же самое делаю через nekobox (sing-box, режим tun mixed, outbound по умолчанию bypass, проксируется только дискорд), в игре исходящий и входящие порты перестают совпадать, external port уезжает в диапазон 50000+, и нат становится moderate (что бы это ни значило). Локальный адрес также меняется на подсеть некобокса.
Насколько я понимаю, некобокс заворачивает вообще весь трафик в свой туннель, а потом разбирается, что пускать напрямую, что пускать через vps, тогда как амнезия исключенные приложения вообще не трогает (возможно, я не прав). И поэтому через некобокс меняется тип nat.
Можно ли как-то в некобоксе воспроизвести поведение амнезии, чтобы приложение либо шло не через туннель некобокса, либо не имело никаких ограничений nat?
Попробуй в некобоксе в настройках tun режима включить whitelist режим, и там только discord.exe поставить. Таким образом, трафик остальных процессов пойдёт мимо tun интерфейса.
Preferences → tun settings, внизу галка на whitelist mode, в правом текстбоксе вписать discord.exe
Именно так сейчас и настроено, в вайтлисте прописан только дискорд. Однако, все остальные процессы всё равно идут через интерфейс neko-tun, просто обращаются напрямую, а дискорд - через xray. Дополнительно по стиму проверил - скачивает игрушки напрямую, трафик на vps не растёт, но всё равно через туннель neko-tun.
Да, кстати, версия некобокса - 4.0-beta3, в 3.6 вайтлист вообще не работал.
Да, проблему воспроизвёл. Похоже, что это особенность данного софта такая, весь трафик в любом случае идёт через него, там даже это написано оказывается:
И это ломает работу UPNP, от которого зависит тип nat в игре.
Но я не уверен, что это прям проблема, в интернете пишут, что moderate nat ни на что не влияет в плане возможности подключения к другим игрокам. Open nat это признак того, что отрабатывает UPNP на роутере, благодаря чему проброшен порт прямо в сторону вашего игрового ПК. Я лично UPNP всегда держу выключенным, потому что рандомные проброшенные без моего ведома порты на роутере это так себе идея.
Ну вот я по-разному пробовал, и пробрасывать вручную те порты, которые указывают разработчики, и включать UPNP - всё равно moderate при включенном nekobox, видимо сам факт туннелирования воспринимается игрой негативно.
Особых проблем пока не возникало, правда, но было интересно, почему у амнезии получается не вмешиваться в коннект, а у некобокса нет.
Вот еще что странно - vlc с включенным rtsp стримом с локального адреса (камера видеонаблюдения) идет полностью мимо некобокса, то есть, теоретически, некобокс умеет не вмешиваться в соединение.
В любом случае, спасибо за подтверждение поведения, если будут возникать проблемы, видимо, придется пересаживаться полностью на амнезию.
Реализация tun mode в nekobox создаёт второй слой nat для абсолютно всего трафика.
Если нужен udp в дискорд, интерфейс имхо оверкилл, посмотрите в сторону dll патчей, либо proxifyre
Теперь понятно, спасибо. У меня nekobox не только для дискорда, в маршрутах еще обход блокировок и .ru напрямую, ютуб опять же. Пока выбираю, чем в итоге удобнее/надежнее будет пользоваться, амнезией или некобоксом.