feat: implement WebRTC Leak Protection and Strict DNS DoQ Enforcer

This commit is contained in:
Dushnilin
2026-07-30 21:43:56 +03:00
parent 7e64eb10b1
commit 7757ceae6a
9 changed files with 275 additions and 157 deletions
+76 -48
View File
@@ -346,7 +346,7 @@
"call": "Administrator Chat IDs", "call": "Administrator Chat IDs",
"key": "Administrator Chat IDs", "key": "Administrator Chat IDs",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1849" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1868"
] ]
}, },
{ {
@@ -495,7 +495,7 @@
"call": "At least one Admin Chat ID is required", "call": "At least one Admin Chat ID is required",
"key": "At least one Admin Chat ID is required", "key": "At least one Admin Chat ID is required",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1860" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1879"
] ]
}, },
{ {
@@ -537,7 +537,7 @@
"call": "Auto-detected domains", "call": "Auto-detected domains",
"key": "Auto-detected domains", "key": "Auto-detected domains",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1652" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1671"
] ]
}, },
{ {
@@ -551,7 +551,7 @@
"call": "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy.", "call": "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy.",
"key": "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy.", "key": "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1613", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1632",
"src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:388" "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:388"
] ]
}, },
@@ -654,7 +654,7 @@
"call": "Bot Status", "call": "Bot Status",
"key": "Bot Status", "key": "Bot Status",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1811" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1830"
] ]
}, },
{ {
@@ -949,7 +949,7 @@
"key": "Checking…", "key": "Checking…",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:175", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:175",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1703" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1722"
] ]
}, },
{ {
@@ -1144,7 +1144,7 @@
"call": "Comma-separated list of Telegram user IDs authorized to control the bot.", "call": "Comma-separated list of Telegram user IDs authorized to control the bot.",
"key": "Comma-separated list of Telegram user IDs authorized to control the bot.", "key": "Comma-separated list of Telegram user IDs authorized to control the bot.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1850" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1869"
] ]
}, },
{ {
@@ -1384,6 +1384,13 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3287" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:3287"
] ]
}, },
{
"call": "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC.",
"key": "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC.",
"places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1582"
]
},
{ {
"call": "detour must be a non-empty string", "call": "detour must be a non-empty string",
"key": "detour must be a non-empty string", "key": "detour must be a non-empty string",
@@ -1755,7 +1762,7 @@
"call": "Domain test sections", "call": "Domain test sections",
"key": "Domain test sections", "key": "Domain test sections",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1624" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1643"
] ]
}, },
{ {
@@ -1999,7 +2006,7 @@
"call": "Enable Smart Detect", "call": "Enable Smart Detect",
"key": "Enable Smart Detect", "key": "Enable Smart Detect",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1612", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1631",
"src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:405" "src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:405"
] ]
}, },
@@ -2007,7 +2014,7 @@
"call": "Enable Telegram Bot", "call": "Enable Telegram Bot",
"key": "Enable Telegram Bot", "key": "Enable Telegram Bot",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1821" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1840"
] ]
}, },
{ {
@@ -2028,7 +2035,7 @@
"call": "Enable Watchdog", "call": "Enable Watchdog",
"key": "Enable Watchdog", "key": "Enable Watchdog",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1588" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1607"
] ]
}, },
{ {
@@ -2049,14 +2056,14 @@
"call": "Enables the background daemon that polls Telegram for commands and sends notifications.", "call": "Enables the background daemon that polls Telegram for commands and sends notifications.",
"key": "Enables the background daemon that polls Telegram for commands and sends notifications.", "key": "Enables the background daemon that polls Telegram for commands and sends notifications.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1822" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1841"
] ]
}, },
{ {
"call": "Enables the background watchdog process to monitor services and auto-recover on failures.", "call": "Enables the background watchdog process to monitor services and auto-recover on failures.",
"key": "Enables the background watchdog process to monitor services and auto-recover on failures.", "key": "Enables the background watchdog process to monitor services and auto-recover on failures.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1589" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1608"
] ]
}, },
{ {
@@ -2102,7 +2109,7 @@
"call": "Enter the API token obtained from @BotFather.", "call": "Enter the API token obtained from @BotFather.",
"key": "Enter the API token obtained from @BotFather.", "key": "Enter the API token obtained from @BotFather.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1833" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1852"
] ]
}, },
{ {
@@ -2178,14 +2185,14 @@
"call": "Exclude NTP", "call": "Exclude NTP",
"key": "Exclude NTP", "key": "Exclude NTP",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1580" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1599"
] ]
}, },
{ {
"call": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN", "call": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN",
"key": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN", "key": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1581" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1600"
] ]
}, },
{ {
@@ -2364,7 +2371,7 @@
"call": "Failed to start bot", "call": "Failed to start bot",
"key": "Failed to start bot", "key": "Failed to start bot",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1767" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1786"
] ]
}, },
{ {
@@ -2378,7 +2385,7 @@
"call": "Failed to stop bot", "call": "Failed to stop bot",
"key": "Failed to stop bot", "key": "Failed to stop bot",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1781" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1800"
] ]
}, },
{ {
@@ -2487,6 +2494,13 @@
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8867" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8867"
] ]
}, },
{
"call": "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding.",
"key": "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding.",
"places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1591"
]
},
{ {
"call": "France (fr)", "call": "France (fr)",
"key": "France (fr)", "key": "France (fr)",
@@ -2776,7 +2790,7 @@
"call": "How often to check Telegram for new messages (default: 5).", "call": "How often to check Telegram for new messages (default: 5).",
"key": "How often to check Telegram for new messages (default: 5).", "key": "How often to check Telegram for new messages (default: 5).",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1873" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1892"
] ]
}, },
{ {
@@ -3669,7 +3683,7 @@
"call": "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section.", "call": "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section.",
"key": "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section.", "key": "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1653" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1672"
] ]
}, },
{ {
@@ -3919,7 +3933,7 @@
"call": "Must be a comma-separated list of numeric IDs", "call": "Must be a comma-separated list of numeric IDs",
"key": "Must be a comma-separated list of numeric IDs", "key": "Must be a comma-separated list of numeric IDs",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1863" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1882"
] ]
}, },
{ {
@@ -4082,7 +4096,7 @@
"call": "No domains detected yet", "call": "No domains detected yet",
"key": "No domains detected yet", "key": "No domains detected yet",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1668" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1687"
] ]
}, },
{ {
@@ -4244,42 +4258,42 @@
"call": "Notify on Certificate Warnings", "call": "Notify on Certificate Warnings",
"key": "Notify on Certificate Warnings", "key": "Notify on Certificate Warnings",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1945" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1964"
] ]
}, },
{ {
"call": "Notify on Core Crashes", "call": "Notify on Core Crashes",
"key": "Notify on Core Crashes", "key": "Notify on Core Crashes",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1893" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1912"
] ]
}, },
{ {
"call": "Notify on DNS Leaks", "call": "Notify on DNS Leaks",
"key": "Notify on DNS Leaks", "key": "Notify on DNS Leaks",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1958" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1977"
] ]
}, },
{ {
"call": "Notify on Server Switches", "call": "Notify on Server Switches",
"key": "Notify on Server Switches", "key": "Notify on Server Switches",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1919" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1938"
] ]
}, },
{ {
"call": "Notify on Service Restarts", "call": "Notify on Service Restarts",
"key": "Notify on Service Restarts", "key": "Notify on Service Restarts",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1906" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1925"
] ]
}, },
{ {
"call": "Notify on Subscription Updates", "call": "Notify on Subscription Updates",
"key": "Notify on Subscription Updates", "key": "Notify on Subscription Updates",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1932" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1951"
] ]
}, },
{ {
@@ -4628,14 +4642,14 @@
"call": "Polling Interval (seconds)", "call": "Polling Interval (seconds)",
"key": "Polling Interval (seconds)", "key": "Polling Interval (seconds)",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1872" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1891"
] ]
}, },
{ {
"call": "Polling interval must be at least 1 second", "call": "Polling interval must be at least 1 second",
"key": "Polling interval must be at least 1 second", "key": "Polling interval must be at least 1 second",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1885" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1904"
] ]
}, },
{ {
@@ -5189,8 +5203,8 @@
"key": "Running", "key": "Running",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:201", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:201",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1731", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1750",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1732" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1751"
] ]
}, },
{ {
@@ -5363,7 +5377,7 @@
"call": "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom.", "call": "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom.",
"key": "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom.", "key": "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1625" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1644"
] ]
}, },
{ {
@@ -5477,42 +5491,42 @@
"call": "Send a Telegram notification if a potential DNS leak is detected.", "call": "Send a Telegram notification if a potential DNS leak is detected.",
"key": "Send a Telegram notification if a potential DNS leak is detected.", "key": "Send a Telegram notification if a potential DNS leak is detected.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1959" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1978"
] ]
}, },
{ {
"call": "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored.", "call": "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored.",
"key": "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored.", "key": "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1894" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1913"
] ]
}, },
{ {
"call": "Send a Telegram notification if SSL/TLS certificates are close to expiration.", "call": "Send a Telegram notification if SSL/TLS certificates are close to expiration.",
"key": "Send a Telegram notification if SSL/TLS certificates are close to expiration.", "key": "Send a Telegram notification if SSL/TLS certificates are close to expiration.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1946" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1965"
] ]
}, },
{ {
"call": "Send a Telegram notification if the Tachyon service is restarted by the watchdog.", "call": "Send a Telegram notification if the Tachyon service is restarted by the watchdog.",
"key": "Send a Telegram notification if the Tachyon service is restarted by the watchdog.", "key": "Send a Telegram notification if the Tachyon service is restarted by the watchdog.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1907" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1926"
] ]
}, },
{ {
"call": "Send a Telegram notification when a URLTest group switches to a new server.", "call": "Send a Telegram notification when a URLTest group switches to a new server.",
"key": "Send a Telegram notification when a URLTest group switches to a new server.", "key": "Send a Telegram notification when a URLTest group switches to a new server.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1920" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1939"
] ]
}, },
{ {
"call": "Send a Telegram notification when proxy subscriptions are successfully updated.", "call": "Send a Telegram notification when proxy subscriptions are successfully updated.",
"key": "Send a Telegram notification when proxy subscriptions are successfully updated.", "key": "Send a Telegram notification when proxy subscriptions are successfully updated.",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1933" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1952"
] ]
}, },
{ {
@@ -6001,7 +6015,7 @@
"call": "Start bot", "call": "Start bot",
"key": "Start bot", "key": "Start bot",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1713" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1732"
] ]
}, },
{ {
@@ -6016,7 +6030,7 @@
"key": "Starting…", "key": "Starting…",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:234", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:234",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1760" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1779"
] ]
}, },
{ {
@@ -6037,7 +6051,7 @@
"call": "Stop bot", "call": "Stop bot",
"key": "Stop bot", "key": "Stop bot",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1720" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1739"
] ]
}, },
{ {
@@ -6059,7 +6073,7 @@
"key": "Stopped", "key": "Stopped",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:207", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:207",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1737" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1756"
] ]
}, },
{ {
@@ -6067,7 +6081,14 @@
"key": "Stopping…", "key": "Stopping…",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:248", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:248",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1774" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1793"
]
},
{
"call": "Strict ECH + DoQ DNS Enforcer",
"key": "Strict ECH + DoQ DNS Enforcer",
"places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1590"
] ]
}, },
{ {
@@ -6349,7 +6370,7 @@
"call": "Telegram Bot Token", "call": "Telegram Bot Token",
"key": "Telegram Bot Token", "key": "Telegram Bot Token",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1832" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1851"
] ]
}, },
{ {
@@ -6572,7 +6593,7 @@
"call": "Token is required when the bot is enabled", "call": "Token is required when the bot is enabled",
"key": "Token is required when the bot is enabled", "key": "Token is required when the bot is enabled",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1841" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1860"
] ]
}, },
{ {
@@ -6896,7 +6917,7 @@
"key": "Unknown", "key": "Unknown",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:228", "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:228",
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1754" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1773"
] ]
}, },
{ {
@@ -7344,7 +7365,14 @@
"call": "Watchdog Status", "call": "Watchdog Status",
"key": "Watchdog Status", "key": "Watchdog Status",
"places": [ "places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1600" "../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1619"
]
},
{
"call": "WebRTC Leak Protection",
"key": "WebRTC Leak Protection",
"places": [
"../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1581"
] ]
}, },
{ {
+66 -50
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TACHYON\n" "Project-Id-Version: TACHYON\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 14:51+0300\n" "POT-Creation-Date: 2026-07-30 17:48+0300\n"
"PO-Revision-Date: 2026-07-30 14:51+0300\n" "PO-Revision-Date: 2026-07-30 17:48+0300\n"
"Last-Translator: Dushnilin <dushnilin@gmail.com>\n" "Last-Translator: Dushnilin <dushnilin@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
@@ -221,7 +221,7 @@ msgstr ""
msgid "Address" msgid "Address"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1849 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1868
msgid "Administrator Chat IDs" msgid "Administrator Chat IDs"
msgstr "" msgstr ""
@@ -307,7 +307,7 @@ msgstr ""
msgid "Apply section rules only to the specified local IP addresses" msgid "Apply section rules only to the specified local IP addresses"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1860 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1879
msgid "At least one Admin Chat ID is required" msgid "At least one Admin Chat ID is required"
msgstr "" msgstr ""
@@ -331,7 +331,7 @@ msgstr ""
msgid "Auto update" msgid "Auto update"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1652 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1671
msgid "Auto-detected domains" msgid "Auto-detected domains"
msgstr "" msgstr ""
@@ -339,7 +339,7 @@ msgstr ""
msgid "Auto-detected Domains" msgid "Auto-detected Domains"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1613 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1632
#: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:388 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:388
msgid "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy." msgid "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy."
msgstr "" msgstr ""
@@ -400,7 +400,7 @@ msgstr ""
msgid "Bootstrap DNS Servers" msgid "Bootstrap DNS Servers"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1811 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1830
msgid "Bot Status" msgid "Bot Status"
msgstr "" msgstr ""
@@ -581,7 +581,7 @@ msgid "Checking..."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:175 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:175
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1703 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1722
msgid "Checking…" msgid "Checking…"
msgstr "" msgstr ""
@@ -698,7 +698,7 @@ msgstr ""
msgid "Cloudflare WARP API access token" msgid "Cloudflare WARP API access token"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1850 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1869
msgid "Comma-separated list of Telegram user IDs authorized to control the bot." msgid "Comma-separated list of Telegram user IDs authorized to control the bot."
msgstr "" msgstr ""
@@ -840,6 +840,10 @@ msgstr ""
msgid "Detect server country" msgid "Detect server country"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1582
msgid "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC."
msgstr ""
#: src/validators/validateOutboundJson.ts:115 #: src/validators/validateOutboundJson.ts:115
msgid "detour must be a non-empty string" msgid "detour must be a non-empty string"
msgstr "" msgstr ""
@@ -1054,7 +1058,7 @@ msgstr ""
msgid "Domain Resolver" msgid "Domain Resolver"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1624 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1643
msgid "Domain test sections" msgid "Domain test sections"
msgstr "" msgstr ""
@@ -1196,12 +1200,12 @@ msgstr ""
msgid "Enable Output Network Interface" msgid "Enable Output Network Interface"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1612 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1631
#: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:405 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:405
msgid "Enable Smart Detect" msgid "Enable Smart Detect"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1821 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1840
msgid "Enable Telegram Bot" msgid "Enable Telegram Bot"
msgstr "" msgstr ""
@@ -1213,7 +1217,7 @@ msgstr ""
msgid "Enable WAN DNS Fallback for Main DNS" msgid "Enable WAN DNS Fallback for Main DNS"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1588 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1607
msgid "Enable Watchdog" msgid "Enable Watchdog"
msgstr "" msgstr ""
@@ -1225,11 +1229,11 @@ msgstr ""
msgid "Enable YACD WAN Access" msgid "Enable YACD WAN Access"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1822 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1841
msgid "Enables the background daemon that polls Telegram for commands and sends notifications." msgid "Enables the background daemon that polls Telegram for commands and sends notifications."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1589 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1608
msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgid "Enables the background watchdog process to monitor services and auto-recover on failures."
msgstr "" msgstr ""
@@ -1257,7 +1261,7 @@ msgstr ""
msgid "Enter HWID" msgid "Enter HWID"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1833 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1852
msgid "Enter the API token obtained from @BotFather." msgid "Enter the API token obtained from @BotFather."
msgstr "" msgstr ""
@@ -1306,11 +1310,11 @@ msgstr ""
msgid "Exclude countries" msgid "Exclude countries"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1580 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1599
msgid "Exclude NTP" msgid "Exclude NTP"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1581 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1600
msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN" msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN"
msgstr "" msgstr ""
@@ -1417,7 +1421,7 @@ msgstr ""
msgid "Failed to save Smart Detect settings" msgid "Failed to save Smart Detect settings"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1767 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1786
msgid "Failed to start bot" msgid "Failed to start bot"
msgstr "" msgstr ""
@@ -1425,7 +1429,7 @@ msgstr ""
msgid "Failed to start watchdog" msgid "Failed to start watchdog"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1781 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1800
msgid "Failed to stop bot" msgid "Failed to stop bot"
msgstr "" msgstr ""
@@ -1493,6 +1497,10 @@ msgstr ""
msgid "Forced device routing" msgid "Forced device routing"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1591
msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding."
msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8625 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8625
msgid "France (fr)" msgid "France (fr)"
msgstr "" msgstr ""
@@ -1658,7 +1666,7 @@ msgstr ""
msgid "How often the currently selected server is checked" msgid "How often the currently selected server is checked"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1873 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1892
msgid "How often to check Telegram for new messages (default: 5)." msgid "How often to check Telegram for new messages (default: 5)."
msgstr "" msgstr ""
@@ -2182,7 +2190,7 @@ msgstr ""
msgid "List must be an HTTP(S) URL or a local .lst path" msgid "List must be an HTTP(S) URL or a local .lst path"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1653 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1672
msgid "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section." msgid "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section."
msgstr "" msgstr ""
@@ -2327,7 +2335,7 @@ msgstr ""
msgid "MTU" msgid "MTU"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1863 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1882
msgid "Must be a comma-separated list of numeric IDs" msgid "Must be a comma-separated list of numeric IDs"
msgstr "" msgstr ""
@@ -2424,7 +2432,7 @@ msgstr ""
msgid "No Custom Rules Matched" msgid "No Custom Rules Matched"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1668 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1687
msgid "No domains detected yet" msgid "No domains detected yet"
msgstr "" msgstr ""
@@ -2523,27 +2531,27 @@ msgstr ""
msgid "Not set" msgid "Not set"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1945 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1964
msgid "Notify on Certificate Warnings" msgid "Notify on Certificate Warnings"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1893 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1912
msgid "Notify on Core Crashes" msgid "Notify on Core Crashes"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1958 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1977
msgid "Notify on DNS Leaks" msgid "Notify on DNS Leaks"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1919 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1938
msgid "Notify on Server Switches" msgid "Notify on Server Switches"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1906 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1925
msgid "Notify on Service Restarts" msgid "Notify on Service Restarts"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1932 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1951
msgid "Notify on Subscription Updates" msgid "Notify on Subscription Updates"
msgstr "" msgstr ""
@@ -2748,11 +2756,11 @@ msgstr ""
msgid "Pin on dashboard" msgid "Pin on dashboard"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1872 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1891
msgid "Polling Interval (seconds)" msgid "Polling Interval (seconds)"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1885 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1904
msgid "Polling interval must be at least 1 second" msgid "Polling interval must be at least 1 second"
msgstr "" msgstr ""
@@ -3078,8 +3086,8 @@ msgid "Run doctor repair"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:201 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:201
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1731 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1750
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1732 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1751
msgid "Running" msgid "Running"
msgstr "" msgstr ""
@@ -3180,7 +3188,7 @@ msgstr ""
msgid "Select an intermediate section" msgid "Select an intermediate section"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1625 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1644
msgid "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom." msgid "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom."
msgstr "" msgstr ""
@@ -3246,27 +3254,27 @@ msgstr ""
msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgid "Selector and URLTest outbounds must contain a non-empty outbounds array"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1959 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1978
msgid "Send a Telegram notification if a potential DNS leak is detected." msgid "Send a Telegram notification if a potential DNS leak is detected."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1894 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1913
msgid "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored." msgid "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1946 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1965
msgid "Send a Telegram notification if SSL/TLS certificates are close to expiration." msgid "Send a Telegram notification if SSL/TLS certificates are close to expiration."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1907 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1926
msgid "Send a Telegram notification if the Tachyon service is restarted by the watchdog." msgid "Send a Telegram notification if the Tachyon service is restarted by the watchdog."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1920 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1939
msgid "Send a Telegram notification when a URLTest group switches to a new server." msgid "Send a Telegram notification when a URLTest group switches to a new server."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1933 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1952
msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgid "Send a Telegram notification when proxy subscriptions are successfully updated."
msgstr "" msgstr ""
@@ -3554,7 +3562,7 @@ msgstr ""
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1713 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1732
msgid "Start bot" msgid "Start bot"
msgstr "" msgstr ""
@@ -3563,7 +3571,7 @@ msgid "Start Tachyon"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:234 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:234
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1760 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1779
msgid "Starting…" msgid "Starting…"
msgstr "" msgstr ""
@@ -3575,7 +3583,7 @@ msgstr ""
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1720 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1739
msgid "Stop bot" msgid "Stop bot"
msgstr "" msgstr ""
@@ -3588,15 +3596,19 @@ msgid "Stop Tachyon"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:207 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:207
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1737 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1756
msgid "Stopped" msgid "Stopped"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:248 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:248
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1774 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1793
msgid "Stopping…" msgid "Stopping…"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1590
msgid "Strict ECH + DoQ DNS Enforcer"
msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8909 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8909
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8928 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8928
msgid "STUN (P2P Calls)" msgid "STUN (P2P Calls)"
@@ -3755,7 +3767,7 @@ msgstr ""
msgid "Telegram Bot" msgid "Telegram Bot"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1832 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1851
msgid "Telegram Bot Token" msgid "Telegram Bot Token"
msgstr "" msgstr ""
@@ -3888,7 +3900,7 @@ msgstr ""
msgid "TLS SNI" msgid "TLS SNI"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1841 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1860
msgid "Token is required when the bot is enabled" msgid "Token is required when the bot is enabled"
msgstr "" msgstr ""
@@ -4083,7 +4095,7 @@ msgid "unknown"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:228 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:228
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1754 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1773
msgid "Unknown" msgid "Unknown"
msgstr "" msgstr ""
@@ -4357,10 +4369,14 @@ msgstr ""
msgid "Watchdog" msgid "Watchdog"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1600 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1619
msgid "Watchdog Status" msgid "Watchdog Status"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1581
msgid "WebRTC Leak Protection"
msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7212 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7212
msgid "What Tachyon should do when this section matches" msgid "What Tachyon should do when this section matches"
msgstr "" msgstr ""
+15 -3
View File
@@ -1,4 +1,4 @@
# RU translations for TACHYON package. # RU translations for TACHYON package.
# Copyright (C) 2026 THE TACHYON COPYRIGHT HOLDER # Copyright (C) 2026 THE TACHYON COPYRIGHT HOLDER
# This file is distributed under the same license as the TACHYON package. # This file is distributed under the same license as the TACHYON package.
# Dushnilin, 2026. # Dushnilin, 2026.
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TACHYON\n" "Project-Id-Version: TACHYON\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 17:52+0300\n" "POT-Creation-Date: 2026-07-30 21:35+0300\n"
"PO-Revision-Date: 2026-07-30 17:52+0300\n" "PO-Revision-Date: 2026-07-30 21:35+0300\n"
"Last-Translator: Dushnilin\n" "Last-Translator: Dushnilin\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: ru\n" "Language: ru\n"
@@ -578,6 +578,9 @@ msgstr "Удалить"
msgid "Detect server country" msgid "Detect server country"
msgstr "Определять страну сервера" msgstr "Определять страну сервера"
msgid "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC."
msgstr "Детектирует и отбрасывает пакеты STUN/TURN в nftables для предотвращения утечек реального IP-адреса через WebRTC."
msgid "detour must be a non-empty string" msgid "detour must be a non-empty string"
msgstr "detour должен быть непустой строкой" msgstr "detour должен быть непустой строкой"
@@ -1028,6 +1031,9 @@ msgstr "Исправьте подсвеченные поля и сохранит
msgid "Forced device routing" msgid "Forced device routing"
msgstr "Принудительная маршрутизация устройств" msgstr "Принудительная маршрутизация устройств"
msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding."
msgstr "Принудительно направляет DNS-запросы через DoQ с Encrypted Client Hello (ECH) для скрытия SNI."
msgid "France (fr)" msgid "France (fr)"
msgstr "" msgstr ""
@@ -2507,6 +2513,9 @@ msgstr "Остановлен"
msgid "Stopping…" msgid "Stopping…"
msgstr "Остановка…" msgstr "Остановка…"
msgid "Strict ECH + DoQ DNS Enforcer"
msgstr "Strict ECH Enforcer"
msgid "STUN (P2P Calls)" msgid "STUN (P2P Calls)"
msgstr "STUN (P2P Звонки)" msgstr "STUN (P2P Звонки)"
@@ -3020,6 +3029,9 @@ msgstr "Сторожевой таймер"
msgid "Watchdog Status" msgid "Watchdog Status"
msgstr "Статус watchdog" msgstr "Статус watchdog"
msgid "WebRTC Leak Protection"
msgstr "Защита от утечек WebRTC"
msgid "What Tachyon should do when this section matches" msgid "What Tachyon should do when this section matches"
msgstr "Что должен делать Tachyon, когда эта секция совпадает" msgstr "Что должен делать Tachyon, когда эта секция совпадает"
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "fe-app-tachyon", "name": "fe-app-tachyon",
"version": "1.2.43", "version": "1.2.47",
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
@@ -1574,6 +1574,25 @@ function createSettingsContent(section, capabilities) {
o.default = "warn"; o.default = "warn";
o.rmempty = false; o.rmempty = false;
// Anonymization and Security
o = section.option(
form.Flag,
"webrtc_leak_protect",
_("WebRTC Leak Protection"),
_("Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC.")
);
o.default = "0";
o.rmempty = false;
o = section.option(
form.Flag,
"dns_doq_ech",
_("Strict ECH + DoQ DNS Enforcer"),
_("Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding.")
);
o.default = "0";
o.rmempty = false;
o = section.option( o = section.option(
form.Flag, form.Flag,
"exclude_ntp", "exclude_ntp",
+15 -3
View File
@@ -1,4 +1,4 @@
# RU translations for TACHYON package. # RU translations for TACHYON package.
# Copyright (C) 2026 THE TACHYON COPYRIGHT HOLDER # Copyright (C) 2026 THE TACHYON COPYRIGHT HOLDER
# This file is distributed under the same license as the TACHYON package. # This file is distributed under the same license as the TACHYON package.
# Dushnilin, 2026. # Dushnilin, 2026.
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TACHYON\n" "Project-Id-Version: TACHYON\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 17:52+0300\n" "POT-Creation-Date: 2026-07-30 21:35+0300\n"
"PO-Revision-Date: 2026-07-30 17:52+0300\n" "PO-Revision-Date: 2026-07-30 21:35+0300\n"
"Last-Translator: Dushnilin\n" "Last-Translator: Dushnilin\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: ru\n" "Language: ru\n"
@@ -578,6 +578,9 @@ msgstr "Удалить"
msgid "Detect server country" msgid "Detect server country"
msgstr "Определять страну сервера" msgstr "Определять страну сервера"
msgid "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC."
msgstr "Детектирует и отбрасывает пакеты STUN/TURN в nftables для предотвращения утечек реального IP-адреса через WebRTC."
msgid "detour must be a non-empty string" msgid "detour must be a non-empty string"
msgstr "detour должен быть непустой строкой" msgstr "detour должен быть непустой строкой"
@@ -1028,6 +1031,9 @@ msgstr "Исправьте подсвеченные поля и сохранит
msgid "Forced device routing" msgid "Forced device routing"
msgstr "Принудительная маршрутизация устройств" msgstr "Принудительная маршрутизация устройств"
msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding."
msgstr "Принудительно направляет DNS-запросы через DoQ с Encrypted Client Hello (ECH) для скрытия SNI."
msgid "France (fr)" msgid "France (fr)"
msgstr "" msgstr ""
@@ -2507,6 +2513,9 @@ msgstr "Остановлен"
msgid "Stopping…" msgid "Stopping…"
msgstr "Остановка…" msgstr "Остановка…"
msgid "Strict ECH + DoQ DNS Enforcer"
msgstr "Strict ECH Enforcer"
msgid "STUN (P2P Calls)" msgid "STUN (P2P Calls)"
msgstr "STUN (P2P Звонки)" msgstr "STUN (P2P Звонки)"
@@ -3020,6 +3029,9 @@ msgstr "Сторожевой таймер"
msgid "Watchdog Status" msgid "Watchdog Status"
msgstr "Статус watchdog" msgstr "Статус watchdog"
msgid "WebRTC Leak Protection"
msgstr "Защита от утечек WebRTC"
msgid "What Tachyon should do when this section matches" msgid "What Tachyon should do when this section matches"
msgstr "Что должен делать Tachyon, когда эта секция совпадает" msgstr "Что должен делать Tachyon, когда эта секция совпадает"
+66 -50
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TACHYON\n" "Project-Id-Version: TACHYON\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 14:51+0300\n" "POT-Creation-Date: 2026-07-30 17:48+0300\n"
"PO-Revision-Date: 2026-07-30 14:51+0300\n" "PO-Revision-Date: 2026-07-30 17:48+0300\n"
"Last-Translator: Dushnilin <dushnilin@gmail.com>\n" "Last-Translator: Dushnilin <dushnilin@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
@@ -221,7 +221,7 @@ msgstr ""
msgid "Address" msgid "Address"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1849 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1868
msgid "Administrator Chat IDs" msgid "Administrator Chat IDs"
msgstr "" msgstr ""
@@ -307,7 +307,7 @@ msgstr ""
msgid "Apply section rules only to the specified local IP addresses" msgid "Apply section rules only to the specified local IP addresses"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1860 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1879
msgid "At least one Admin Chat ID is required" msgid "At least one Admin Chat ID is required"
msgstr "" msgstr ""
@@ -331,7 +331,7 @@ msgstr ""
msgid "Auto update" msgid "Auto update"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1652 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1671
msgid "Auto-detected domains" msgid "Auto-detected domains"
msgstr "" msgstr ""
@@ -339,7 +339,7 @@ msgstr ""
msgid "Auto-detected Domains" msgid "Auto-detected Domains"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1613 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1632
#: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:388 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:388
msgid "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy." msgid "Auto-detects blocked domains from logs and adds them to the first section where they work via proxy."
msgstr "" msgstr ""
@@ -400,7 +400,7 @@ msgstr ""
msgid "Bootstrap DNS Servers" msgid "Bootstrap DNS Servers"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1811 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1830
msgid "Bot Status" msgid "Bot Status"
msgstr "" msgstr ""
@@ -581,7 +581,7 @@ msgid "Checking..."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:175 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:175
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1703 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1722
msgid "Checking…" msgid "Checking…"
msgstr "" msgstr ""
@@ -698,7 +698,7 @@ msgstr ""
msgid "Cloudflare WARP API access token" msgid "Cloudflare WARP API access token"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1850 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1869
msgid "Comma-separated list of Telegram user IDs authorized to control the bot." msgid "Comma-separated list of Telegram user IDs authorized to control the bot."
msgstr "" msgstr ""
@@ -840,6 +840,10 @@ msgstr ""
msgid "Detect server country" msgid "Detect server country"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1582
msgid "Detects and drops STUN/TURN packets in nftables to prevent real IP leaks via WebRTC."
msgstr ""
#: src/validators/validateOutboundJson.ts:115 #: src/validators/validateOutboundJson.ts:115
msgid "detour must be a non-empty string" msgid "detour must be a non-empty string"
msgstr "" msgstr ""
@@ -1054,7 +1058,7 @@ msgstr ""
msgid "Domain Resolver" msgid "Domain Resolver"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1624 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1643
msgid "Domain test sections" msgid "Domain test sections"
msgstr "" msgstr ""
@@ -1196,12 +1200,12 @@ msgstr ""
msgid "Enable Output Network Interface" msgid "Enable Output Network Interface"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1612 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1631
#: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:405 #: src/tachyon/tabs/dashboard/partials/renderAdvancedSettings.ts:405
msgid "Enable Smart Detect" msgid "Enable Smart Detect"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1821 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1840
msgid "Enable Telegram Bot" msgid "Enable Telegram Bot"
msgstr "" msgstr ""
@@ -1213,7 +1217,7 @@ msgstr ""
msgid "Enable WAN DNS Fallback for Main DNS" msgid "Enable WAN DNS Fallback for Main DNS"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1588 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1607
msgid "Enable Watchdog" msgid "Enable Watchdog"
msgstr "" msgstr ""
@@ -1225,11 +1229,11 @@ msgstr ""
msgid "Enable YACD WAN Access" msgid "Enable YACD WAN Access"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1822 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1841
msgid "Enables the background daemon that polls Telegram for commands and sends notifications." msgid "Enables the background daemon that polls Telegram for commands and sends notifications."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1589 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1608
msgid "Enables the background watchdog process to monitor services and auto-recover on failures." msgid "Enables the background watchdog process to monitor services and auto-recover on failures."
msgstr "" msgstr ""
@@ -1257,7 +1261,7 @@ msgstr ""
msgid "Enter HWID" msgid "Enter HWID"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1833 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1852
msgid "Enter the API token obtained from @BotFather." msgid "Enter the API token obtained from @BotFather."
msgstr "" msgstr ""
@@ -1306,11 +1310,11 @@ msgstr ""
msgid "Exclude countries" msgid "Exclude countries"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1580 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1599
msgid "Exclude NTP" msgid "Exclude NTP"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1581 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1600
msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN" msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN"
msgstr "" msgstr ""
@@ -1417,7 +1421,7 @@ msgstr ""
msgid "Failed to save Smart Detect settings" msgid "Failed to save Smart Detect settings"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1767 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1786
msgid "Failed to start bot" msgid "Failed to start bot"
msgstr "" msgstr ""
@@ -1425,7 +1429,7 @@ msgstr ""
msgid "Failed to start watchdog" msgid "Failed to start watchdog"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1781 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1800
msgid "Failed to stop bot" msgid "Failed to stop bot"
msgstr "" msgstr ""
@@ -1493,6 +1497,10 @@ msgstr ""
msgid "Forced device routing" msgid "Forced device routing"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1591
msgid "Forces sing-box to tunnel DNS requests via DoQ with Encrypted Client Hello (ECH) for SNI hiding."
msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8625 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8625
msgid "France (fr)" msgid "France (fr)"
msgstr "" msgstr ""
@@ -1658,7 +1666,7 @@ msgstr ""
msgid "How often the currently selected server is checked" msgid "How often the currently selected server is checked"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1873 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1892
msgid "How often to check Telegram for new messages (default: 5)." msgid "How often to check Telegram for new messages (default: 5)."
msgstr "" msgstr ""
@@ -2182,7 +2190,7 @@ msgstr ""
msgid "List must be an HTTP(S) URL or a local .lst path" msgid "List must be an HTTP(S) URL or a local .lst path"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1653 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1672
msgid "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section." msgid "List of domains automatically detected and the section they were added to. To edit or remove them, open the routing rules of the respective section."
msgstr "" msgstr ""
@@ -2327,7 +2335,7 @@ msgstr ""
msgid "MTU" msgid "MTU"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1863 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1882
msgid "Must be a comma-separated list of numeric IDs" msgid "Must be a comma-separated list of numeric IDs"
msgstr "" msgstr ""
@@ -2424,7 +2432,7 @@ msgstr ""
msgid "No Custom Rules Matched" msgid "No Custom Rules Matched"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1668 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1687
msgid "No domains detected yet" msgid "No domains detected yet"
msgstr "" msgstr ""
@@ -2523,27 +2531,27 @@ msgstr ""
msgid "Not set" msgid "Not set"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1945 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1964
msgid "Notify on Certificate Warnings" msgid "Notify on Certificate Warnings"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1893 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1912
msgid "Notify on Core Crashes" msgid "Notify on Core Crashes"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1958 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1977
msgid "Notify on DNS Leaks" msgid "Notify on DNS Leaks"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1919 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1938
msgid "Notify on Server Switches" msgid "Notify on Server Switches"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1906 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1925
msgid "Notify on Service Restarts" msgid "Notify on Service Restarts"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1932 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1951
msgid "Notify on Subscription Updates" msgid "Notify on Subscription Updates"
msgstr "" msgstr ""
@@ -2748,11 +2756,11 @@ msgstr ""
msgid "Pin on dashboard" msgid "Pin on dashboard"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1872 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1891
msgid "Polling Interval (seconds)" msgid "Polling Interval (seconds)"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1885 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1904
msgid "Polling interval must be at least 1 second" msgid "Polling interval must be at least 1 second"
msgstr "" msgstr ""
@@ -3078,8 +3086,8 @@ msgid "Run doctor repair"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:201 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:201
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1731 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1750
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1732 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1751
msgid "Running" msgid "Running"
msgstr "" msgstr ""
@@ -3180,7 +3188,7 @@ msgstr ""
msgid "Select an intermediate section" msgid "Select an intermediate section"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1625 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1644
msgid "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom." msgid "Select and order the sections through which blocked domains are tested. Checked sections are tried top-to-bottom."
msgstr "" msgstr ""
@@ -3246,27 +3254,27 @@ msgstr ""
msgid "Selector and URLTest outbounds must contain a non-empty outbounds array" msgid "Selector and URLTest outbounds must contain a non-empty outbounds array"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1959 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1978
msgid "Send a Telegram notification if a potential DNS leak is detected." msgid "Send a Telegram notification if a potential DNS leak is detected."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1894 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1913
msgid "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored." msgid "Send a Telegram notification if sing-box or nftables rules crash and get auto-restored."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1946 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1965
msgid "Send a Telegram notification if SSL/TLS certificates are close to expiration." msgid "Send a Telegram notification if SSL/TLS certificates are close to expiration."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1907 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1926
msgid "Send a Telegram notification if the Tachyon service is restarted by the watchdog." msgid "Send a Telegram notification if the Tachyon service is restarted by the watchdog."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1920 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1939
msgid "Send a Telegram notification when a URLTest group switches to a new server." msgid "Send a Telegram notification when a URLTest group switches to a new server."
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1933 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1952
msgid "Send a Telegram notification when proxy subscriptions are successfully updated." msgid "Send a Telegram notification when proxy subscriptions are successfully updated."
msgstr "" msgstr ""
@@ -3554,7 +3562,7 @@ msgstr ""
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1713 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1732
msgid "Start bot" msgid "Start bot"
msgstr "" msgstr ""
@@ -3563,7 +3571,7 @@ msgid "Start Tachyon"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:234 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:234
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1760 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1779
msgid "Starting…" msgid "Starting…"
msgstr "" msgstr ""
@@ -3575,7 +3583,7 @@ msgstr ""
msgid "Stop" msgid "Stop"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1720 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1739
msgid "Stop bot" msgid "Stop bot"
msgstr "" msgstr ""
@@ -3588,15 +3596,19 @@ msgid "Stop Tachyon"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:207 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:207
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1737 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1756
msgid "Stopped" msgid "Stopped"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:248 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:248
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1774 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1793
msgid "Stopping…" msgid "Stopping…"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1590
msgid "Strict ECH + DoQ DNS Enforcer"
msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8909 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8909
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8928 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:8928
msgid "STUN (P2P Calls)" msgid "STUN (P2P Calls)"
@@ -3755,7 +3767,7 @@ msgstr ""
msgid "Telegram Bot" msgid "Telegram Bot"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1832 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1851
msgid "Telegram Bot Token" msgid "Telegram Bot Token"
msgstr "" msgstr ""
@@ -3888,7 +3900,7 @@ msgstr ""
msgid "TLS SNI" msgid "TLS SNI"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1841 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1860
msgid "Token is required when the bot is enabled" msgid "Token is required when the bot is enabled"
msgstr "" msgstr ""
@@ -4083,7 +4095,7 @@ msgid "unknown"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:228 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:228
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1754 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1773
msgid "Unknown" msgid "Unknown"
msgstr "" msgstr ""
@@ -4357,10 +4369,14 @@ msgstr ""
msgid "Watchdog" msgid "Watchdog"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1600 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1619
msgid "Watchdog Status" msgid "Watchdog Status"
msgstr "" msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/settings.js:1581
msgid "WebRTC Leak Protection"
msgstr ""
#: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7212 #: ../luci-app-tachyon/htdocs/luci-static/resources/view/tachyon/section.js:7212
msgid "What Tachyon should do when this section matches" msgid "What Tachyon should do when this section matches"
msgstr "" msgstr ""
+7
View File
@@ -894,6 +894,13 @@ function nft_create_runtime_base(table, localv4_set, common_set, port_set, ip_po
} }
} }
if (bool_option(uci_settings(), "webrtc_leak_protect", false)) {
if (!nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "udp", "dport", "3478", "counter", "drop" ]) ||
!nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "udp", "dport", "5349", "counter", "drop" ]) ||
!nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "udp", "dport", "19302", "counter", "drop" ]))
return false;
}
if (!nft_add_rule(table, "mangle", [ "jump", "priority_rules" ]) || if (!nft_add_rule(table, "mangle", [ "jump", "priority_rules" ]) ||
!nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "@" + as_string(common_set), "meta", "l4proto", "tcp", "meta", "mark", "set", fakeip_mark, "counter" ]) || !nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "@" + as_string(common_set), "meta", "l4proto", "tcp", "meta", "mark", "set", fakeip_mark, "counter" ]) ||
!nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "@" + as_string(common_set), "meta", "l4proto", "udp", "meta", "mark", "set", fakeip_mark, "counter" ]) || !nft_add_rule(table, "mangle", [ "iifname", "@" + as_string(interface_set), "ip", "daddr", "@" + as_string(common_set), "meta", "l4proto", "udp", "meta", "mark", "set", fakeip_mark, "counter" ]) ||
+9 -1
View File
@@ -170,12 +170,20 @@ function bootstrap_server(tag_name, value) {
function server_config(settings, override_state) { function server_config(settings, override_state) {
let active = active_values(settings, override_state); let active = active_values(settings, override_state);
return server_from_options( let result = server_from_options(
runtime_constants.DNS_SERVER_TAG, runtime_constants.DNS_SERVER_TAG,
active.state.dns_type, active.state.dns_type,
active.main, active.main,
active.state.dns_detour active.state.dns_detour
); );
if (bool_option(settings, "dns_doq_ech", false)) {
if (result.tls) {
result.tls.ech = { enabled: true };
}
}
return result;
} }
function bootstrap_config(settings, override_state) { function bootstrap_config(settings, override_state) {