Перейти к содержимому

finalmask через маппер хоста

Если во входящем соединении сервера Xray задан блок finalmask, клиенту нужны те же маски. Prizrak-Core поддерживает finalmask 👻 для прокси vless и trojan.

Клиентскую маску хоста Remnawave хранит в поле Final Mask (streamOverrides.finalMask). Эту же маску получают Happ и другие клиенты Xray. Prizrak-Core читает её как есть, в записи Xray (вложенные settings, ключи в camelCase вроде randRange), поэтому маппер её просто копирует:

{
"xrayJson": [],
"mihomo": [
{ "op": "copy", "from": "$host.streamOverrides.finalMask", "to": "finalmask" }
],
"base64": []
}

Если Final Mask у хоста не задана, операция пропускается, и узел остаётся без масок.

Постоянную маску можно записать прямо в маппере, в записи mihomo. Пример с фрагментацией TLS ClientHello:

{
"xrayJson": [],
"mihomo": [
{
"op": "set",
"to": "finalmask",
"value": {
"tcp": [
{ "type": "fragment", "packets": "tlshello", "lengths": ["1-1"], "delays": ["0"] }
]
}
}
],
"base64": []
}

Та же маска в записи Xray, как она выглядит во входящем соединении:

{
"tcp": [
{ "type": "fragment", "settings": { "packets": "tlshello", "lengths": ["1-1"], "delays": ["0"] } }
]
}

В подписке Mihomo прокси получит:

proxies:
- name: 🇩🇪 Germany
type: vless
# ...
finalmask:
tcp:
- type: fragment
packets: tlshello
lengths: ["1-1"]
delays: ["0"]