Настройка opnsense + sing-box[в контейнере]

Стоит два тонких клиента.

  1. opnsense (192.168.51.1)
  2. proxmox

в контейнере proxmox развернул alpine + sing-box(192.168.51.41)
добавил правила NAT в opnsense

подкинул конфиг в sing-box

{
    "log": {
        "level": "info",
        "timestamp": true
    },
    "dns": {
        "servers": [
            {
                "tag": "local-dns",
                "address": "local",
                "detour": "direct-out"
            },
            {
                "tag": "cloudflare-dns",
                "address": "https://1.1.1.1/dns-query",
                "address_resolver": "local-dns",
                "detour": "vless-out"
            }
        ],
        "rules": [
            {
                "domain": "your.server.example.com",
                "server": "local-dns"
            }
        ]
    },
    "inbounds": [
        {
            "type": "direct",
            "tag": "direct-in",
            "listen": "192.168.51.41",
            "listen_port": 8080
        }
    ],
    "outbounds": [
        {
            "type": "direct",
            "tag": "direct-out"
        },
        {
            "type": "vless",
            "tag": "vless-out",
            "server": "111.111.234.82",
            "server_port": 443,
            "uuid": "uuid",
            "flow": "xtls-rprx-vision",
            "tls": {
                "enabled": true,
                "server_name": "yahoo.com",
                "utls": {
                    "enabled": true
                },
                "reality": {
                    "enabled": true,
                    "public_key": "public_key",
                    "short_id": "short_id"
                }
            }
        },
        {
            "type": "dns",
            "tag": "dns-out"
        }
    ],
    "route": {
        "rules": [
            {
                "outbound": "vless-out"
            }
        ]
    }
}


идея в том что я хочу заблоченный трафик http/https отправлять в контейнер с sing-box, что бы он дальше уже проксировал его через vless и тд
итог, правила вроде правильно перенаправляют запросы, а вот sing-box бесконечно спамит запросами(я так понимаю это петля)
я не особо в этом шарю, но может кто то подскажет в чем косяк? заранее всем спасибо

Боюсь без полной информации об интерфейсах и маршрутах обоих устройств сложно что-то сказать.

И еще, я не уверен, что механизм добавления доменов ютуба в правило ната работает так как вы хотите. Домены надо фильтровать на синг боксе а не на фаерволе


пробовал добавлять домены в NAT с перенаправлением в пустоту и вроде работало, пока правило включено ютуб не открывается, как таколько отключаю правило трафик идет, но потом уходит в петлю.
трафик до sing-box доходит, тк бесконечные запросы вижу в логах sing-box

Мне кажется вам вместо инбаунда direct надо использовать tproxy с тем же самым listen_port
В случае с direct он не может знать, какой там был исходный порт (443)

Это что касается текущей схемы. А так я бы советовал отказаться от натирования вообще, это какой-то странный подход. Вместо правила nat в opnsense настраивается PBR правило фаервола, где dst можно так же указать ваши youtubeDomains, а шлюзом будет синг бокс (потребуется отдельно создать новый шлюз). А на сингбоксе сделать инбаунд tun.