From c2c8ae826d7be1a1e5236fc4ffaf69e32e701e6a Mon Sep 17 00:00:00 2001 From: dekun Date: Sun, 28 Jun 2026 00:05:01 +0800 Subject: [PATCH] fix: use plain SNI in share links for v2rayNG import Co-authored-by: Cursor --- panel/links.py | 4 ++-- scripts/render-client.sh | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/panel/links.py b/panel/links.py index 3c8b30f..d2e737c 100644 --- a/panel/links.py +++ b/panel/links.py @@ -22,8 +22,8 @@ def load_env() -> dict[str, str]: def _sni_qs(value: str) -> str: - """Encode dots in SNI; some clients misparsed sni=www.microsoft.com.""" - return value.replace(".", "%2E") + """SNI in share links — use plain domain; clients decode URL themselves.""" + return value def build_links(node: dict, env: dict | None = None) -> dict[str, str | dict[str, str]]: diff --git a/scripts/render-client.sh b/scripts/render-client.sh index b056390..adff293 100644 --- a/scripts/render-client.sh +++ b/scripts/render-client.sh @@ -17,15 +17,15 @@ done mkdir -p "$OUT_DIR" -urlencode() { - python3 -c "import sys; print(sys.argv[1].replace('.', '%2E'))" "$1" +urlencode_sni() { + python3 -c "import sys; print(sys.argv[1])" "$1" } -REALITY_SNI_ENC="$(urlencode "$REALITY_SERVER_NAME")" +REALITY_SNI_ENC="$(urlencode_sni "$REALITY_SERVER_NAME")" REALITY_PBK_ENC="$REALITY_PUBLIC_KEY" REALITY_SID_ENC="$REALITY_SHORT_ID" HY2_PASSWORD_ENC="$(python3 -c "import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=''))" "$HY2_PASSWORD")" -DOMAIN_SNI_ENC="$(urlencode "$DOMAIN")" +DOMAIN_SNI_ENC="$(urlencode_sni "$DOMAIN")" sed -e "s|\${VPS_IP}|${VPS_IP}|g" \ -e "s|\${DOMAIN}|${DOMAIN}|g" \