option set/delete internal dns for wireguard peer

This commit is contained in:
mercury
2023-04-12 11:01:01 +04:00
parent 25bf171d57
commit 252d555374
2 changed files with 72 additions and 41 deletions
+28 -1
View File
@@ -180,6 +180,12 @@ class Bot
case preg_match('~^/delete (?P<arg>\d+(?:_(?:-)?\d+)?)$~', $this->input['callback'], $m):
$this->deletePeer(...explode('_', $m['arg']));
break;
case preg_match('~^/dns (?P<arg>\d+(?:_(?:-)?\d+)?)$~', $this->input['callback'], $m):
$this->dnsPeer(...explode('_', $m['arg']));
break;
case preg_match('~^/deletedns (?P<arg>\d+(?:_(?:-)?\d+)?)$~', $this->input['callback'], $m):
$this->deletednsPeer(...explode('_', $m['arg']));
break;
case preg_match('~^/deldomain$~', $this->input['callback'], $m):
$this->delDomain();
break;
@@ -1271,6 +1277,22 @@ DNS-over-HTTPS with IP:
}
}
public function dnsPeer($client, $page)
{
$clients = $this->readClients();
$clients[$client]['interface']['DNS'] = '10.10.0.5';
$this->saveClients($clients);
$this->menu('client', "{$client}_$page");
}
public function deletednsPeer($client, $page)
{
$clients = $this->readClients();
unset($clients[$client]['interface']['DNS']);
$this->saveClients($clients);
$this->menu('client', "{$client}_$page");
}
public function statusWg(int $page = 0)
{
$conf = $this->readConfig();
@@ -1355,6 +1377,12 @@ DNS-over-HTTPS with IP:
'callback_data' => "/download $client",
],
],
[
[
'text' => $this->i18n($clients[$client]['interface']['DNS'] ? 'delete internal dns' : 'set internal dns'),
'callback_data' => "/" . ($clients[$client]['interface']['DNS'] ? 'delete' : '') . "dns {$client}_$page",
],
],
[
[
'text' => $this->i18n('delete'),
@@ -2154,7 +2182,6 @@ DNS-over-HTTPS with IP:
'PrivateKey' => $private_peer_key,
'Address' => "$client_ip/32",
'MTU' => 1350,
// 'DNS' => '10.10.0.5',
],
'peers' => [
[
+44 -40
View File
@@ -46,51 +46,55 @@ $i = [
'reverse list explain' => ' - domains that will work without a proxy, all others through a proxy',
'timer' => 'set timer',
'reset nginx' => 'reset nginx',
'set internal dns' => 'set internal dns',
'delete internal dns' => 'delete internal dns',
],
'ru' => [
'wg_title' => 'Wireguard',
'sh_title' => 'Shadowsocks',
'ad_title' => 'AdGuard',
'config' => 'настройки',
'pac' => 'PAC',
'chat' => 'чат поддержки',
'back' => 'назад',
'import' => 'импорт',
'export' => 'экспорт',
'delete' => 'удалить',
'add' => 'добавить',
'donate' => 'донат',
'admin' => 'админа',
'menu' => 'Меню',
'update status' => 'обновить статус',
'add peer' => 'добавить клиента',
'all traffic' => 'весь трафик',
'subnet' => 'подсеть',
'proxy ip' => 'айпи прокси',
'rename' => 'переименовать',
'show QR' => 'показать QR',
'download config' => 'скачать настройки',
'install domain' => 'установить домен',
'renew SSL' => 'обновить SSL',
'delete SSL' => 'удалить SSL',
'Letsencrypt SSL' => 'Letsencrypt SSL',
'Self SSL' => 'Собственный SSL',
'change password' => 'изменить пароль',
'reset settings' => 'сбросить настройки',
'add upstream' => 'добавить DNS',
'check DNS' => 'проверить DNS',
'update' => 'обновить',
'self list' => 'собственный список',
'reverse list' => 'обратный список',
'subzones' => 'поддомены',
'check url' => 'проверить домен',
'lang' => 'язык',
'blacklist exclude' => 'список исключений из блэклиста',
'adguard web' => 'вебморда адгварда',
'domain explain' => 'Некоторым клиентам требуется валидный сертификат при подключении, например Windows 11 DoH или ShadowSocks Android (URL-адрес PAC), для этого требуется домен',
'wg_title' => 'Wireguard',
'sh_title' => 'Shadowsocks',
'ad_title' => 'AdGuard',
'config' => 'настройки',
'pac' => 'PAC',
'chat' => 'чат поддержки',
'back' => 'назад',
'import' => 'импорт',
'export' => 'экспорт',
'delete' => 'удалить',
'add' => 'добавить',
'donate' => 'донат',
'admin' => 'админа',
'menu' => 'Меню',
'update status' => 'обновить статус',
'add peer' => 'добавить клиента',
'all traffic' => 'весь трафик',
'subnet' => 'подсеть',
'proxy ip' => 'айпи прокси',
'rename' => 'переименовать',
'show QR' => 'показать QR',
'download config' => 'скачать настройки',
'install domain' => 'установить домен',
'renew SSL' => 'обновить SSL',
'delete SSL' => 'удалить SSL',
'Letsencrypt SSL' => 'Letsencrypt SSL',
'Self SSL' => 'Собственный SSL',
'change password' => 'изменить пароль',
'reset settings' => 'сбросить настройки',
'add upstream' => 'добавить DNS',
'check DNS' => 'проверить DNS',
'update' => 'обновить',
'self list' => 'собственный список',
'reverse list' => 'обратный список',
'subzones' => 'поддомены',
'check url' => 'проверить домен',
'lang' => 'язык',
'blacklist exclude' => 'список исключений из блэклиста',
'adguard web' => 'вебморда адгварда',
'domain explain' => 'Некоторым клиентам требуется валидный сертификат при подключении, например Windows 11 DoH или ShadowSocks Android (URL-адрес PAC), для этого требуется домен',
'self list explain' => ' - домены, которые будут работать через прокси',
'reverse list explain' => ' - домены которые будут работать без прокси, все остальные через прокси',
'timer' => 'установить время действия',
'reset nginx' => 'сбросить nginx',
'set internal dns' => 'установить внутренний dns',
'delete internal dns' => 'удалить внутренний dns',
],
];