diff --git a/docs/config/transports/finalmask.md b/docs/config/transports/finalmask.md index e0136fbb..b56368ca 100644 --- a/docs/config/transports/finalmask.md +++ b/docs/config/transports/finalmask.md @@ -408,7 +408,7 @@ Salamander 混淆。(来自 Hysteria2) `dgram`: 更低的权限,仅客户端 (Linux, Mac, iOS) -`ips`: ips +`ips`: 暂不支持 cidr ### realm @@ -424,7 +424,13 @@ Salamander 混淆。(来自 Hysteria2) "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" ], - "tlsConfig": {} // optional + "tlsConfig": {}, // optional + "ipMode": "dual", + "portMapping": { + "enabled": false, + "timeout": 10, + "lifetime": 600 + } } } ``` @@ -435,7 +441,44 @@ Salamander 混淆。(来自 Hysteria2) `tlsConfig`: 同 tlsSettings -连接不通需要 debug 级别日志,可能的影响因素有 stun提供商 realm提供商 punch包影响了quic握手(极小概率) +`ipMode`: 控制 stun 的域名地址解析以及 realm peer 的过滤 + +`portMapping.enabled`: 启用固定端口映射,更强的入站可达性 + +`portMapping.timeout`: 单位秒 + +`portMapping.lifetime`: 单位秒 + +连接不通需要 debug 级别日志,可能的影响因素有 stun提供商 realm提供商 + +### udphop + +```json +{ + "type": "udphop", + // [!field focus] + "settings": { + "mode": "intervallocal,intervalremote", // intervallocal intervalremote perconnremote + "interval": "5-10", + "remoteIPs": [""], + "remotePorts": "20000-50000,443" + } +} +``` + +`intervallocal`: 仅支持 wireguard hysteria xhttph3 + +`intervalremote`: 需要搭配 iptables 或 nftables + +`perconnremote`: 需要搭配 iptables 或 nftables + +`mode`: 逗号分割,一般为 `intervallocal,intervalremote` 或 `perconnremote` + +`interval`: 单位秒 + +`remoteIPs`: 仅 mode 含 intervalremote 或 perconnremote 时需要,未填继承上层地址,支持 cidr + +`remotePorts`: 仅 mode 含 intervalremote 或 perconnremote 时需要,未填继承上层地址 ## quicParams diff --git a/docs/en/config/transports/finalmask.md b/docs/en/config/transports/finalmask.md index f66de00f..2d93ac98 100644 --- a/docs/en/config/transports/finalmask.md +++ b/docs/en/config/transports/finalmask.md @@ -408,7 +408,7 @@ At least one of `domains` and `resolvers` must be set. `dgram`: Lower permissions, client-side only (Linux, Mac, iOS) -`ips`: ips +`ips`: CIDR is not currently supported ### realm @@ -424,7 +424,13 @@ Self-built https://github.com/apernet/hysteria-realm-server "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" ], - "tlsConfig": {} // optional + "tlsConfig": {}, // optional + "ipMode": "dual", + "portMapping": { + "enabled": false, + "timeout": 10, + "lifetime": 600 + } } } ``` @@ -435,7 +441,44 @@ Self-built https://github.com/apernet/hysteria-realm-server `tlsConfig`: Same as tlsSettings -Connection failures require debug-level logging. Possible contributing factors include the STUN provider, the Realm provider, and punch packets affecting the QUIC handshake (extremely low probability) +`ipMode`: Control STUN domain name resolution and realm peer filtering + +`portMapping.enabled`: Enable fixed port mapping for enhanced inbound accessibility + +`portMapping.timeout`: seconds + +`portMapping.lifetime`: seconds + +Connection failures require debug-level logging. Possible contributing factors include the STUN provider, the Realm provider + +### udphop + +```json +{ + "type": "udphop", + // [!field focus] + "settings": { + "mode": "intervallocal,intervalremote", // intervallocal intervalremote perconnremote + "interval": "5-10", + "remoteIPs": [""], + "remotePorts": "20000-50000,443" + } +} +``` + +`intervallocal`: Supports only WireGuard, Hysteria, and xhttp-h3 + +`intervalremote`: Requires pairing with iptables or nftables + +`perconnremote`: Requires pairing with iptables or nftables + +`mode`: Comma-separated; typically `intervallocal,intervalremote` or `perconnremote` + +`interval`: seconds + +`remoteIPs`: Required only when `mode` includes `intervalremote` or `perconnremote`; if left blank, it inherits the address from the parent level. CIDR notation is supported + +`remotePorts`: Required only when `mode` includes `intervalremote` or `perconnremote`; if left blank, it inherits the address from the parent level ## quicParams diff --git a/docs/ru/config/transports/finalmask.md b/docs/ru/config/transports/finalmask.md index b842cced..32749f40 100644 --- a/docs/ru/config/transports/finalmask.md +++ b/docs/ru/config/transports/finalmask.md @@ -408,7 +408,7 @@ n-й элемент массива задаёт, сколько ждать по `dgram`: Более низкие права доступа, только на стороне клиента (Linux, Mac, iOS) -`ips`: ips +`ips`: В настоящее время CIDR не поддерживается ### realm @@ -424,7 +424,13 @@ n-й элемент массива задаёт, сколько ждать по "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" ], - "tlsConfig": {} // optional + "tlsConfig": {}, // optional + "ipMode": "dual", + "portMapping": { + "enabled": false, + "timeout": 10, + "lifetime": 600 + } } } ``` @@ -435,7 +441,44 @@ n-й элемент массива задаёт, сколько ждать по `tlsConfig`: То же, что tlsSettings -Для регистрации сбоев соединения требуется уровень отладки. К возможным факторам, способствующим возникновению проблем, относятся поставщик STUN, поставщик Realm и пакеты данных, влияющие на рукопожатие QUIC (вероятность крайне низка) +`ipMode`: Управляйте разрешением доменных имен STUN и фильтрацией одноранговых узлов (peer) в пределах области (realm) + +`portMapping.enabled`: Включите фиксированное сопоставление портов для улучшения доступности входящих соединений + +`portMapping.timeout`: секунды + +`portMapping.lifetime`: секунды + +Для регистрации сбоев соединения требуется уровень отладки. К возможным факторам, способствующим возникновению проблем, относятся поставщик STUN, поставщик Realm + +### udphop + +```json +{ + "type": "udphop", + // [!field focus] + "settings": { + "mode": "intervallocal,intervalremote", // intervallocal intervalremote perconnremote + "interval": "5-10", + "remoteIPs": [""], + "remotePorts": "20000-50000,443" + } +} +``` + +`intervallocal`: Поддерживает только WireGuard, Hysteria и xhttp-h3 + +`intervalremote`: Требует использования в связке с iptables или nftables + +`perconnremote`: Требует использования в связке с iptables или nftables + +`mode`: Значения, разделенные запятыми; как правило, `intervallocal,intervalremote` или `perconnremote` + +`interval`: секунды + +`remoteIPs`: Обязателен только в том случае, если `mode` включает `intervalremote` или `perconnremote`; если поле не заполнено, адрес наследуется с вышестоящего уровня. Поддерживается нотация CIDR. + +`remotePorts`: Обязателен только в том случае, если `mode` включает `intervalremote` или `perconnremote`; если поле не заполнено, адрес наследуется с вышестоящего уровня ## quicParams