|
@@ -7,26 +7,43 @@ class QuantumultX
|
|
|
{
|
|
|
public static function buildVmess($uuid, $server)
|
|
|
{
|
|
|
- $uri = "vmess=" . $server->host . ":" . $server->port . ", method=none, password=" . $uuid . ", fast-open=false, udp-relay=false, tag=" . $server->name;
|
|
|
- if ($server->tls) {
|
|
|
- $tlsSettings = json_decode($server->tlsSettings);
|
|
|
- if ($server->network === 'tcp') $uri .= ', obfs=over-tls';
|
|
|
- if (isset($tlsSettings->allowInsecure)) {
|
|
|
- // Default: tls-verification=true
|
|
|
- $uri .= ', tls-verification=' . ($tlsSettings->allowInsecure ? "false" : "true");
|
|
|
- }
|
|
|
- if (isset($tlsSettings->serverName)) {
|
|
|
- $uri .= ', obfs-host=' . $tlsSettings->serverName;
|
|
|
+ $config = [
|
|
|
+ "vmess={$server->host}:{$server->port}",
|
|
|
+ "method=chacha20-poly1305",
|
|
|
+ "password={$uuid}",
|
|
|
+ "tag={$server->name}"
|
|
|
+ ];
|
|
|
+ if ($server->network === 'tcp') {
|
|
|
+ if ($server->tls) {
|
|
|
+ $tlsSettings = json_decode($server->tlsSettings);
|
|
|
+ array_push($config, 'obfs=over-tls');
|
|
|
+ if (isset($tlsSettings->allowInsecure)) {
|
|
|
+ array_push($config, $server->allow_insecure ? 'tls-verification=true' : 'tls-verification=false');
|
|
|
+ }
|
|
|
+ if (isset($tlsSettings->serverName)) {
|
|
|
+ array_push($config, "obfs-host={$tlsSettings->serverName}");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
if ($server->network === 'ws') {
|
|
|
- $uri .= ', obfs=' . ($server->tls ? 'wss' : 'ws');
|
|
|
+ if ($server->tls) {
|
|
|
+ $tlsSettings = json_decode($server->tlsSettings);
|
|
|
+ array_push($config, 'obfs=wss');
|
|
|
+ if (isset($tlsSettings->allowInsecure)) {
|
|
|
+ array_push($config, $server->allow_insecure ? 'tls-verification=true' : 'tls-verification=false');
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ array_push($config, 'obfs=ws');
|
|
|
+ }
|
|
|
if ($server->networkSettings) {
|
|
|
$wsSettings = json_decode($server->networkSettings);
|
|
|
- if (isset($wsSettings->path)) $uri .= ', obfs-uri=' . $wsSettings->path;
|
|
|
- if (isset($wsSettings->headers->Host)) $uri .= ', obfs-host=' . $wsSettings->headers->Host;
|
|
|
+ if (isset($wsSettings->path)) array_push($config, "obfs-uri={$wsSettings->path}");
|
|
|
+ if (isset($wsSettings->headers->Host)) array_push($config, "obfs-host={$wsSettings->headers->Host}");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ $uri = implode($config, ',');
|
|
|
$uri .= "\r\n";
|
|
|
return $uri;
|
|
|
}
|