Skip to content

Commit

Permalink
feat(subscribe): add vless support for loon
Browse files Browse the repository at this point in the history
  • Loading branch information
xboard committed Jan 19, 2025
1 parent c3135d5 commit 1f43676
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions app/Protocols/Loon.php
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,59 @@ public static function buildTrojan($password, $server)
return $uri;
}

public static function buildVless($uuid, $server)
{
$protocol_settings = $server['protocol_settings'];
$config = [
"{$server['name']}=vless",
$server['host'],
$server['port'],
$uuid,
'fast-open=false',
'udp=true',
'alterId=0'
];
switch ((int) data_get($protocol_settings, 'tls')) {
case 1:
$config[] = 'over-tls=true';
$tlsSettings = data_get($protocol_settings, 'tls_settings', []);
if ($tlsSettings) {
$config[] = 'skip-cert-verify=' . (data_get($tlsSettings, 'allow_insecure') ? 'true' : 'false');
if ($serverName = data_get($tlsSettings, 'server_name')) {
$config[] = "tls-name={$serverName}";
}
}
break;
case 2:
return '';
}
$network_settings = data_get($protocol_settings, 'network_settings', []);
switch ((string) data_get($network_settings, 'network')) {
case 'tcp':
$config[] = 'transport=tcp';
if ($headerType = data_get($network_settings, 'header.type')) {
$config = collect($config)->map(function ($item) use ($headerType) {
return $item === 'transport=tcp' ? "transport={$headerType}" : $item;
})->toArray();
}
if ($paths = data_get($network_settings, 'header.request.path')) {
$config[] = 'path=' . $paths[array_rand($paths)];
}
break;
case 'ws':
$config[] = 'transport=ws';
if ($path = data_get($network_settings, 'path')) {
$config[] = "path={$path}";
}

if ($host = data_get($network_settings, 'headers.Host')) {
$config[] = "host={$host}";
}
break;
}
return implode(',', $config) . "\r\n";
}

public static function buildHysteria($password, $server, $user)
{
$protocol_settings = $server['protocol_settings'];
Expand Down

0 comments on commit 1f43676

Please sign in to comment.