mirror of
https://github.com/cedar2025/Xboard.git
synced 2025-01-22 18:48:14 -05:00
feat: 增加Vmess tcp http下发支持
This commit is contained in:
parent
0ef19e91bb
commit
9dcb9cee32
@ -136,7 +136,15 @@ class Clash
|
|||||||
if ($server['network'] === 'tcp') {
|
if ($server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0])) $array['http-opts']['path'] = $tcpSettings['header']['request']['path'][0];
|
|
||||||
|
if (isset($tcpSettings['header']['request']['headers'])){
|
||||||
|
$headers = $$tcpSettings['header']['request']['headers'];
|
||||||
|
$array['http-opts']['headers'] = $headers;
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$array['http-opts']['path'] = $paths;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($server['network'] === 'ws') {
|
if ($server['network'] === 'ws') {
|
||||||
$array['network'] = 'ws';
|
$array['network'] = 'ws';
|
||||||
|
@ -140,7 +140,15 @@ class ClashMeta
|
|||||||
if ($server['network'] === 'tcp') {
|
if ($server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type'])) $array['network'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0])) $array['http-opts']['path'] = $tcpSettings['header']['request']['path'][0];
|
|
||||||
|
if (isset($tcpSettings['header']['request']['headers'])){
|
||||||
|
$headers = $$tcpSettings['header']['request']['headers'];
|
||||||
|
$array['http-opts']['headers'] = $headers;
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$array['http-opts']['path'] = $paths;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($server['network'] === 'ws') {
|
if ($server['network'] === 'ws') {
|
||||||
$array['network'] = 'ws';
|
$array['network'] = 'ws';
|
||||||
|
@ -86,7 +86,14 @@ class General
|
|||||||
if ((string)$server['network'] === 'tcp') {
|
if ((string)$server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0])) $config['path'] = $tcpSettings['header']['request']['path'][0];
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$config['path'] = $paths[array_rand($paths)];
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$config['host'] = $hosts[array_rand($hosts)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((string)$server['network'] === 'ws') {
|
if ((string)$server['network'] === 'ws') {
|
||||||
$wsSettings = $server['networkSettings'];
|
$wsSettings = $server['networkSettings'];
|
||||||
|
@ -84,9 +84,14 @@ class Loon
|
|||||||
if (isset($tcpSettings['header']['type']) && !empty($tcpSettings['header']['type']))
|
if (isset($tcpSettings['header']['type']) && !empty($tcpSettings['header']['type']))
|
||||||
$config = str_replace('transport=tcp', "transport={$tcpSettings['header']['type']}", $config);
|
$config = str_replace('transport=tcp', "transport={$tcpSettings['header']['type']}", $config);
|
||||||
if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0]))
|
if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0]))
|
||||||
array_push($config, "path={$tcpSettings['header']['request']['path'][0]}");
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
if (isset($tcpSettings['header']['Host']) && !empty($tcpSettings['header']['Host']))
|
$path = array_rand(array_rand($paths));
|
||||||
array_push($config, "host={$tcpSettings['header']['Host']}");
|
array_push($config, "path={$path}");
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$host = $hosts[array_rand($hosts)];
|
||||||
|
array_push($config, "host={$host}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($server['tls']) {
|
if ($server['tls']) {
|
||||||
|
@ -74,7 +74,14 @@ class Passwall
|
|||||||
if ((string)$server['network'] === 'tcp') {
|
if ((string)$server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0])) $config['path'] = $tcpSettings['header']['request']['path'][0];
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$config['path'] = $paths[array_rand($paths)];
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$config['host'] = $hosts[array_rand($hosts)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((string)$server['network'] === 'ws') {
|
if ((string)$server['network'] === 'ws') {
|
||||||
$wsSettings = $server['networkSettings'];
|
$wsSettings = $server['networkSettings'];
|
||||||
|
@ -185,6 +185,10 @@ class Shadowrocket
|
|||||||
$config['obfs'] = $tcpSettings['header']['type'];
|
$config['obfs'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0]))
|
if (isset($tcpSettings['header']['request']['path'][0]) && !empty($tcpSettings['header']['request']['path'][0]))
|
||||||
$config['path'] = $tcpSettings['header']['request']['path'][0];
|
$config['path'] = $tcpSettings['header']['request']['path'][0];
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$config['obfsParam'] = $hosts[array_rand($hosts)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($server['network'] === 'ws') {
|
if ($server['network'] === 'ws') {
|
||||||
|
@ -147,7 +147,14 @@ class SingBox
|
|||||||
if ($server['network'] === 'tcp') {
|
if ($server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type']) && $tcpSettings['header']['type'] == 'http') $array['transport']['type'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type']) && $tcpSettings['header']['type'] == 'http') $array['transport']['type'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'])) $array['transport']['path'] = $tcpSettings['header']['request']['path'];
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$array['transport']['path'] = $paths[array_rand($paths)];
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$array['transport']['host'] = $hosts;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($server['network'] === 'ws') {
|
if ($server['network'] === 'ws') {
|
||||||
$array['transport']['type'] ='ws';
|
$array['transport']['type'] ='ws';
|
||||||
|
@ -205,7 +205,17 @@ class Stash
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($server['network'] === 'tcp') {
|
if ($server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['network_settings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
|
if (isset($tcpSettings['header']['type']) && $tcpSettings['header']['type'] == 'http') {
|
||||||
|
$array['network'] = $tcpSettings['header']['type'];
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'])){
|
||||||
|
$array['http-opts']['headers']['Host'] = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$array['http-opts']['path'] = $paths[array_rand($paths)];
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($server['network'] === 'ws') {
|
if ($server['network'] === 'ws') {
|
||||||
|
@ -87,7 +87,14 @@ class V2rayN
|
|||||||
if ((string)$server['network'] === 'tcp') {
|
if ((string)$server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0])) $config['path'] = $tcpSettings['header']['request']['path'][0];
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$config['path'] = $paths[array_rand($paths)];
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$config['host'] = $hosts[array_rand($hosts)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((string)$server['network'] === 'ws') {
|
if ((string)$server['network'] === 'ws') {
|
||||||
$wsSettings = $server['networkSettings'];
|
$wsSettings = $server['networkSettings'];
|
||||||
@ -137,7 +144,7 @@ class V2rayN
|
|||||||
$config['servername'] = $tls_settings['server_name'];
|
$config['servername'] = $tls_settings['server_name'];
|
||||||
$config['spx'] = "/";
|
$config['spx'] = "/";
|
||||||
$fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹
|
$fingerprints = ['chrome', 'firefox', 'safari', 'ios', 'edge', 'qq']; //随机客户端指纹
|
||||||
$config['fp'] = $fingerprints[rand(0,count($fingerprints) - 1)];
|
$config['fp'] = $fingerprints[array_rand($fingerprints)];
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -74,7 +74,14 @@ class V2rayNG
|
|||||||
if ((string)$server['network'] === 'tcp') {
|
if ((string)$server['network'] === 'tcp') {
|
||||||
$tcpSettings = $server['networkSettings'];
|
$tcpSettings = $server['networkSettings'];
|
||||||
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
if (isset($tcpSettings['header']['type'])) $config['type'] = $tcpSettings['header']['type'];
|
||||||
if (isset($tcpSettings['header']['request']['path'][0])) $config['path'] = $tcpSettings['header']['request']['path'][0];
|
if (isset($tcpSettings['header']['request']['path'][0])){
|
||||||
|
$paths = $tcpSettings['header']['request']['path'];
|
||||||
|
$config['path'] = $paths[array_rand($paths)];
|
||||||
|
}
|
||||||
|
if (isset($tcpSettings['header']['request']['headers']['Host'][0])){
|
||||||
|
$hosts = $tcpSettings['header']['request']['headers']['Host'];
|
||||||
|
$config['host'] = $hosts[array_rand($hosts)];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((string)$server['network'] === 'ws') {
|
if ((string)$server['network'] === 'ws') {
|
||||||
$wsSettings = $server['networkSettings'];
|
$wsSettings = $server['networkSettings'];
|
||||||
|
Loading…
Reference in New Issue
Block a user