Description
When importing external WS nodes (e.g., VLESS) containing a host or sni parameter into the s-ui panel, the generated Clash subscription YAML is missing the headers: Host field under ws-opts.
This causes WebSocket handshake failures (usually HTTP 400 Bad Request) and node timeouts when testing the subscription in the Mihomo (Clash Meta) core, especially when the node is behind a strict CDN or reverse proxy (like Nginx).
Config Comparison
❌ Current generated config (Missing Headers):
network: ws
servername: bbb.example.com
ws-opts:
path: /yourpath?ed=2560
# Missing headers field here
Expected generated config:
network: ws
servername: bbb.example.com
ws-opts:
path: /yourpath?ed=2560
headers:
Host: bbb.example.com # ⬅️ Expect s-ui to auto-fill this based on SNI/Host
Description
When importing external WS nodes (e.g., VLESS) containing a
hostorsniparameter into the s-ui panel, the generated Clash subscription YAML is missing theheaders: Hostfield underws-opts.This causes WebSocket handshake failures (usually HTTP 400 Bad Request) and node timeouts when testing the subscription in the Mihomo (Clash Meta) core, especially when the node is behind a strict CDN or reverse proxy (like Nginx).
Config Comparison
❌ Current generated config (Missing Headers):