From d7f47d8b6a0db831f018b18000b81cdae17577dd Mon Sep 17 00:00:00 2001 From: MHSanaei Date: Tue, 19 May 2026 15:42:16 +0200 Subject: [PATCH] fix(xray): allow private-IP destinations via freedom finalRules Xray-core v26.4.17 added a default policy that blocks private IPs in the freedom outbound for vless/vmess/trojan/hysteria/wireguard inbounds, even when the panel's routing rules send traffic to direct (#4420). The legacy ipsBlocked override was deprecated in the same release. Default template now seeds the direct outbound with a finalRules entry that explicitly allows geoip:private, so users who intentionally remove the geoip:private->blocked routing rule actually regain LAN access. Defense in depth is preserved: the routing rule still blocks private IPs by default, so unmodified configs keep the same behavior. OutboundFormModal exposes a Final Rules editor under the Freedom section: per-rule action (allow/block), network, port, IP/CIDR/geoip tags, and an optional blockDelay for block actions. --- frontend/src/pages/xray/OutboundFormModal.vue | 41 +++++++++++++++++++ web/service/config.json | 5 ++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/xray/OutboundFormModal.vue b/frontend/src/pages/xray/OutboundFormModal.vue index aa22a8a0..b8c72aa3 100644 --- a/frontend/src/pages/xray/OutboundFormModal.vue +++ b/frontend/src/pages/xray/OutboundFormModal.vue @@ -328,6 +328,47 @@ function regenerateWgKeys() { + + + + + + + Override Xray's default private-IP block (needed for LAN access through proxy) + + + diff --git a/web/service/config.json b/web/service/config.json index 8e7fb19a..c8b52d05 100644 --- a/web/service/config.json +++ b/web/service/config.json @@ -30,7 +30,10 @@ "outbounds": [{ "protocol": "freedom", "settings": { - "domainStrategy": "AsIs" + "domainStrategy": "AsIs", + "finalRules": [ + { "action": "allow", "ip": ["geoip:private"] } + ] }, "tag": "direct" },