diff --git a/app/Protocols/V2rayN.php b/app/Protocols/V2rayN.php index 9d62f36..c7eedf5 100644 --- a/app/Protocols/V2rayN.php +++ b/app/Protocols/V2rayN.php @@ -36,6 +36,9 @@ class V2rayN if ($item['type'] === 'trojan') { $uri .= self::buildTrojan($user['uuid'], $item); } + if ($item['type'] === 'hysteria') { + $uri .= self::buildHysteria($user['uuid'], $item); + } } return base64_encode($uri); @@ -199,4 +202,21 @@ class V2rayN return $uri; } + public static function buildHysteria($password, $server) + { + $name = rawurlencode($server['name']); + $params = []; + if ($server['server_name']) $params['sni'] = $server['server_name']; + $params['insecure'] = $server['insecure'] ? 1 : 0; + $query = http_build_query($params); + if ($server['version'] == 2) { + $uri = "hysteria2://{$password}@{$server['host']}:{$server['port']}?{$query}#{$name}"; + $uri .= "\r\n"; + } else { + // V2rayN似乎不支持v1, 返回空 + $uri = ""; + } + return $uri; + } + }