|
@@ -66,7 +66,14 @@ BOOL CLashConfig::MakeClash()
|
|
|
proxies.push_back(buildtrojan(&node));
|
|
|
}
|
|
|
else if (node.type == "v2ray") {
|
|
|
- proxies.push_back(buildv2ray(&node));
|
|
|
+ if (node.vless == 1)
|
|
|
+ {
|
|
|
+ proxies.push_back(buildVless(&node));
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ proxies.push_back(buildv2ray(&node));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -298,6 +305,47 @@ YAML::Node CLashConfig::buildtrojan(CServerListMode* node)
|
|
|
return YAML::Node();
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ type: vless
|
|
|
+ server: server
|
|
|
+ port: 443
|
|
|
+ uuid: uuid
|
|
|
+ network: tcp
|
|
|
+ tls: true
|
|
|
+ udp: true
|
|
|
+ flow: xtls-rprx-vision
|
|
|
+ servername: speed.cloudflare.com # REALITY servername
|
|
|
+ reality-opts:
|
|
|
+ public-key: xxx
|
|
|
+ short-id: xxx # optional
|
|
|
+ client-fingerprint: chrome # cannot be empty
|
|
|
+*/
|
|
|
+YAML::Node CLashConfig::buildVless(CServerListMode* node)
|
|
|
+{
|
|
|
+ YAML::Node t_map;
|
|
|
+ if (!node)
|
|
|
+ {
|
|
|
+ return t_map;
|
|
|
+ }
|
|
|
+
|
|
|
+ std::vector<YAML::Node> p;
|
|
|
+ t_map["name"] = node->name;
|
|
|
+ t_map["type"] = std::string("vless");
|
|
|
+ t_map["server"] = node->host;
|
|
|
+ t_map["port"] = std::to_string(node->port);
|
|
|
+ t_map["uuid"] = node->uuid;
|
|
|
+ //t_map["cipher"] = node->method;
|
|
|
+ t_map["alterId"] = node->v2_alter_id;
|
|
|
+ t_map["udp"] = node->udp;
|
|
|
+ t_map["tls"] = true;
|
|
|
+ t_map["flow"] = "xtls-rprx-vision";
|
|
|
+ t_map["servername"] = node->v2_sni;
|
|
|
+ t_map["reality-opts"]["public-key"] = node->public_key;
|
|
|
+ t_map["client-fingerprint"] = "chrome";
|
|
|
+ return t_map;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
YAML::Node CLashConfig::buildv2ray(CServerListMode* node)
|
|
|
{
|
|
|
YAML::Node t_map;
|