XTLS-Reality steal from yourself
This commit is contained in:
+19
-2
@@ -336,6 +336,9 @@ class Bot
|
||||
case preg_match('~^/changeFakeDomain$~', $this->input['callback'], $m):
|
||||
$this->changeFakeDomain();
|
||||
break;
|
||||
case preg_match('~^/selfFakeDomain$~', $this->input['callback'], $m):
|
||||
$this->selfFakeDomain();
|
||||
break;
|
||||
case preg_match('~^/changeTGDomain$~', $this->input['callback'], $m):
|
||||
$this->changeTGDomain();
|
||||
break;
|
||||
@@ -3389,6 +3392,10 @@ DNS-over-HTTPS with IP:
|
||||
'text' => $this->i18n('changeFakeDomain'),
|
||||
'callback_data' => "/changeFakeDomain",
|
||||
],
|
||||
[
|
||||
'text' => $this->i18n('selfFakeDomain'),
|
||||
'callback_data' => "/selfFakeDomain",
|
||||
],
|
||||
];
|
||||
if ($c['inbounds'][0]['settings']['clients'][0]['id']) {
|
||||
$data[] = [
|
||||
@@ -3912,16 +3919,26 @@ DNS-over-HTTPS with IP:
|
||||
];
|
||||
}
|
||||
|
||||
public function setFakeDomain($domain)
|
||||
public function setFakeDomain($domain, $self = false)
|
||||
{
|
||||
$c = $this->getXray();
|
||||
$c['inbounds'][0]['streamSettings']['realitySettings']['serverNames'][0] = $domain;
|
||||
$c['inbounds'][0]['streamSettings']['realitySettings']['dest'] = "$domain:443";
|
||||
$c['inbounds'][0]['streamSettings']['realitySettings']['dest'] = $self ? "10.10.1.2:443" : "$domain:443";
|
||||
$this->restartXray($c);
|
||||
$this->setUpstreamDomain($domain);
|
||||
$this->xray();
|
||||
}
|
||||
|
||||
public function selfFakeDomain()
|
||||
{
|
||||
$c = $this->getPacConf();
|
||||
if (!empty($c['domain'])) {
|
||||
$this->setFakeDomain($c['domain'], 1);
|
||||
} else{
|
||||
$this->answer($this->input['callback_id'], 'empty domain', true);
|
||||
}
|
||||
}
|
||||
|
||||
public function setBackup($text)
|
||||
{
|
||||
$text = trim($text);
|
||||
|
||||
+9
-5
@@ -263,7 +263,11 @@ $i = [
|
||||
],
|
||||
'changeFakeDomain' => [
|
||||
'en' => 'changeFakeDomain',
|
||||
'ru' => 'установить фейковый домен',
|
||||
'ru' => 'фейковый домен',
|
||||
],
|
||||
'selfFakeDomain' => [
|
||||
'en' => 'selfFakeDomain',
|
||||
'ru' => 'домен бота',
|
||||
],
|
||||
'page' => [
|
||||
'en' => 'pagination',
|
||||
@@ -310,11 +314,11 @@ $i = [
|
||||
'ru' => 'сторонний браузер',
|
||||
],
|
||||
'browser_notify_on' => [
|
||||
'en' => 'the web panel can now be opened in any browser',
|
||||
'ru' => 'веб панель теперь может быть открыта в любом браузере',
|
||||
'en' => 'the web panel can be opened in any browser',
|
||||
'ru' => 'веб панель может быть открыта в любом браузере',
|
||||
],
|
||||
'browser_notify_off' => [
|
||||
'en' => 'the web panel can no longer be opened in any browser',
|
||||
'ru' => 'веб панель теперь не может быть открыта в любом браузере',
|
||||
'en' => 'web panel is only available from telegram',
|
||||
'ru' => 'веб панель доступна только из телеграмма',
|
||||
],
|
||||
];
|
||||
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Login</title>
|
||||
<style>
|
||||
/* Design based on Blue Login Field of Kevin Sleger https://codepen.io/MurmeltierS/pen/macKb */
|
||||
|
||||
body {
|
||||
background: #44c4e7 url("https://photos-6.dropbox.com/t/2/AAC_bdqR8LMkjEe-HPIf4K1DhtseMLRHPklBSzJSuzglvA/12/5714737/jpeg/1024x768/3/1418346000/0/2/bkg-blur.jpg/CLHm3AIgASgBKAI/b7RrveA2022yJyfO9RyRvv7LjJQESukGHssHUxVThzw") no-repeat center center fixed;
|
||||
background-size: cover;
|
||||
font-family: "Roboto";
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
&::before {
|
||||
z-index: -1;
|
||||
content: '';
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: #44c4e7;
|
||||
/* IE Fallback */
|
||||
background: rgba(68, 196, 231, 0.8);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.form {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
background: #fff;
|
||||
width: 285px;
|
||||
margin: -140px 0 0 -182px;
|
||||
padding: 40px;
|
||||
box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
|
||||
|
||||
h2 {
|
||||
margin: 0 0 20px;
|
||||
line-height: 1;
|
||||
color: #44c4e7;
|
||||
font-size: 18px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
input {
|
||||
outline: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin: 0 0 20px;
|
||||
padding: 10px 15px;
|
||||
border: 1px solid #ccc;
|
||||
color: #ccc;
|
||||
font-family: "Roboto";
|
||||
box-sizing: border-box;
|
||||
font-size: 14px;
|
||||
font-wieght: 400;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
transition: 0.2s linear;
|
||||
|
||||
&input:focus {
|
||||
color: #333;
|
||||
border: 1px solid #44c4e7;
|
||||
}
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
background: #44c4e7;
|
||||
width: 100%;
|
||||
padding: 10px 15px;
|
||||
border: 0;
|
||||
color: #fff;
|
||||
font-family: "Roboto";
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
|
||||
&:hover {
|
||||
background: #369cb8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.error,
|
||||
.valid {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script src="jquery-3.7.1.min.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<section class="form animated flipInX">
|
||||
<h2>Login To Your Account</h2>
|
||||
<p class="valid">Valid. Please wait a moment.</p>
|
||||
<p class="error">Error. Please enter correct Username & password.</p>
|
||||
<form class="loginbox" autocomplete="off">
|
||||
<input placeholder="Username" type="text" id="username"></input>
|
||||
<input placeholder="Password" type="password" id="password"></input>
|
||||
<button id="submit">Login</button>
|
||||
</form>
|
||||
</section>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#submit').click(function () {
|
||||
event.preventDefault(); // prevent PageReLoad
|
||||
$('.error').css('display', 'block'); // show error msg
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
+11
-6
@@ -22,15 +22,17 @@ http {
|
||||
set_real_ip_from 10.10.0.10;
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen 443 ssl http2 default_server proxy_protocol;
|
||||
listen 10.10.0.2:80 default_server;
|
||||
listen 10.10.0.2:443 ssl http2 default_server proxy_protocol;
|
||||
ssl_certificate /certs/self_public;
|
||||
ssl_certificate_key /certs/self_private;
|
||||
|
||||
access_log /logs/nginx_default_access;
|
||||
|
||||
location / {
|
||||
return 444;
|
||||
root /app;
|
||||
index login.html;
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
location /adguard/ {
|
||||
access_log /logs/nginx_adguard_access;
|
||||
@@ -73,11 +75,12 @@ http {
|
||||
|
||||
#-domain
|
||||
# server {
|
||||
# listen 80;
|
||||
# listen 10.10.0.2:80;
|
||||
# server_name ;
|
||||
#-domain
|
||||
#-ssl
|
||||
# listen 443 ssl http2 proxy_protocol;
|
||||
# listen 10.10.0.2:443 ssl http2 proxy_protocol;
|
||||
# listen 10.10.1.2:443 ssl http2;
|
||||
# ssl_certificate /certs/cert_public;
|
||||
# ssl_certificate_key /certs/cert_private;
|
||||
#-ssl
|
||||
@@ -86,7 +89,9 @@ http {
|
||||
# access_log /logs/nginx_domain_access;
|
||||
|
||||
# location / {
|
||||
# return 444;
|
||||
# root /app;
|
||||
# index login.html;
|
||||
# try_files $uri $uri/ =404;
|
||||
# }
|
||||
# location /adguard/ {
|
||||
# access_log /logs/nginx_adguard_access;
|
||||
|
||||
@@ -22,15 +22,17 @@ http {
|
||||
set_real_ip_from 10.10.0.10;
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
listen 443 ssl http2 default_server proxy_protocol;
|
||||
listen 10.10.0.2:80 default_server;
|
||||
listen 10.10.0.2:443 ssl http2 default_server proxy_protocol;
|
||||
ssl_certificate /certs/self_public;
|
||||
ssl_certificate_key /certs/self_private;
|
||||
|
||||
access_log /logs/nginx_default_access;
|
||||
|
||||
location / {
|
||||
return 444;
|
||||
root /app;
|
||||
index login.html;
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
location /adguard/ {
|
||||
access_log /logs/nginx_adguard_access;
|
||||
@@ -73,11 +75,12 @@ http {
|
||||
|
||||
#-domain
|
||||
# server {
|
||||
# listen 80;
|
||||
# listen 10.10.0.2:80;
|
||||
# server_name ;
|
||||
#-domain
|
||||
#-ssl
|
||||
# listen 443 ssl http2 proxy_protocol;
|
||||
# listen 10.10.0.2:443 ssl http2 proxy_protocol;
|
||||
# listen 10.10.1.2:443 ssl http2;
|
||||
# ssl_certificate /certs/cert_public;
|
||||
# ssl_certificate_key /certs/cert_private;
|
||||
#-ssl
|
||||
@@ -86,7 +89,9 @@ http {
|
||||
# access_log /logs/nginx_domain_access;
|
||||
|
||||
# location / {
|
||||
# return 444;
|
||||
# root /app;
|
||||
# index login.html;
|
||||
# try_files $uri $uri/ =404;
|
||||
# }
|
||||
# location /adguard/ {
|
||||
# access_log /logs/nginx_adguard_access;
|
||||
|
||||
@@ -12,6 +12,10 @@ networks:
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 10.10.0.0/24
|
||||
xray:
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 10.10.1.0/24
|
||||
volumes:
|
||||
adguard:
|
||||
|
||||
@@ -70,6 +74,7 @@ services:
|
||||
- ./config/sshd_config:/etc/ssh/sshd_config
|
||||
- ./logs/:/logs/
|
||||
- ./app/webapp:/app
|
||||
- ./app/login.html:/app/login.html
|
||||
ports:
|
||||
- 80:80
|
||||
hostname: nginx
|
||||
@@ -87,6 +92,8 @@ services:
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: 10.10.0.2
|
||||
xray:
|
||||
ipv4_address: 10.10.1.2
|
||||
logging: *default-logging
|
||||
php:
|
||||
image: mercurykd/vpnbot-php:1.2
|
||||
@@ -417,6 +424,8 @@ services:
|
||||
networks:
|
||||
default:
|
||||
ipv4_address: 10.10.0.9
|
||||
xray:
|
||||
ipv4_address: 10.10.1.9
|
||||
logging: *default-logging
|
||||
oc:
|
||||
image: mercurykd/vpnbot-oc:1.2
|
||||
|
||||
Reference in New Issue
Block a user