Compare commits

...

5 Commits

Author SHA1 Message Date
mercury 3375293be5 fix update start 2024-09-22 21:05:48 +04:00
mercury 6e5f198e23 switch endpoint for wg/amnezia 2024-09-22 14:31:10 +04:00
mercury b10aaff459 fix domain for cdn 2024-09-22 01:06:02 +04:00
mercury 3271561418 update version 2024-09-19 13:44:35 +04:00
mercury 295ee6f2aa fix nginx.conf init 2024-09-19 12:11:05 +04:00
5 changed files with 60 additions and 10 deletions
+26 -9
View File
@@ -343,6 +343,9 @@ class Bot
case preg_match('~^/switchTorrent (\d+)$~', $this->input['callback'], $m):
$this->switchTorrent($m[1]);
break;
case preg_match('~^/switchEndpoint (\d+)$~', $this->input['callback'], $m):
$this->switchEndpoint($m[1]);
break;
case preg_match('~^/switchAmnezia (-?\d+)$~', $this->input['callback'], $m):
$this->switchAmnezia($m[1]);
break;
@@ -1537,6 +1540,14 @@ class Bot
$this->menu('wg', $page);
}
public function switchEndpoint($page = 0)
{
$c = $this->getPacConf();
$c[$this->getInstanceWG(1) . 'endpoint'] = $c[$this->getInstanceWG(1) . 'endpoint'] ? 0 : 1;
$this->setPacConf($c);
$this->menu('wg', $page);
}
public function iptablesWG()
{
$c = $this->getPacConf();
@@ -2675,6 +2686,7 @@ DNS-over-HTTPS with IP:
$dns = $c[$this->getInstanceWG(1) . 'dns'];
$mtu = $c[$this->getInstanceWG(1) . 'mtu'] ?: $this->mtu;
$am = $c[$this->getInstanceWG(1) . 'amnezia'];
$end = $c[$this->getInstanceWG(1) . 'endpoint'];
$data = [
[
[
@@ -2706,6 +2718,12 @@ DNS-over-HTTPS with IP:
'callback_data' => "/defaultMTU $page",
],
],
[
[
'text' => $this->i18n('endpoint') . ': ' . ($end ? $this->ip : $this->getDomain()),
'callback_data' => "/switchEndpoint $page",
],
],
[
[
'text' => $this->i18n('add peer'),
@@ -4729,7 +4747,7 @@ DNS-over-HTTPS with IP:
{
$type = $_GET['t'] == 's' ? 'v2ray' : 'sing';
$pac = $this->getPacConf();
$domain = $this->getDomain($pac['transport'] == 'Websocket');
$domain = $_GET['cdn'] ?: ($_SERVER['SERVER_NAME'] ?: $this->getDomain($pac['transport'] == 'Websocket'));
$xr = $this->getXray();
$scheme = empty($this->nginxGetTypeCert()) ? 'http' : 'https';
$hash = substr(md5($this->key), 0, 8);
@@ -4810,7 +4828,7 @@ DNS-over-HTTPS with IP:
switch ($_GET['t']) {
case 's':
$c['outbounds'][0]['settings']['vnext'][0]['address'] = $_GET['cdn'] ?: $domain;
$c['outbounds'][0]['settings']['vnext'][0]['address'] = $domain;
$c['outbounds'][0]['settings']['vnext'][0]['users'][0] = [
'id' => $uid,
'encryption' => 'none',
@@ -4824,7 +4842,7 @@ DNS-over-HTTPS with IP:
],
"tlsSettings" => [
"allowInsecure" => false,
"serverName" => $_GET['cdn'] ?: $domain,
"serverName" => $domain,
"fingerprint" => "chrome"
]
];
@@ -4862,7 +4880,7 @@ DNS-over-HTTPS with IP:
$c['dns']['servers'][0]['address'] = "https://$domain/dns-query/$uid";
}
$c['outbounds'][0]['server'] = $_GET['cdn'] ?: $domain;
$c['outbounds'][0]['server'] = $domain;
$c['outbounds'][0]['uuid'] = $uid;
if ($pac['transport'] == 'Websocket') {
unset($c['outbounds'][0]['tls']['reality']);
@@ -4871,7 +4889,7 @@ DNS-over-HTTPS with IP:
"type" => "ws",
"path" => "/ws"
];
$c['outbounds'][0]['tls']['server_name'] = $_GET['cdn'] ?: $domain;
$c['outbounds'][0]['tls']['server_name'] = $domain;
} else {
unset($c['outbounds'][0]["transport"]);
$c['outbounds'][0]['flow'] = 'xtls-rprx-vision';
@@ -4891,7 +4909,7 @@ DNS-over-HTTPS with IP:
$c['route']['rules'] = array_values($c['route']['rules']);
$c['route'] = $this->addRuleSet($c['route']);
$c['route'] = $this->addPackageRule($c['route']);
$c['route'] = $this->createRuleSet($c['route'], $uid);
$c['route'] = $this->createRuleSet($c['route'], $uid, $domain);
$c['route'] = $this->clearEmptyRules($c['route']);
break;
}
@@ -4948,10 +4966,9 @@ DNS-over-HTTPS with IP:
return $route;
}
public function createRuleSet($route, $uid)
public function createRuleSet($route, $uid, $domain)
{
$pac = $this->getPacConf();
$domain = $this->getDomain();
$scheme = empty($this->nginxGetTypeCert()) ? 'http' : 'https';
$hash = substr(md5($this->key), 0, 8);
@@ -5850,7 +5867,7 @@ DNS-over-HTTPS with IP:
$conf[] = '';
$conf[] = $peer['# PublicKey'] ? '# [Peer]' : '[Peer]';
if (!empty($peer['Endpoint'])) {
$peer['Endpoint'] = $this->getDomain() . ":" . getenv($this->getInstanceWG(1) ? 'WG1PORT' : 'WGPORT');
$peer['Endpoint'] = ($this->getPacConf()[$this->getInstanceWG(1) . 'endpoint'] ? $this->ip : $this->getDomain()) . ":" . getenv($this->getInstanceWG(1) ? 'WG1PORT' : 'WGPORT');
}
foreach ($peer as $k => $v) {
$conf[] = "$k = $v";
+23
View File
@@ -48,6 +48,7 @@ http {
}
location /pac {
access_log /logs/nginx_pac_access;
proxy_set_header Host $http_host;
proxy_pass http://php;
}
location /tlgrm {
@@ -75,6 +76,27 @@ http {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 5d;
}
#-ssl
# # The DoH server block
# location /dns-query {
# access_log /logs/nginx_doh_access;
# # Proxy HTTP/1.1, clear the connection header to enable Keep-Alive
# proxy_http_version 1.1;
# proxy_set_header Connection "";
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-Proto https;
# proxy_set_header X-Forwarded-For $remote_addr;
# proxy_set_header X-Forwarded-Host $remote_addr;
# # Enable Cache, and set the cache_key to include the request_body
# proxy_cache doh_cache;
# proxy_cache_key $scheme$proxy_host$uri$is_args$args$request_body;
# # proxy pass to the dohloop upstream
# proxy_pass https://ad/dns-query;
# }
#-ssl
location ~\.well-known {
access_log /logs/nginx_certbot_access;
root /certs/;
@@ -118,6 +140,7 @@ http {
# }
# location /pac {
# access_log /logs/nginx_pac_access;
# proxy_set_header Host $http_host;
# proxy_pass http://php;
# }
# location ~\.well-known {
+2
View File
@@ -48,6 +48,7 @@ http {
}
location /pac {
access_log /logs/nginx_pac_access;
proxy_set_header Host $http_host;
proxy_pass http://php;
}
location /tlgrm {
@@ -139,6 +140,7 @@ http {
# }
# location /pac {
# access_log /logs/nginx_pac_access;
# proxy_set_header Host $http_host;
# proxy_pass http://php;
# }
# location ~\.well-known {
+1 -1
View File
@@ -24,7 +24,7 @@ do
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "применяю обновления"/')"
git pull > ./update/message
curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "запускаю бота"/')"
IP=$(curl https://ipinfo.io/ip) VER=$(git describe --tags) docker compose up -d --force-recreate
IP=$(curl ipinfo.io/ip) VER=$(git describe --tags) docker compose --env-file ./.env --env-file ./override.env up -d --force-recreate
bash $pwd/update/update.sh &
> $pwd/update/key
> $pwd/update/curl
+8
View File
@@ -1,3 +1,11 @@
22.09.2024 v1.58
- фикс запуска бота с правильными параметрами после обновления
22.09.2024 v1.57
- выбор типа endpoint для wireguard/amnezia
22.09.2024 v1.56.2
- фикс разных доменов при указании cdn для xray
19.09.2024 v1.56.1
- cdn для xray
17.09.2024 v1.55
- возможность подменить домен в ссылках на конфиги
16.09.2024 v1.54.2