mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-07 12:06:56 +03:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7ee92123bc | ||
|
|
5fd0e23cf9 | ||
|
|
9b25669c8f | ||
|
|
4b020671cc | ||
|
|
6222221847 | ||
|
|
6fa215e343 | ||
|
|
a33835415f | ||
|
|
f76c657bd7 | ||
|
|
cceedd6c17 | ||
|
|
8fa1986961 | ||
|
|
8dec59d118 | ||
|
|
c1fac487c7 | ||
|
|
d934bcc5e9 | ||
|
|
fc99bd7aaa | ||
|
|
b6cf73b974 | ||
|
|
6df7c8abf8 | ||
|
|
8eb97a8023 | ||
|
|
cd43449585 |
@@ -102,6 +102,8 @@ Luci: Services/podkop
|
||||
list doh_server '127.0.0.1#5054'
|
||||
```
|
||||
- [x] Только кастомный remote list не создаёт секцию в route-rules-rule-set и dns-rules-ruleset
|
||||
- [ ] Не отрабатывает service podkop stop, если podkop запущен и не может, к пример, зарезолвить домен с сломанным DNS
|
||||
- [ ] Всплывает в логах при старте. Не каждый раз. На работу не влияет. Wed Feb 19 17:12:28 2025 daemon.err sh[17665]: Command failed: ubus call service delete { "name": "sing-box" } (Not found)
|
||||
|
||||
# ToDo
|
||||
Этот раздел не означает задачи, которые нужно брать и делать. Это общий список хотелок. Если вы хотите помочь, пожалуйста, спросите сначала в телеграмме.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-podkop
|
||||
PKG_VERSION:=0.3.10
|
||||
PKG_VERSION:=0.3.11
|
||||
PKG_RELEASE:=1
|
||||
|
||||
LUCI_TITLE:=LuCI podkop app
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,44 +25,59 @@ msgstr "Тип подключения"
|
||||
msgid "Select between VPN and Proxy connection methods for traffic routing"
|
||||
msgstr "Выберите между VPN и Proxy методами для маршрутизации трафика"
|
||||
|
||||
msgid "Configuration Type"
|
||||
msgstr "Тип конфигурации"
|
||||
|
||||
msgid "Select how to configure the proxy"
|
||||
msgstr "Выберите способ настройки прокси"
|
||||
|
||||
msgid "Connection URL"
|
||||
msgstr "URL подключения"
|
||||
|
||||
msgid "Outbound Config"
|
||||
msgstr "Конфигурация Outbound"
|
||||
|
||||
msgid "Proxy Configuration URL"
|
||||
msgstr "URL конфигурации прокси"
|
||||
|
||||
msgid "Enter connection string starting with vless:// or ss:// for proxy configuration"
|
||||
msgstr "Введите строку подключения, начинающуюся с vless:// или ss:// для настройки прокси"
|
||||
|
||||
msgid "Outbound Configuration"
|
||||
msgstr "Конфигурация исходящего соединения"
|
||||
|
||||
msgid "Enter complete outbound configuration in JSON format"
|
||||
msgstr "Введите полную конфигурацию исходящего соединения в формате JSON"
|
||||
|
||||
msgid "Network Interface"
|
||||
msgstr "Сетевой интерфейс"
|
||||
|
||||
msgid "Select network interface for VPN connection"
|
||||
msgstr "Выберите сетевой интерфейс для VPN подключения"
|
||||
|
||||
msgid "Community Domain Lists"
|
||||
msgstr "Предустановленные списки доменов"
|
||||
msgid "Community Lists"
|
||||
msgstr "Предустановленные списки"
|
||||
|
||||
msgid "Domain List"
|
||||
msgstr "Список доменов"
|
||||
msgid "Service List"
|
||||
msgstr "Список сервисов"
|
||||
|
||||
msgid "Select a list"
|
||||
msgstr "Выберите список доменов"
|
||||
msgid "Select predefined service for routing"
|
||||
msgstr "Выберите предустановленные сервисы для маршрутизации"
|
||||
|
||||
msgid "Community Subnet Lists"
|
||||
msgstr "Предустановленные сети сервисов"
|
||||
msgid "User Domain List Type"
|
||||
msgstr "Тип пользовательского списка доменов"
|
||||
|
||||
msgid "Enable routing for popular services like Twitter, Meta, and Discord"
|
||||
msgstr "Включить маршрутизацию для популярных сервисов, таких как Twitter, Meta и Discord"
|
||||
msgid "Select how to add your custom domains"
|
||||
msgstr "Выберите способ добавления пользовательских доменов"
|
||||
|
||||
msgid "Service Networks"
|
||||
msgstr "Сети сервисов"
|
||||
msgid "Disabled"
|
||||
msgstr "Отключено"
|
||||
|
||||
msgid "Select predefined service networks for routing"
|
||||
msgstr "Выберите предустановленные сети сервисов для маршрутизации"
|
||||
msgid "Dynamic List"
|
||||
msgstr "Динамический список"
|
||||
|
||||
msgid "User Domain List"
|
||||
msgstr "Пользовательский список доменов"
|
||||
|
||||
msgid "Enable and manage your custom list of domains for selective routing"
|
||||
msgstr "Включить и управлять пользовательским списком доменов для выборочной маршрутизации"
|
||||
msgid "Text List"
|
||||
msgstr "Текстовый список"
|
||||
|
||||
msgid "User Domains"
|
||||
msgstr "Пользовательские домены"
|
||||
@@ -70,6 +85,24 @@ msgstr "Пользовательские домены"
|
||||
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
||||
msgstr "Введите имена доменов без протоколов (пример: sub.example.com или example.com)"
|
||||
|
||||
msgid "User Domains List"
|
||||
msgstr "Список пользовательских доменов"
|
||||
|
||||
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
||||
msgstr "Введите имена доменов через запятую, пробел или новую строку (пример: sub.example.com, example.com или один домен на строку)"
|
||||
|
||||
msgid "Local Domain Lists"
|
||||
msgstr "Локальные списки доменов"
|
||||
|
||||
msgid "Use the list from the router filesystem"
|
||||
msgstr "Использовать список из файловой системы роутера"
|
||||
|
||||
msgid "Local Domain Lists Path"
|
||||
msgstr "Путь к локальным спискам доменов"
|
||||
|
||||
msgid "Enter to the list file path"
|
||||
msgstr "Введите путь к файлу списка"
|
||||
|
||||
msgid "Remote Domain Lists"
|
||||
msgstr "Удаленные списки доменов"
|
||||
|
||||
@@ -82,17 +115,26 @@ msgstr "URL удаленных доменов"
|
||||
msgid "Enter full URLs starting with http:// or https://"
|
||||
msgstr "Введите полные URL, начинающиеся с http:// или https://"
|
||||
|
||||
msgid "User Subnet List"
|
||||
msgstr "Пользовательский список подсетей"
|
||||
msgid "User Subnet List Type"
|
||||
msgstr "Тип пользовательского списка подсетей"
|
||||
|
||||
msgid "Enable and manage your custom list of IP subnets for selective routing"
|
||||
msgstr "Включить и управлять пользовательским списком IP-подсетей для выборочной маршрутизации"
|
||||
msgid "Select how to add your custom subnets"
|
||||
msgstr "Выберите способ добавления пользовательских подсетей"
|
||||
|
||||
msgid "Text List (comma/space/newline separated)"
|
||||
msgstr "Текстовый список (разделенный запятыми/пробелами/новыми строками)"
|
||||
|
||||
msgid "User Subnets"
|
||||
msgstr "Пользовательские подсети"
|
||||
|
||||
msgid "Enter subnet in CIDR notation (example: 103.21.244.0/22)"
|
||||
msgstr "Введите подсеть в нотации CIDR (пример: 103.21.244.0/22)"
|
||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||
msgstr "Введите подсети в нотации CIDR (пример: 103.21.244.0/22) или отдельные IP-адреса"
|
||||
|
||||
msgid "User Subnets List"
|
||||
msgstr "Список пользовательских подсетей"
|
||||
|
||||
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
|
||||
msgstr "Введите подсети в нотации CIDR или отдельные IP-адреса через запятую, пробел или новую строку"
|
||||
|
||||
msgid "Remote Subnet Lists"
|
||||
msgstr "Удаленные списки подсетей"
|
||||
@@ -103,18 +145,6 @@ msgstr "Загрузка и использование списков подсе
|
||||
msgid "Remote Subnet URLs"
|
||||
msgstr "URL удаленных подсетей"
|
||||
|
||||
msgid "Domain Exclusions"
|
||||
msgstr "Исключения доменов"
|
||||
|
||||
msgid "Exclude specific domains from routing rules"
|
||||
msgstr "Исключить определенные домены из правил маршрутизации"
|
||||
|
||||
msgid "Excluded Domains"
|
||||
msgstr "Исключенные домены"
|
||||
|
||||
msgid "Domains to be excluded from routing"
|
||||
msgstr "Домены, которые будут исключены из маршрутизации"
|
||||
|
||||
msgid "IP for full redirection"
|
||||
msgstr "Принудительные прокси IP"
|
||||
|
||||
@@ -133,6 +163,27 @@ msgstr "Исключения прокси IP"
|
||||
msgid "Specify local IP addresses that will never use the configured route"
|
||||
msgstr "Укажите локальные IP-адреса, которые никогда не будут использовать настроенный маршрут"
|
||||
|
||||
msgid "Mixed enable"
|
||||
msgstr "Включить смешанный режим"
|
||||
|
||||
msgid "Browser port: 2080"
|
||||
msgstr "Порт браузера: 2080"
|
||||
|
||||
msgid "Yacd enable"
|
||||
msgstr "Включить Yacd"
|
||||
|
||||
msgid "Exclude NTP"
|
||||
msgstr "Исключить NTP"
|
||||
|
||||
msgid "For issues with open connections sing-box"
|
||||
msgstr "Для проблем с открытыми соединениями sing-box"
|
||||
|
||||
msgid "QUIC disable"
|
||||
msgstr "Отключить QUIC"
|
||||
|
||||
msgid "For issues with the video stream"
|
||||
msgstr "Для проблем с видеопотоком"
|
||||
|
||||
msgid "List Update Frequency"
|
||||
msgstr "Частота обновления списков"
|
||||
|
||||
@@ -145,6 +196,9 @@ msgstr "Каждый час"
|
||||
msgid "Every 2 hours"
|
||||
msgstr "Каждые 2 часа"
|
||||
|
||||
msgid "Every 3 hours"
|
||||
msgstr "Каждые 3 часа"
|
||||
|
||||
msgid "Every 4 hours"
|
||||
msgstr "Каждые 4 часа"
|
||||
|
||||
@@ -154,51 +208,18 @@ msgstr "Каждые 6 часов"
|
||||
msgid "Every 12 hours"
|
||||
msgstr "Каждые 12 часов"
|
||||
|
||||
msgid "Every day"
|
||||
msgstr "Каждый день"
|
||||
|
||||
msgid "Every 3 days"
|
||||
msgstr "Каждые 3 дня"
|
||||
|
||||
msgid "Once a day at 04:00"
|
||||
msgstr "Раз в день в 04:00"
|
||||
|
||||
msgid "Once a week on Sunday at 04:00"
|
||||
msgstr "Раз в неделю в воскресенье в 04:00"
|
||||
|
||||
msgid "Yacd enable"
|
||||
msgstr "Включить Yacd"
|
||||
|
||||
msgid "Mixed enable"
|
||||
msgstr "Включить смешанный режим"
|
||||
|
||||
msgid "Browser port: 2080"
|
||||
msgstr "Порт браузера: 2080"
|
||||
|
||||
msgid "Exclude NTP"
|
||||
msgstr "Исключить NTP"
|
||||
|
||||
msgid "For issues with open connections sing-box"
|
||||
msgstr "Для проблем с открытыми соединениями sing-box"
|
||||
|
||||
msgid "Service Domain List Enable"
|
||||
msgstr "Включить список доменов сервисов"
|
||||
|
||||
msgid "Enable predefined service domain lists for routing"
|
||||
msgstr "Включить предустановленные списки доменов для маршрутизации"
|
||||
|
||||
msgid "Service List"
|
||||
msgstr "Список сервисов"
|
||||
|
||||
msgid "Select predefined services for routing"
|
||||
msgstr "Выберите предустановленные сервисы для маршрутизации"
|
||||
|
||||
msgid "Domains"
|
||||
msgstr "Домены"
|
||||
|
||||
msgid "Subnet List"
|
||||
msgstr "Список подсетей"
|
||||
|
||||
msgid "Configure custom subnets for routing"
|
||||
msgstr "Настройка пользовательских подсетей для маршрутизации"
|
||||
|
||||
msgid "Subnets"
|
||||
msgstr "Подсети"
|
||||
|
||||
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
|
||||
msgstr "Неверный формат домена. Введите домен без протокола (пример: sub.example.com)"
|
||||
|
||||
@@ -208,8 +229,8 @@ msgstr "URL должен использовать протокол http:// ил
|
||||
msgid "Invalid URL format. URL must start with http:// or https://"
|
||||
msgstr "Неверный формат URL. URL должен начинаться с http:// или https://"
|
||||
|
||||
msgid "Invalid subnet format. Use format: X.X.X.X/Y (like 192.168.1.0/24)"
|
||||
msgstr "Неверный формат подсети. Используйте формат: X.X.X.X/Y (например: 192.168.1.0/24)"
|
||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||
msgstr "Неверный формат. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
||||
|
||||
msgid "IP address parts must be between 0 and 255"
|
||||
msgstr "Части IP-адреса должны быть между 0 и 255"
|
||||
@@ -220,71 +241,23 @@ msgstr "CIDR должен быть между 0 и 32"
|
||||
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
||||
msgstr "Неверный формат IP. Используйте формат: X.X.X.X (например: 192.168.1.1)"
|
||||
|
||||
msgid "User Domain List Type"
|
||||
msgstr "Тип пользовательского списка доменов"
|
||||
|
||||
msgid "Select how to add your custom domains"
|
||||
msgstr "Выберите способ добавления пользовательских доменов"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "Отключено"
|
||||
|
||||
msgid "Dynamic List"
|
||||
msgstr "Динамический список"
|
||||
|
||||
msgid "Text List"
|
||||
msgstr "Текстовый список"
|
||||
|
||||
msgid "User Domains List"
|
||||
msgstr "Список пользовательских доменов"
|
||||
|
||||
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
||||
msgstr "Введите имена доменов через запятую, пробел или новую строку (пример: sub.example.com, example.com или один домен на строку)"
|
||||
|
||||
msgid "Invalid domain format: %s. Enter domain without protocol"
|
||||
msgstr "Неверный формат домена: %s. Введите домен без протокола"
|
||||
|
||||
msgid "User Subnet List Type"
|
||||
msgstr "Тип пользовательского списка подсетей"
|
||||
|
||||
msgid "Select how to add your custom subnets"
|
||||
msgstr "Выберите способ добавления пользовательских подсетей"
|
||||
|
||||
msgid "Text List (comma/space/newline separated)"
|
||||
msgstr "Текстовый список (разделенный запятыми/пробелами/новыми строками)"
|
||||
|
||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||
msgstr "Введите подсети в нотации CIDR (пример: 103.21.244.0/22) или отдельные IP-адреса"
|
||||
|
||||
msgid "User Subnets List"
|
||||
msgstr "Список пользовательских подсетей"
|
||||
|
||||
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
|
||||
msgstr "Введите подсети в нотации CIDR или отдельные IP-адреса через запятую, пробел или новую строку"
|
||||
|
||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||
msgstr "Неверный формат. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
||||
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
||||
msgstr "Неверный формат: %s. Используйте формат: X.X.X.X или X.X.X.X/Y"
|
||||
|
||||
msgid "IP parts must be between 0 and 255 in: %s"
|
||||
msgstr "Части IP-адреса должны быть между 0 и 255 в: %s"
|
||||
|
||||
msgid "Configuration Type"
|
||||
msgstr "Тип конфигурации"
|
||||
msgid "CIDR must be between 0 and 32 in: %s"
|
||||
msgstr "CIDR должен быть между 0 и 32 в: %s"
|
||||
|
||||
msgid "Select how to configure the proxy"
|
||||
msgstr "Выберите способ настройки прокси"
|
||||
msgid "Invalid path format. Path must start with \"/\" and contain only valid characters (letters, numbers, \"-\", \"_\", \"/\", \".\")"
|
||||
msgstr "Неверный формат пути. Путь должен начинаться с \"/\" и содержать только допустимые символы (буквы, цифры, \"-\", \"_\", \"/\", \".\")"
|
||||
|
||||
msgid "Connection URL"
|
||||
msgstr "URL подключения"
|
||||
|
||||
msgid "Outbound Config"
|
||||
msgstr "Конфигурация Outbound"
|
||||
|
||||
msgid "Outbound Configuration"
|
||||
msgstr "Конфигурация исходящего соединения"
|
||||
|
||||
msgid "Enter complete outbound configuration in JSON format"
|
||||
msgstr "Введите полную конфигурацию исходящего соединения в формате JSON"
|
||||
msgid "Invalid path format"
|
||||
msgstr "Неверный формат пути"
|
||||
|
||||
msgid "JSON must contain at least type, server and server_port fields"
|
||||
msgstr "JSON должен содержать как минимум поля type, server и server_port"
|
||||
@@ -292,189 +265,233 @@ msgstr "JSON должен содержать как минимум поля type
|
||||
msgid "Invalid JSON format"
|
||||
msgstr "Неверный формат JSON"
|
||||
|
||||
msgid "Diagnostics"
|
||||
msgstr "Диагностика"
|
||||
|
||||
msgid "Main Check"
|
||||
msgstr "Основная проверка"
|
||||
|
||||
msgid "Run a comprehensive diagnostic check of all components"
|
||||
msgstr "Запустить комплексную диагностическую проверку всех компонентов"
|
||||
|
||||
msgid "Run Check"
|
||||
msgstr "Запустить проверку"
|
||||
|
||||
msgid "Full Diagnostic Results"
|
||||
msgstr "Полные результаты диагностики"
|
||||
|
||||
msgid "Failed to copy: "
|
||||
msgstr "Ошибка копирования: "
|
||||
|
||||
msgid "Copy to Clipboard"
|
||||
msgstr "Скопировать в буфер"
|
||||
|
||||
msgid "Close"
|
||||
msgstr "Закрыть"
|
||||
|
||||
msgid "No output"
|
||||
msgstr "Нет данных"
|
||||
|
||||
msgid "System Logs"
|
||||
msgstr "Системные логи"
|
||||
|
||||
msgid "View recent system logs related to Podkop"
|
||||
msgstr "Просмотр недавних системных логов, связанных с Podkop"
|
||||
|
||||
msgid "View Logs"
|
||||
msgstr "Просмотр логов"
|
||||
|
||||
msgid "Failed to copy logs: "
|
||||
msgstr "Ошибка копирования логов: "
|
||||
|
||||
msgid "Show Config"
|
||||
msgstr "Показать конфигурацию"
|
||||
|
||||
msgid "Show current podkop configuration with masked sensitive data"
|
||||
msgstr "Показать текущую конфигурацию podkop с маскированными конфиденциальными данными"
|
||||
|
||||
msgid "Podkop Configuration"
|
||||
msgstr "Конфигурация Podkop"
|
||||
|
||||
msgid "Update lists"
|
||||
msgstr "Обновить списки"
|
||||
|
||||
msgid "Update all lists in config"
|
||||
msgstr "Обновить все списки в конфигурации"
|
||||
|
||||
msgid "List Update"
|
||||
msgstr "Обновление списков"
|
||||
|
||||
msgid "Lists will be updated in background. You can check the progress in system logs."
|
||||
msgstr "Списки будут обновлены в фоновом режиме. Вы можете проверить прогресс в системных логах."
|
||||
|
||||
msgid "Extra configurations"
|
||||
msgstr "Дополнительные конфигурации"
|
||||
|
||||
msgid "Extra configuration"
|
||||
msgstr "Дополнительная конфигурация"
|
||||
|
||||
msgid "Add Section"
|
||||
msgstr "Добавить раздел"
|
||||
|
||||
msgid "QUIC disable"
|
||||
msgstr "Отключить QUIC"
|
||||
|
||||
msgid "For issues with the video stream"
|
||||
msgstr "Для проблем с видеопотоком"
|
||||
|
||||
msgid "Community Lists"
|
||||
msgstr "Списки сообщества"
|
||||
|
||||
msgid "Local Domain Lists"
|
||||
msgstr "Локальные списки доменов"
|
||||
|
||||
msgid "Use the list from the router filesystem"
|
||||
msgstr "Использовать список из файловой системы роутера"
|
||||
|
||||
msgid "Local Domain Lists Path"
|
||||
msgstr "Путь к локальным спискам доменов"
|
||||
|
||||
msgid "Enter to the list file path"
|
||||
msgstr "Введите путь к файлу списка"
|
||||
|
||||
msgid "Proxy Check"
|
||||
msgstr "Проверка прокси"
|
||||
|
||||
msgid "Check if sing-box proxy works correctly"
|
||||
msgstr "Проверить корректность работы прокси sing-box"
|
||||
|
||||
msgid "Check Proxy"
|
||||
msgstr "Проверить прокси"
|
||||
|
||||
msgid "Proxy Check Results"
|
||||
msgstr "Результаты проверки прокси"
|
||||
|
||||
msgid "NFT Rules"
|
||||
msgstr "Правила NFT"
|
||||
|
||||
msgid "Show current nftables rules and statistics"
|
||||
msgstr "Показать текущие правила и статистику nftables"
|
||||
|
||||
msgid "Check Rules"
|
||||
msgstr "Проверить правила"
|
||||
|
||||
msgid "GitHub Connectivity"
|
||||
msgstr "Подключение к GitHub"
|
||||
|
||||
msgid "Check GitHub connectivity and lists availability"
|
||||
msgstr "Проверить подключение к GitHub и доступность списков"
|
||||
|
||||
msgid "Check GitHub"
|
||||
msgstr "Проверить GitHub"
|
||||
|
||||
msgid "GitHub Connectivity Results"
|
||||
msgstr "Результаты проверки подключения к GitHub"
|
||||
|
||||
msgid "Sing-Box Logs"
|
||||
msgstr "Логи Sing-Box"
|
||||
|
||||
msgid "View recent sing-box logs from system journal"
|
||||
msgstr "Просмотр последних логов sing-box из системного журнала"
|
||||
|
||||
msgid "View Sing-Box Logs"
|
||||
msgstr "Просмотр логов Sing-Box"
|
||||
|
||||
msgid "Podkop Logs"
|
||||
msgstr "Логи Podkop"
|
||||
|
||||
msgid "View recent podkop logs from system journal"
|
||||
msgstr "Просмотр последних логов podkop из системного журнала"
|
||||
|
||||
msgid "View Podkop Logs"
|
||||
msgstr "Просмотр логов Podkop"
|
||||
|
||||
msgid "Active Connections"
|
||||
msgstr "Активные соединения"
|
||||
|
||||
msgid "View active sing-box network connections"
|
||||
msgstr "Просмотр активных сетевых соединений sing-box"
|
||||
|
||||
msgid "Check Connections"
|
||||
msgstr "Проверить соединения"
|
||||
|
||||
msgid "DNSMasq Configuration"
|
||||
msgstr "Конфигурация DNSMasq"
|
||||
|
||||
msgid "View current DNSMasq configuration settings"
|
||||
msgstr "Просмотр текущих настроек конфигурации DNSMasq"
|
||||
|
||||
msgid "Check DNSMasq"
|
||||
msgstr "Проверить DNSMasq"
|
||||
|
||||
msgid "Sing-Box Configuration"
|
||||
msgstr "Конфигурация Sing-Box"
|
||||
|
||||
msgid "Show current sing-box configuration"
|
||||
msgstr "Показать текущую конфигурацию sing-box"
|
||||
|
||||
msgid "Show Sing-Box Config"
|
||||
msgstr "Показать конфигурацию Sing-Box"
|
||||
|
||||
msgid "Lists Update Results"
|
||||
msgstr "Результаты обновления списков"
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||
msgstr "Предупреждение: %s нельзя использовать вместе с %s. Предыдущие варианты были удалены."
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s have been removed from selection."
|
||||
msgstr "Внимание: Russia inside может использоваться только с Meta, Twitter, Discord и Telegram. %s были удалены из выбора."
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Regional options cannot be used together"
|
||||
msgstr "Нельзя использовать несколько региональных опций"
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s already in Russia inside and have been removed from selection."
|
||||
msgstr "Внимание: Russia inside может использоваться только с Meta, Twitter, Discord и Telegram. %s были удалены из выбора."
|
||||
|
||||
msgid "Russia inside restrictions"
|
||||
msgstr "Ограничения Russia inside"
|
||||
msgstr "Ограничения Russia inside"
|
||||
|
||||
msgid "URL must start with vless:// or ss://"
|
||||
msgstr "URL должен начинаться с vless:// или ss://"
|
||||
|
||||
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
|
||||
msgstr "Неверный формат URL Shadowsocks: отсутствует разделитель метода и пароля \":\""
|
||||
|
||||
msgid "Invalid Shadowsocks URL format"
|
||||
msgstr "Неверный формат URL Shadowsocks"
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing server address"
|
||||
msgstr "Неверный URL Shadowsocks: отсутствует адрес сервера"
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing server"
|
||||
msgstr "Неверный URL Shadowsocks: отсутствует сервер"
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing port"
|
||||
msgstr "Неверный URL Shadowsocks: отсутствует порт"
|
||||
|
||||
msgid "Invalid port number. Must be between 1 and 65535"
|
||||
msgstr "Неверный номер порта. Должен быть между 1 и 65535"
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
|
||||
msgstr "Неверный URL Shadowsocks: отсутствует или неверный формат сервера/порта"
|
||||
|
||||
msgid "Invalid VLESS URL: missing UUID"
|
||||
msgstr "Неверный URL VLESS: отсутствует UUID"
|
||||
|
||||
msgid "Invalid VLESS URL: missing server address"
|
||||
msgstr "Неверный URL VLESS: отсутствует адрес сервера"
|
||||
|
||||
msgid "Invalid VLESS URL: missing server"
|
||||
msgstr "Неверный URL VLESS: отсутствует сервер"
|
||||
|
||||
msgid "Invalid VLESS URL: missing port"
|
||||
msgstr "Неверный URL VLESS: отсутствует порт"
|
||||
|
||||
msgid "Invalid VLESS URL: missing or invalid server/port format"
|
||||
msgstr "Неверный URL VLESS: отсутствует или неверный формат сервера/порта"
|
||||
|
||||
msgid "Invalid VLESS URL: missing query parameters"
|
||||
msgstr "Неверный URL VLESS: отсутствуют параметры запроса"
|
||||
|
||||
msgid "Invalid VLESS URL: missing type parameter"
|
||||
msgstr "Неверный URL VLESS: отсутствует параметр type"
|
||||
|
||||
msgid "Invalid VLESS URL: missing security parameter"
|
||||
msgstr "Неверный URL VLESS: отсутствует параметр security"
|
||||
|
||||
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
|
||||
msgstr "Неверный URL VLESS: отсутствует параметр pbk для security reality"
|
||||
|
||||
msgid "Invalid VLESS URL: missing fp parameter for reality security"
|
||||
msgstr "Неверный URL VLESS: отсутствует параметр fp для security reality"
|
||||
|
||||
msgid "Invalid VLESS URL: missing sni parameter for tls security"
|
||||
msgstr "Неверный URL VLESS: отсутствует параметр sni для security tls"
|
||||
|
||||
msgid "Invalid URL format: %s"
|
||||
msgstr "Неверный формат URL: %s"
|
||||
|
||||
msgid "Remote Domain Lists URL"
|
||||
msgstr "URL удаленных списков доменов"
|
||||
|
||||
msgid "Enter URL to download domain list"
|
||||
msgstr "Введите URL для загрузки списка доменов"
|
||||
|
||||
msgid "Update Interval"
|
||||
msgstr "Интервал обновления"
|
||||
|
||||
msgid "Select how often to update the lists"
|
||||
msgstr "Выберите, как часто обновлять списки"
|
||||
|
||||
msgid "Last Update"
|
||||
msgstr "Последнее обновление"
|
||||
|
||||
msgid "Last update time"
|
||||
msgstr "Время последнего обновления"
|
||||
|
||||
msgid "Next Update"
|
||||
msgstr "Следующее обновление"
|
||||
|
||||
msgid "Next scheduled update time"
|
||||
msgstr "Время следующего запланированного обновления"
|
||||
|
||||
msgid "Version"
|
||||
msgstr "Версия"
|
||||
|
||||
msgid "Component version"
|
||||
msgstr "Версия компонента"
|
||||
|
||||
msgid "Installed"
|
||||
msgstr "Установлено"
|
||||
|
||||
msgid "Not installed"
|
||||
msgstr "Не установлено"
|
||||
|
||||
msgid "Unknown version"
|
||||
msgstr "Неизвестная версия"
|
||||
|
||||
msgid "Error parsing version"
|
||||
msgstr "Ошибка разбора версии"
|
||||
|
||||
msgid "Error parsing status"
|
||||
msgstr "Ошибка разбора статуса"
|
||||
|
||||
msgid "Service is running"
|
||||
msgstr "Сервис запущен"
|
||||
|
||||
msgid "Service is stopped"
|
||||
msgstr "Сервис остановлен"
|
||||
|
||||
msgid "Service is enabled"
|
||||
msgstr "Сервис включен"
|
||||
|
||||
msgid "Service is disabled"
|
||||
msgstr "Сервис отключен"
|
||||
|
||||
msgid "Service Status"
|
||||
msgstr "Статус сервиса"
|
||||
|
||||
msgid "working"
|
||||
msgstr "работает"
|
||||
|
||||
msgid "not working"
|
||||
msgstr "не работает"
|
||||
|
||||
msgid "check error"
|
||||
msgstr "ошибка проверки"
|
||||
|
||||
msgid "Diagnostic check in progress..."
|
||||
msgstr "Выполняется диагностическая проверка..."
|
||||
|
||||
msgid "Diagnostic check completed"
|
||||
msgstr "Диагностическая проверка завершена"
|
||||
|
||||
msgid "Diagnostic check failed"
|
||||
msgstr "Диагностическая проверка не удалась"
|
||||
|
||||
msgid "Update in progress..."
|
||||
msgstr "Выполняется обновление..."
|
||||
|
||||
msgid "Update completed"
|
||||
msgstr "Обновление завершено"
|
||||
|
||||
msgid "Update failed"
|
||||
msgstr "Обновление не удалось"
|
||||
|
||||
msgid "Check in progress..."
|
||||
msgstr "Выполняется проверка..."
|
||||
|
||||
msgid "Check completed"
|
||||
msgstr "Проверка завершена"
|
||||
|
||||
msgid "Check failed"
|
||||
msgstr "Проверка не удалась"
|
||||
|
||||
msgid "Version Information"
|
||||
msgstr "Информация о версии"
|
||||
|
||||
msgid "Copied!"
|
||||
msgstr "Скопировано!"
|
||||
|
||||
msgid "Podkop Status"
|
||||
msgstr "Статус Podkop"
|
||||
|
||||
msgid "Start Podkop"
|
||||
msgstr "Запустить Podkop"
|
||||
|
||||
msgid "Stop Podkop"
|
||||
msgstr "Остановить Podkop"
|
||||
|
||||
msgid "Restart Podkop"
|
||||
msgstr "Перезапустить Podkop"
|
||||
|
||||
msgid "Enable Podkop"
|
||||
msgstr "Включить Podkop"
|
||||
|
||||
msgid "Disable Podkop"
|
||||
msgstr "Отключить Podkop"
|
||||
|
||||
msgid "Loading diagnostics..."
|
||||
msgstr "Загрузка диагностики..."
|
||||
|
||||
msgid "Error loading diagnostics"
|
||||
msgstr "Ошибка загрузки диагностики"
|
||||
|
||||
msgid "Sing-box Status"
|
||||
msgstr "Статус Sing-box"
|
||||
|
||||
msgid "Diagnostic Tools"
|
||||
msgstr "Инструменты диагностики"
|
||||
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестно"
|
||||
|
||||
msgid "Device Model: "
|
||||
msgstr "Модель устройства: "
|
||||
|
||||
msgid "OpenWrt Version: "
|
||||
msgstr "Версия OpenWrt: "
|
||||
|
||||
msgid "Sing-box: "
|
||||
msgstr "Sing-box: "
|
||||
|
||||
msgid "LuCI App: "
|
||||
msgstr "LuCI App: "
|
||||
|
||||
msgid "Podkop: "
|
||||
msgstr "Podkop: "
|
||||
|
||||
msgid "Check NFT Rules"
|
||||
msgstr "Проверить правила NFT"
|
||||
|
||||
msgid "Update Lists"
|
||||
msgstr "Обновить списки"
|
||||
|
||||
msgid "Lists Update Results"
|
||||
msgstr "Результаты обновления списков"
|
||||
@@ -25,18 +25,318 @@ msgstr ""
|
||||
msgid "Select between VPN and Proxy connection methods for traffic routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configuration Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how to configure the proxy"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connection URL"
|
||||
msgstr ""
|
||||
|
||||
msgid "Outbound Config"
|
||||
msgstr ""
|
||||
|
||||
msgid "Proxy Configuration URL"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter connection string starting with vless:// or ss:// for proxy configuration"
|
||||
msgstr ""
|
||||
|
||||
msgid "Outbound Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter complete outbound configuration in JSON format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Network Interface"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select network interface for VPN connection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Community Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select predefined service for routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Domain List Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how to add your custom domains"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dynamic List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text List"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Domains"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Domains List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Local Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use the list from the router filesystem"
|
||||
msgstr ""
|
||||
|
||||
msgid "Local Domain Lists Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter to the list file path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download and use domain lists from remote URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Domain URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter full URLs starting with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnet List Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how to add your custom subnets"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text List (comma/space/newline separated)"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnets"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnets List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Subnet Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download and use subnet lists from remote URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Subnet URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP for full redirection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
||||
msgstr ""
|
||||
|
||||
msgid "Local IPs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter valid IPv4 addresses"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP for exclusion"
|
||||
msgstr ""
|
||||
|
||||
msgid "Specify local IP addresses that will never use the configured route"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mixed enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Browser port: 2080"
|
||||
msgstr ""
|
||||
|
||||
msgid "Yacd enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Exclude NTP"
|
||||
msgstr ""
|
||||
|
||||
msgid "For issues with open connections sing-box"
|
||||
msgstr ""
|
||||
|
||||
msgid "QUIC disable"
|
||||
msgstr ""
|
||||
|
||||
msgid "For issues with the video stream"
|
||||
msgstr ""
|
||||
|
||||
msgid "List Update Frequency"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how often the lists will be updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every hour"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 2 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 3 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 4 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 6 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 12 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every day"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 3 days"
|
||||
msgstr ""
|
||||
|
||||
msgid "Once a day at 04:00"
|
||||
msgstr ""
|
||||
|
||||
msgid "Once a week on Sunday at 04:00"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
|
||||
msgstr ""
|
||||
|
||||
msgid "URL must use http:// or https:// protocol"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid URL format. URL must start with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP address parts must be between 0 and 255"
|
||||
msgstr ""
|
||||
|
||||
msgid "CIDR must be between 0 and 32"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid domain format: %s. Enter domain without protocol"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP parts must be between 0 and 255 in: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "CIDR must be between 0 and 32 in: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid path format. Path must start with \"/\" and contain only valid characters (letters, numbers, \"-\", \"_\", \"/\", \".\")"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid path format"
|
||||
msgstr ""
|
||||
|
||||
msgid "JSON must contain at least type, server and server_port fields"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid JSON format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||
msgstr ""
|
||||
|
||||
msgid "Regional options cannot be used together"
|
||||
msgstr ""
|
||||
|
||||
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s already in Russia inside and have been removed from selection."
|
||||
msgstr ""
|
||||
|
||||
msgid "Russia inside restrictions"
|
||||
msgstr ""
|
||||
|
||||
msgid "URL must start with vless:// or ss://"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Shadowsocks URL format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing server address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing server"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing port"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid port number. Must be between 1 and 65535"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing UUID"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing server address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing server"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing port"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing or invalid server/port format"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing query parameters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing type parameter"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing security parameter"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing fp parameter for reality security"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid VLESS URL: missing sni parameter for tls security"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid URL format: %s"
|
||||
msgstr ""
|
||||
|
||||
msgid "Community Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
@@ -64,292 +364,169 @@ msgstr ""
|
||||
msgid "Enable and manage your custom list of domains for selective routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Domains"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download and use domain lists from remote URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Domain URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter full URLs starting with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnet List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable and manage your custom list of IP subnets for selective routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnets"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter subnet in CIDR notation (example: 103.21.244.0/22)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Subnet Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Download and use subnet lists from remote URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Subnet URLs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Domain Exclusions"
|
||||
msgstr ""
|
||||
|
||||
msgid "Exclude specific domains from routing rules"
|
||||
msgstr ""
|
||||
|
||||
msgid "Excluded Domains"
|
||||
msgstr ""
|
||||
|
||||
msgid "Domains to be excluded from routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP for full redirection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Specify local IP addresses whose traffic will always use the configured route"
|
||||
msgstr ""
|
||||
|
||||
msgid "Local IPs"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter valid IPv4 addresses"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP for exclusion"
|
||||
msgstr ""
|
||||
|
||||
msgid "Specify local IP addresses that will never use the configured route"
|
||||
msgstr ""
|
||||
|
||||
msgid "List Update Frequency"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how often the lists will be updated"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every hour"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 2 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 4 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 6 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Every 12 hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "Once a day at 04:00"
|
||||
msgstr ""
|
||||
|
||||
msgid "Once a week on Sunday at 04:00"
|
||||
msgstr ""
|
||||
|
||||
msgid "Yacd enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Mixed enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Browser port: 2080"
|
||||
msgstr ""
|
||||
|
||||
msgid "Exclude NTP"
|
||||
msgstr ""
|
||||
|
||||
msgid "For issues with open connections sing-box"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service Domain List Enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable predefined service domain lists for routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select predefined services for routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Domains"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subnet List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure custom subnets for routing"
|
||||
msgstr ""
|
||||
|
||||
msgid "Subnets"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
|
||||
msgstr ""
|
||||
|
||||
msgid "URL must use http:// or https:// protocol"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid URL format. URL must start with http:// or https://"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid subnet format. Use format: X.X.X.X/Y (like 103.21.244.0/22)"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP address parts must be between 0 and 255"
|
||||
msgstr ""
|
||||
|
||||
msgid "CIDR must be between 0 and 32"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Domain List Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how to add your custom domains"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dynamic List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text List"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Domains List"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid domain format: %s. Enter domain without protocol"
|
||||
msgid "Remote Domain Lists URL"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnet List Type"
|
||||
msgid "Enter URL to download domain list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how to add your custom subnets"
|
||||
msgid "Update Interval"
|
||||
msgstr ""
|
||||
|
||||
msgid "Text List (comma/space/newline separated)"
|
||||
msgid "Select how often to update the lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
|
||||
msgid "Last Update"
|
||||
msgstr ""
|
||||
|
||||
msgid "User Subnets List"
|
||||
msgid "Last update time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
|
||||
msgid "Next Update"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
|
||||
msgid "Next scheduled update time"
|
||||
msgstr ""
|
||||
|
||||
msgid "IP parts must be between 0 and 255 in: %s"
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configuration Type"
|
||||
msgid "Component version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how to configure the proxy"
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connection URL"
|
||||
msgid "Not installed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Outbound Config"
|
||||
msgid "Unknown version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Outbound Configuration"
|
||||
msgid "Error parsing version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter complete outbound configuration in JSON format"
|
||||
msgid "Error parsing status"
|
||||
msgstr ""
|
||||
|
||||
msgid "JSON must contain at least type, server and server_port fields"
|
||||
msgid "Service is running"
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid JSON format"
|
||||
msgid "Service is stopped"
|
||||
msgstr ""
|
||||
|
||||
msgid "Diagnostics"
|
||||
msgid "Service is enabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Main Check"
|
||||
msgid "Service is disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run a comprehensive diagnostic check of all components"
|
||||
msgid "Service Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Run Check"
|
||||
msgid "working"
|
||||
msgstr ""
|
||||
|
||||
msgid "Full Diagnostic Results"
|
||||
msgid "not working"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to copy: "
|
||||
msgid "check error"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to Clipboard"
|
||||
msgid "Diagnostic check in progress..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Close"
|
||||
msgid "Diagnostic check completed"
|
||||
msgstr ""
|
||||
|
||||
msgid "No output"
|
||||
msgid "Diagnostic check failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "System Logs"
|
||||
msgid "Update in progress..."
|
||||
msgstr ""
|
||||
|
||||
msgid "View recent system logs related to Podkop"
|
||||
msgid "Update completed"
|
||||
msgstr ""
|
||||
|
||||
msgid "View Logs"
|
||||
msgid "Update failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Failed to copy logs: "
|
||||
msgid "Check in progress..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Show Config"
|
||||
msgid "Check completed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show current podkop configuration with masked sensitive data"
|
||||
msgid "Check failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Podkop Configuration"
|
||||
msgid "Version Information"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update lists"
|
||||
msgid "Copied!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update all lists in config"
|
||||
msgid "Podkop Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "List Update"
|
||||
msgid "Start Podkop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Lists will be updated in background. You can check the progress in system logs."
|
||||
msgid "Stop Podkop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Restart Podkop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable Podkop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable Podkop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Loading diagnostics..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Error loading diagnostics"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sing-box Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Diagnostic Tools"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
msgid "Device Model: "
|
||||
msgstr ""
|
||||
|
||||
msgid "OpenWrt Version: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Sing-box: "
|
||||
msgstr ""
|
||||
|
||||
msgid "LuCI App: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Podkop: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Check NFT Rules"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Lists Update Results"
|
||||
msgstr ""
|
||||
|
||||
msgid "Extra configurations"
|
||||
@@ -361,25 +538,7 @@ msgstr ""
|
||||
msgid "Add Section"
|
||||
msgstr ""
|
||||
|
||||
msgid "QUIC disable"
|
||||
msgstr ""
|
||||
|
||||
msgid "For issues with the video stream"
|
||||
msgstr ""
|
||||
|
||||
msgid "Community Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Local Domain Lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Use the list from the router filesystem"
|
||||
msgstr ""
|
||||
|
||||
msgid "Local Domain Lists Path"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter to the list file path"
|
||||
msgid "Lists Update Results"
|
||||
msgstr ""
|
||||
|
||||
msgid "Proxy Check"
|
||||
@@ -463,18 +622,236 @@ msgstr ""
|
||||
msgid "Lists Update Results"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s have been removed from selection."
|
||||
msgid "Success"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Regional options cannot be used together"
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js:XXX
|
||||
msgid "Russia inside restrictions"
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
msgid "Debug"
|
||||
msgstr ""
|
||||
|
||||
msgid "Trace"
|
||||
msgstr ""
|
||||
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
msgid "Apply"
|
||||
msgstr ""
|
||||
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
msgid "Move Up"
|
||||
msgstr ""
|
||||
|
||||
msgid "Move Down"
|
||||
msgstr ""
|
||||
|
||||
msgid "Expand"
|
||||
msgstr ""
|
||||
|
||||
msgid "Collapse"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show"
|
||||
msgstr ""
|
||||
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
msgid "Refresh"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
|
||||
msgid "Uninstall"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
msgid "Basic"
|
||||
msgstr ""
|
||||
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
msgid "Management"
|
||||
msgstr ""
|
||||
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
msgid "Network"
|
||||
msgstr ""
|
||||
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remote Domain Lists URL"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter URL to download domain list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update Interval"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select how often to update the lists"
|
||||
msgstr ""
|
||||
|
||||
msgid "Last Update"
|
||||
msgstr ""
|
||||
|
||||
msgid "Last update time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Next Update"
|
||||
msgstr ""
|
||||
|
||||
msgid "Next scheduled update time"
|
||||
msgstr ""
|
||||
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Component version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Installed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not installed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Unknown version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Error parsing version"
|
||||
msgstr ""
|
||||
|
||||
msgid "Error parsing status"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service is running"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service is stopped"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service is enabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service is disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Service Status"
|
||||
msgstr ""
|
||||
|
||||
msgid "working"
|
||||
msgstr ""
|
||||
|
||||
msgid "not working"
|
||||
msgstr ""
|
||||
|
||||
msgid "check error"
|
||||
msgstr ""
|
||||
|
||||
msgid "Diagnostic check in progress..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Diagnostic check completed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Diagnostic check failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update in progress..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Update completed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update failed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check in progress..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Check completed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Check failed"
|
||||
msgstr ""
|
||||
@@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=podkop
|
||||
PKG_VERSION:=0.3.10
|
||||
PKG_VERSION:=0.3.11
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_MAINTAINER:=ITDog <podkop@itdog.info>
|
||||
|
||||
@@ -29,5 +29,6 @@ config main 'main'
|
||||
option socks5 '0'
|
||||
option exclude_ntp '0'
|
||||
option quic_disable '0'
|
||||
option dont_touch_dhcp '0'
|
||||
option update_interval '1d'
|
||||
option custom_domains_text
|
||||
@@ -7,7 +7,7 @@ script=$(readlink "$initscript")
|
||||
NAME="$(basename ${script:-$initscript})"
|
||||
config_load "$NAME"
|
||||
|
||||
EXTRA_COMMANDS="main list_update check_proxy check_nft check_github check_logs check_sing_box_connections check_sing_box_logs check_dnsmasq show_config show_version show_sing_box_config"
|
||||
EXTRA_COMMANDS="main list_update check_proxy check_nft check_github check_logs check_sing_box_connections check_sing_box_logs check_dnsmasq show_config show_version show_sing_box_config show_luci_version show_sing_box_version show_system_info get_status get_sing_box_status"
|
||||
EXTRA_HELP=" list_update Updating domain and subnet lists
|
||||
check_proxy Check if sing-box proxy works correctly
|
||||
check_nft Show PodkopTable nftables rules
|
||||
@@ -18,7 +18,11 @@ EXTRA_HELP=" list_update Updating domain and subnet lists
|
||||
check_dnsmasq Show current DNSMasq configuration
|
||||
show_config Show current configuration with masked sensitive data
|
||||
show_version Show current version
|
||||
show_sing_box_config Show current sing-box configuration"
|
||||
show_sing_box_config Show current sing-box configuration
|
||||
show_luci_version Show LuCI app version
|
||||
show_sing_box_version Show sing-box version
|
||||
show_system_info Show OpenWrt version and device model
|
||||
get_sing_box_status Get sing-box status"
|
||||
|
||||
[ ! -L /usr/sbin/podkop ] && ln -s /etc/init.d/podkop /usr/sbin/podkop
|
||||
|
||||
@@ -71,7 +75,11 @@ start_service() {
|
||||
stop_service() {
|
||||
log "Stopping the podkop"
|
||||
remove_cron_job
|
||||
dnsmasq_rm
|
||||
|
||||
config_get_bool dont_touch_dhcp "main" "dont_touch_dhcp" "0"
|
||||
if [ "$dont_touch_dhcp" -eq 0 ]; then
|
||||
dnsmasq_restore
|
||||
fi
|
||||
|
||||
rm -rf /tmp/podkop/*.lst
|
||||
|
||||
@@ -149,6 +157,7 @@ main() {
|
||||
sing_box_dns
|
||||
sing_box_dns_rule_fakeip
|
||||
sing_box_rule_dns
|
||||
sing_box_add_secure_dns_probe_domain
|
||||
sing_box_cache_file
|
||||
process_socks5
|
||||
|
||||
@@ -200,7 +209,10 @@ main() {
|
||||
config_get interface "main" "interface"
|
||||
|
||||
if [ -n "$proxy_string" ] || [ -n "$interface" ]; then
|
||||
dnsmasq_add
|
||||
config_get_bool dont_touch_dhcp "main" "dont_touch_dhcp" "0"
|
||||
if [ "$dont_touch_dhcp" -eq 0 ]; then
|
||||
dnsmasq_add_resolver
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -247,6 +259,12 @@ migration() {
|
||||
log "Found and removed filter-rr=HTTPS in dnsmasq config"
|
||||
sed -i '/^filter-rr=HTTPS/d' "/etc/dnsmasq.conf"
|
||||
fi
|
||||
|
||||
# dhcp use-application-dns.net
|
||||
if grep -q "use-application-dns.net" "/etc/config/dhcp"; then
|
||||
log "Found and removed use-application-dns.net in dhcp config"
|
||||
sed -i '/use-application-dns/d' "/etc/config/dhcp"
|
||||
fi
|
||||
}
|
||||
|
||||
validate_service() {
|
||||
@@ -310,27 +328,71 @@ create_nft_table() {
|
||||
nft add rule inet $table proxy meta mark 0x105 meta l4proto udp tproxy ip to :1602 counter
|
||||
}
|
||||
|
||||
dnsmasq_add() {
|
||||
## Future: Check config and skip restart
|
||||
save_dnsmasq_config() {
|
||||
local key="$1"
|
||||
local backup_key="$2"
|
||||
value=$(uci get "$key" 2>/dev/null)
|
||||
|
||||
if [ -z "$value" ]; then
|
||||
uci -q delete "$backup_key"
|
||||
else
|
||||
uci set "$backup_key"="$value"
|
||||
fi
|
||||
}
|
||||
|
||||
dnsmasq_add_resolver() {
|
||||
log "Save dnsmasq config"
|
||||
save_dnsmasq_config "dhcp.@dnsmasq[0].noresolv" "dhcp.@dnsmasq[0].podkop_noresolv"
|
||||
save_dnsmasq_config "dhcp.@dnsmasq[0].cachesize" "dhcp.@dnsmasq[0].podkop_cachesize"
|
||||
|
||||
uci -q delete dhcp.@dnsmasq[0].podkop_server
|
||||
for server in $(uci get dhcp.@dnsmasq[0].server 2>/dev/null); do
|
||||
if [[ "$server" == "127.0.0.42" ]]; then
|
||||
log "Dnsmasq save config error: server=127.0.0.42"
|
||||
else
|
||||
uci add_list dhcp.@dnsmasq[0].podkop_server="$server"
|
||||
fi
|
||||
done
|
||||
|
||||
log "Configure dnsmasq for sing-box"
|
||||
uci set dhcp.@dnsmasq[0].noresolv="1"
|
||||
uci set dhcp.@dnsmasq[0].filter_aaaa="1"
|
||||
uci set dhcp.@dnsmasq[0].cachesize="0"
|
||||
uci -q delete dhcp.@dnsmasq[0].server
|
||||
uci add_list dhcp.@dnsmasq[0].server="127.0.0.42"
|
||||
uci add_list dhcp.@dnsmasq[0].server='/use-application-dns.net/'
|
||||
uci commit dhcp
|
||||
|
||||
/etc/init.d/dnsmasq restart
|
||||
}
|
||||
|
||||
dnsmasq_rm() {
|
||||
dnsmasq_restore() {
|
||||
log "Removing configuration for dnsmasq"
|
||||
uci set dhcp.@dnsmasq[0].noresolv="0"
|
||||
uci set dhcp.@dnsmasq[0].filter_aaaa="0"
|
||||
uci set dhcp.@dnsmasq[0].cachesize="1000"
|
||||
uci -q delete dhcp.@dnsmasq[0].server
|
||||
uci add_list dhcp.@dnsmasq[0].server="8.8.8.8"
|
||||
|
||||
local cachesize=$(uci get dhcp.@dnsmasq[0].podkop_cachesize 2>/dev/null)
|
||||
if [ -z "$cachesize" ]; then
|
||||
log "dnsmasq revert: cachesize is unset"
|
||||
else
|
||||
uci set dhcp.@dnsmasq[0].cachesize="$cachesize"
|
||||
fi
|
||||
|
||||
local noresolv=$(uci get dhcp.@dnsmasq[0].podkop_noresolv 2>/dev/null)
|
||||
if [ -z "$noresolv" ]; then
|
||||
log "dnsmasq revert: noresolv is unset"
|
||||
else
|
||||
uci set dhcp.@dnsmasq[0].noresolv="$noresolv"
|
||||
fi
|
||||
|
||||
local server=$(uci get dhcp.@dnsmasq[0].server 2>/dev/null)
|
||||
if [[ "$server" == "127.0.0.42" ]]; then
|
||||
uci -q delete dhcp.@dnsmasq[0].server
|
||||
for server in $(uci get dhcp.@dnsmasq[0].podkop_server 2>/dev/null); do
|
||||
uci add_list dhcp.@dnsmasq[0].server="$server"
|
||||
done
|
||||
uci delete dhcp.@dnsmasq[0].podkop_server
|
||||
fi
|
||||
|
||||
uci delete dhcp.@dnsmasq[0].podkop_cachesize
|
||||
uci delete dhcp.@dnsmasq[0].podkop_noresolv
|
||||
|
||||
uci commit dhcp
|
||||
|
||||
/etc/init.d/dnsmasq restart
|
||||
@@ -595,6 +657,12 @@ sing_box_dns_rule_fakeip() {
|
||||
"action": "reject"
|
||||
},
|
||||
{
|
||||
"domain_suffix": [
|
||||
"use-application-dns.net"
|
||||
],
|
||||
"action": "reject"
|
||||
},
|
||||
{
|
||||
"server": "fakeip-server",
|
||||
"rule_set": []
|
||||
}
|
||||
@@ -1609,3 +1677,125 @@ show_version() {
|
||||
local version=$(opkg info podkop | grep -m 1 "Version:" | cut -d' ' -f2)
|
||||
echo "$version"
|
||||
}
|
||||
|
||||
show_luci_version() {
|
||||
local version=$(opkg info luci-app-podkop | grep -m 1 "Version:" | cut -d' ' -f2)
|
||||
echo "$version"
|
||||
}
|
||||
|
||||
show_sing_box_version() {
|
||||
local version=$(opkg info sing-box | grep -m 1 "Version:" | cut -d' ' -f2)
|
||||
echo "$version"
|
||||
}
|
||||
|
||||
show_system_info() {
|
||||
echo "=== OpenWrt Version ==="
|
||||
grep OPENWRT_RELEASE /etc/os-release | cut -d'"' -f2
|
||||
echo
|
||||
echo "=== Device Model ==="
|
||||
cat /tmp/sysinfo/model
|
||||
}
|
||||
|
||||
get_sing_box_status() {
|
||||
local running=0
|
||||
local enabled=0
|
||||
local status=""
|
||||
local version=""
|
||||
|
||||
# Check if service is enabled
|
||||
if [ -x /etc/rc.d/S99sing-box ]; then
|
||||
enabled=1
|
||||
fi
|
||||
|
||||
# Check if service is running
|
||||
if pgrep -f "sing-box" >/dev/null; then
|
||||
running=1
|
||||
version=$(sing-box version | head -n 1 | awk '{print $3}')
|
||||
fi
|
||||
|
||||
# Format status message
|
||||
if [ $running -eq 1 ]; then
|
||||
if [ $enabled -eq 1 ]; then
|
||||
status="running & enabled"
|
||||
else
|
||||
status="running but disabled"
|
||||
fi
|
||||
else
|
||||
if [ $enabled -eq 1 ]; then
|
||||
status="stopped but enabled"
|
||||
else
|
||||
status="stopped & disabled"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "{\"running\":$running,\"enabled\":$enabled,\"status\":\"$status\"}"
|
||||
}
|
||||
|
||||
get_status() {
|
||||
local running=0
|
||||
local enabled=0
|
||||
local status=""
|
||||
|
||||
# Check if service is enabled
|
||||
if [ -x /etc/rc.d/S99podkop ]; then
|
||||
enabled=1
|
||||
fi
|
||||
|
||||
# Check if service is running
|
||||
if pgrep -f "sing-box" >/dev/null; then
|
||||
running=1
|
||||
fi
|
||||
|
||||
# Format status message
|
||||
if [ $running -eq 1 ]; then
|
||||
if [ $enabled -eq 1 ]; then
|
||||
status="running & enabled"
|
||||
else
|
||||
status="running but disabled"
|
||||
fi
|
||||
else
|
||||
if [ $enabled -eq 1 ]; then
|
||||
status="stopped but enabled"
|
||||
else
|
||||
status="stopped & disabled"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "{\"running\":$running,\"enabled\":$enabled,\"status\":\"$status\"}"
|
||||
}
|
||||
|
||||
sing_box_add_secure_dns_probe_domain() {
|
||||
local domain="httpbin.org"
|
||||
local override_address="numbersapi.com"
|
||||
|
||||
if [ -z "$override_address" ]; then
|
||||
log "Error: Could not get br-lan IP address"
|
||||
return 1
|
||||
fi
|
||||
|
||||
log "Adding DNS probe domain ${domain} to fakeip-server configuration"
|
||||
|
||||
jq \
|
||||
--arg domain "$domain" \
|
||||
--arg override "$override_address" \
|
||||
'.dns.rules |= map(
|
||||
if .server == "fakeip-server" then
|
||||
{
|
||||
"server": .server,
|
||||
"domain": $domain,
|
||||
"rule_set": .rule_set
|
||||
}
|
||||
else
|
||||
.
|
||||
end
|
||||
) |
|
||||
.route.rules |= . + [
|
||||
{
|
||||
"domain": $domain,
|
||||
"action": "route-options",
|
||||
"override_address": $override
|
||||
}
|
||||
]' "$SING_BOX_CONFIG" >/tmp/sing-box-config-tmp.json && mv /tmp/sing-box-config-tmp.json "$SING_BOX_CONFIG"
|
||||
|
||||
log "DNS probe domain ${domain} configured with override to ${override_address}"
|
||||
}
|
||||
Reference in New Issue
Block a user