🍕 Sync 2025-11-10 00:09:51
This commit is contained in:
@@ -10,7 +10,7 @@ LUCI_DEPENDS:=+luci-base +luci-lib-jsonc +curl +bandix
|
|||||||
|
|
||||||
PKG_MAINTAINER:=timsaya
|
PKG_MAINTAINER:=timsaya
|
||||||
|
|
||||||
PKG_VERSION:=0.6.3
|
PKG_VERSION:=0.8.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
include $(TOPDIR)/feeds/luci/luci.mk
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|||||||
1524
luci-app-bandix/htdocs/luci-static/resources/view/bandix/dns.js
Normal file
1524
luci-app-bandix/htdocs/luci-static/resources/view/bandix/dns.js
Normal file
File diff suppressed because it is too large
Load Diff
@@ -10,12 +10,15 @@ const translations = {
|
|||||||
'基本设置': '基本设置',
|
'基本设置': '基本设置',
|
||||||
'流量监控设置': '流量监控设置',
|
'流量监控设置': '流量监控设置',
|
||||||
'连接监控设置': '连接监控设置',
|
'连接监控设置': '连接监控设置',
|
||||||
|
'DNS监控设置': 'DNS监控设置',
|
||||||
'Bandix 基本配置': 'Bandix 基本配置',
|
'Bandix 基本配置': 'Bandix 基本配置',
|
||||||
'配置 Bandix 服务的基本参数': '配置 Bandix 服务的基本参数',
|
'配置 Bandix 服务的基本参数': '配置 Bandix 服务的基本参数',
|
||||||
'Bandix 流量监控配置': 'Bandix 流量监控配置',
|
'Bandix 流量监控配置': 'Bandix 流量监控配置',
|
||||||
'配置流量监控相关参数': '配置流量监控相关参数',
|
'配置流量监控相关参数': '配置流量监控相关参数',
|
||||||
'Bandix 连接监控配置': 'Bandix 连接监控配置',
|
'Bandix 连接监控配置': 'Bandix 连接监控配置',
|
||||||
'配置连接监控相关参数': '配置连接监控相关参数',
|
'配置连接监控相关参数': '配置连接监控相关参数',
|
||||||
|
'Bandix DNS监控配置': 'Bandix DNS监控配置',
|
||||||
|
'配置DNS监控相关参数': '配置DNS监控相关参数',
|
||||||
'启用': '启用',
|
'启用': '启用',
|
||||||
'启用 Bandix 流量监控服务': '启用 Bandix 流量监控服务',
|
'启用 Bandix 流量监控服务': '启用 Bandix 流量监控服务',
|
||||||
'启用流量监控': '启用流量监控',
|
'启用流量监控': '启用流量监控',
|
||||||
@@ -56,6 +59,9 @@ const translations = {
|
|||||||
'数据目录': '数据目录',
|
'数据目录': '数据目录',
|
||||||
'Bandix 数据存储目录': 'Bandix 数据存储目录',
|
'Bandix 数据存储目录': 'Bandix 数据存储目录',
|
||||||
'启用 Bandix 连接监控功能': '启用 Bandix 连接监控功能',
|
'启用 Bandix 连接监控功能': '启用 Bandix 连接监控功能',
|
||||||
|
'启用 Bandix DNS监控功能': '启用 Bandix DNS监控功能',
|
||||||
|
'DNS最大记录数': 'DNS最大记录数',
|
||||||
|
'设置DNS查询记录的最大保存数量': '设置DNS查询记录的最大保存数量,超过此数量将删除最旧的记录',
|
||||||
'持久化历史数据': '持久化历史数据',
|
'持久化历史数据': '持久化历史数据',
|
||||||
'启用数据持久化功能': '启用数据持久化功能,只有启用此选项后才会持久化到磁盘'
|
'启用数据持久化功能': '启用数据持久化功能,只有启用此选项后才会持久化到磁盘'
|
||||||
},
|
},
|
||||||
@@ -63,12 +69,15 @@ const translations = {
|
|||||||
'基本设置': '基本設置',
|
'基本设置': '基本設置',
|
||||||
'流量监控设置': '流量監控設置',
|
'流量监控设置': '流量監控設置',
|
||||||
'连接监控设置': '連接監控設置',
|
'连接监控设置': '連接監控設置',
|
||||||
|
'DNS监控设置': 'DNS監控設置',
|
||||||
'Bandix 基本配置': 'Bandix 基本配置',
|
'Bandix 基本配置': 'Bandix 基本配置',
|
||||||
'配置 Bandix 服务的基本参数': '配置 Bandix 服務的基本參數',
|
'配置 Bandix 服务的基本参数': '配置 Bandix 服務的基本參數',
|
||||||
'Bandix 流量监控配置': 'Bandix 流量監控配置',
|
'Bandix 流量监控配置': 'Bandix 流量監控配置',
|
||||||
'配置流量监控相关参数': '配置流量監控相關參數',
|
'配置流量监控相关参数': '配置流量監控相關參數',
|
||||||
'Bandix 连接监控配置': 'Bandix 連接監控配置',
|
'Bandix 连接监控配置': 'Bandix 連接監控配置',
|
||||||
'配置连接监控相关参数': '配置連接監控相關參數',
|
'配置连接监控相关参数': '配置連接監控相關參數',
|
||||||
|
'Bandix DNS监控配置': 'Bandix DNS監控配置',
|
||||||
|
'配置DNS监控相关参数': '配置DNS監控相關參數',
|
||||||
'启用': '啟用',
|
'启用': '啟用',
|
||||||
'启用 Bandix 流量监控服务': '啟用 Bandix 流量監控服務',
|
'启用 Bandix 流量监控服务': '啟用 Bandix 流量監控服務',
|
||||||
'启用流量监控': '啟用流量監控',
|
'启用流量监控': '啟用流量監控',
|
||||||
@@ -109,6 +118,9 @@ const translations = {
|
|||||||
'数据目录': '數據目錄',
|
'数据目录': '數據目錄',
|
||||||
'Bandix 数据存储目录': 'Bandix 數據存儲目錄',
|
'Bandix 数据存储目录': 'Bandix 數據存儲目錄',
|
||||||
'启用 Bandix 连接监控功能': '啟用 Bandix 連接監控功能',
|
'启用 Bandix 连接监控功能': '啟用 Bandix 連接監控功能',
|
||||||
|
'启用 Bandix DNS监控功能': '啟用 Bandix DNS監控功能',
|
||||||
|
'DNS最大记录数': 'DNS最大記錄數',
|
||||||
|
'设置DNS查询记录的最大保存数量': '設定DNS查詢記錄的最大保存數量,超過此數量將刪除最舊的記錄',
|
||||||
'持久化历史数据': '持久化歷史數據',
|
'持久化历史数据': '持久化歷史數據',
|
||||||
'启用数据持久化功能': '啟用數據持久化功能,只有啟用此選項後才會持久化到磁碟'
|
'启用数据持久化功能': '啟用數據持久化功能,只有啟用此選項後才會持久化到磁碟'
|
||||||
},
|
},
|
||||||
@@ -116,16 +128,20 @@ const translations = {
|
|||||||
'基本设置': 'Basic Settings',
|
'基本设置': 'Basic Settings',
|
||||||
'流量监控设置': 'Traffic Monitor Settings',
|
'流量监控设置': 'Traffic Monitor Settings',
|
||||||
'连接监控设置': 'Connection Monitor Settings',
|
'连接监控设置': 'Connection Monitor Settings',
|
||||||
|
'DNS监控设置': 'DNS Monitor Settings',
|
||||||
'Bandix 基本配置': 'Bandix Basic Configuration',
|
'Bandix 基本配置': 'Bandix Basic Configuration',
|
||||||
'配置 Bandix 服务的基本参数': 'Configure basic parameters for Bandix service',
|
'配置 Bandix 服务的基本参数': 'Configure basic parameters for Bandix service',
|
||||||
'Bandix 流量监控配置': 'Bandix Traffic Monitor Configuration',
|
'Bandix 流量监控配置': 'Bandix Traffic Monitor Configuration',
|
||||||
'配置流量监控相关参数': 'Configure traffic monitoring related parameters',
|
'配置流量监控相关参数': 'Configure traffic monitoring related parameters',
|
||||||
'Bandix 连接监控配置': 'Bandix Connection Monitor Configuration',
|
'Bandix 连接监控配置': 'Bandix Connection Monitor Configuration',
|
||||||
'配置连接监控相关参数': 'Configure connection monitoring related parameters',
|
'配置连接监控相关参数': 'Configure connection monitoring related parameters',
|
||||||
|
'Bandix DNS监控配置': 'Bandix DNS Monitor Configuration',
|
||||||
|
'配置DNS监控相关参数': 'Configure DNS monitoring related parameters',
|
||||||
'启用': 'Enable',
|
'启用': 'Enable',
|
||||||
'启用 Bandix 流量监控服务': 'Enable Bandix Traffic Monitor Service',
|
'启用 Bandix 流量监控服务': 'Enable Bandix Traffic Monitor Service',
|
||||||
'启用流量监控': 'Enable Traffic Monitoring',
|
'启用流量监控': 'Enable Traffic Monitoring',
|
||||||
'启用连接监控': 'Enable Connection Monitoring',
|
'启用连接监控': 'Enable Connection Monitoring',
|
||||||
|
'启用DNS监控': 'Enable DNS Monitoring',
|
||||||
'界面语言': 'Interface Language',
|
'界面语言': 'Interface Language',
|
||||||
'选择 Bandix 流量监控的显示语言': 'Select the display language for Bandix Traffic Monitor',
|
'选择 Bandix 流量监控的显示语言': 'Select the display language for Bandix Traffic Monitor',
|
||||||
'简体中文': 'Simplified Chinese',
|
'简体中文': 'Simplified Chinese',
|
||||||
@@ -162,6 +178,9 @@ const translations = {
|
|||||||
'数据目录': 'Data Directory',
|
'数据目录': 'Data Directory',
|
||||||
'Bandix 数据存储目录': 'Bandix data storage directory',
|
'Bandix 数据存储目录': 'Bandix data storage directory',
|
||||||
'启用 Bandix 连接监控功能': 'Enable Bandix connection monitoring',
|
'启用 Bandix 连接监控功能': 'Enable Bandix connection monitoring',
|
||||||
|
'启用 Bandix DNS监控功能': 'Enable Bandix DNS monitoring',
|
||||||
|
'DNS最大记录数': 'DNS Max Records',
|
||||||
|
'设置DNS查询记录的最大保存数量': 'Set the maximum number of DNS query records to keep. Older records will be deleted when this limit is exceeded',
|
||||||
'持久化历史数据': 'Persist History Data',
|
'持久化历史数据': 'Persist History Data',
|
||||||
'启用数据持久化功能': 'Enable data persistence functionality, data will only be persisted to disk when this option is enabled'
|
'启用数据持久化功能': 'Enable data persistence functionality, data will only be persisted to disk when this option is enabled'
|
||||||
},
|
},
|
||||||
@@ -169,16 +188,20 @@ const translations = {
|
|||||||
'基本设置': 'Paramètres de Base',
|
'基本设置': 'Paramètres de Base',
|
||||||
'流量监控设置': 'Paramètres de Surveillance du Trafic',
|
'流量监控设置': 'Paramètres de Surveillance du Trafic',
|
||||||
'连接监控设置': 'Paramètres de Surveillance des Connexions',
|
'连接监控设置': 'Paramètres de Surveillance des Connexions',
|
||||||
|
'DNS监控设置': 'Paramètres de Surveillance DNS',
|
||||||
'Bandix 基本配置': 'Configuration de Base Bandix',
|
'Bandix 基本配置': 'Configuration de Base Bandix',
|
||||||
'配置 Bandix 服务的基本参数': 'Configurer les paramètres de base du service Bandix',
|
'配置 Bandix 服务的基本参数': 'Configurer les paramètres de base du service Bandix',
|
||||||
'Bandix 流量监控配置': 'Configuration de Surveillance du Trafic Bandix',
|
'Bandix 流量监控配置': 'Configuration de Surveillance du Trafic Bandix',
|
||||||
'配置流量监控相关参数': 'Configurer les paramètres liés à la surveillance du trafic',
|
'配置流量监控相关参数': 'Configurer les paramètres liés à la surveillance du trafic',
|
||||||
'Bandix 连接监控配置': 'Configuration de Surveillance des Connexions Bandix',
|
'Bandix 连接监控配置': 'Configuration de Surveillance des Connexions Bandix',
|
||||||
'配置连接监控相关参数': 'Configurer les paramètres liés à la surveillance des connexions',
|
'配置连接监控相关参数': 'Configurer les paramètres liés à la surveillance des connexions',
|
||||||
|
'Bandix DNS监控配置': 'Configuration de Surveillance DNS Bandix',
|
||||||
|
'配置DNS监控相关参数': 'Configurer les paramètres liés à la surveillance DNS',
|
||||||
'启用': 'Activer',
|
'启用': 'Activer',
|
||||||
'启用 Bandix 流量监控服务': 'Activer le Service de Surveillance du Trafic Bandix',
|
'启用 Bandix 流量监控服务': 'Activer le Service de Surveillance du Trafic Bandix',
|
||||||
'启用流量监控': 'Activer la Surveillance du Trafic',
|
'启用流量监控': 'Activer la Surveillance du Trafic',
|
||||||
'启用连接监控': 'Activer la Surveillance des Connexions',
|
'启用连接监控': 'Activer la Surveillance des Connexions',
|
||||||
|
'启用DNS监控': 'Activer la Surveillance DNS',
|
||||||
'界面语言': 'Langue de l\'Interface',
|
'界面语言': 'Langue de l\'Interface',
|
||||||
'选择 Bandix 流量监控的显示语言': 'Sélectionner la langue d\'affichage pour le Moniteur de Trafic Bandix',
|
'选择 Bandix 流量监控的显示语言': 'Sélectionner la langue d\'affichage pour le Moniteur de Trafic Bandix',
|
||||||
'简体中文': 'Chinois Simplifié',
|
'简体中文': 'Chinois Simplifié',
|
||||||
@@ -215,6 +238,9 @@ const translations = {
|
|||||||
'数据目录': 'Répertoire de Données',
|
'数据目录': 'Répertoire de Données',
|
||||||
'Bandix 数据存储目录': 'Répertoire de stockage de données Bandix',
|
'Bandix 数据存储目录': 'Répertoire de stockage de données Bandix',
|
||||||
'启用 Bandix 连接监控功能': 'Activer la surveillance des connexions Bandix',
|
'启用 Bandix 连接监控功能': 'Activer la surveillance des connexions Bandix',
|
||||||
|
'启用 Bandix DNS监控功能': 'Activer la surveillance DNS Bandix',
|
||||||
|
'DNS最大记录数': 'Nombre Maximum d\'Enregistrements DNS',
|
||||||
|
'设置DNS查询记录的最大保存数量': 'Définir le nombre maximum d\'enregistrements de requêtes DNS à conserver. Les enregistrements plus anciens seront supprimés lorsque cette limite est dépassée',
|
||||||
'持久化历史数据': 'Persister les Données Historiques',
|
'持久化历史数据': 'Persister les Données Historiques',
|
||||||
'启用数据持久化功能': 'Activer la fonctionnalité de persistance des données, les données ne seront persistées sur le disque que lorsque cette option est activée'
|
'启用数据持久化功能': 'Activer la fonctionnalité de persistance des données, les données ne seront persistées sur le disque que lorsque cette option est activée'
|
||||||
},
|
},
|
||||||
@@ -222,16 +248,20 @@ const translations = {
|
|||||||
'基本设置': '基本設定',
|
'基本设置': '基本設定',
|
||||||
'流量监控设置': 'トラフィック監視設定',
|
'流量监控设置': 'トラフィック監視設定',
|
||||||
'连接监控设置': '接続監視設定',
|
'连接监控设置': '接続監視設定',
|
||||||
|
'DNS监控设置': 'DNS監視設定',
|
||||||
'Bandix 基本配置': 'Bandix 基本設定',
|
'Bandix 基本配置': 'Bandix 基本設定',
|
||||||
'配置 Bandix 服务的基本参数': 'Bandix サービスの基本パラメータを設定',
|
'配置 Bandix 服务的基本参数': 'Bandix サービスの基本パラメータを設定',
|
||||||
'Bandix 流量监控配置': 'Bandix トラフィック監視設定',
|
'Bandix 流量监控配置': 'Bandix トラフィック監視設定',
|
||||||
'配置流量监控相关参数': 'トラフィック監視関連パラメータを設定',
|
'配置流量监控相关参数': 'トラフィック監視関連パラメータを設定',
|
||||||
'Bandix 连接监控配置': 'Bandix 接続監視設定',
|
'Bandix 连接监控配置': 'Bandix 接続監視設定',
|
||||||
'配置连接监控相关参数': '接続監視関連パラメータを設定',
|
'配置连接监控相关参数': '接続監視関連パラメータを設定',
|
||||||
|
'Bandix DNS监控配置': 'Bandix DNS監視設定',
|
||||||
|
'配置DNS监控相关参数': 'DNS監視関連パラメータを設定',
|
||||||
'启用': '有効',
|
'启用': '有効',
|
||||||
'启用 Bandix 流量监控服务': 'Bandix トラフィックモニターサービスを有効にする',
|
'启用 Bandix 流量监控服务': 'Bandix トラフィックモニターサービスを有効にする',
|
||||||
'启用流量监控': 'トラフィック監視を有効にする',
|
'启用流量监控': 'トラフィック監視を有効にする',
|
||||||
'启用连接监控': '接続監視を有効にする',
|
'启用连接监控': '接続監視を有効にする',
|
||||||
|
'启用DNS监控': 'DNS監視を有効にする',
|
||||||
'界面语言': 'インターフェース言語',
|
'界面语言': 'インターフェース言語',
|
||||||
'选择 Bandix 流量监控的显示语言': 'Bandix トラフィックモニターの表示言語を選択',
|
'选择 Bandix 流量监控的显示语言': 'Bandix トラフィックモニターの表示言語を選択',
|
||||||
'简体中文': '簡体字中国語',
|
'简体中文': '簡体字中国語',
|
||||||
@@ -268,6 +298,9 @@ const translations = {
|
|||||||
'数据目录': 'データディレクトリ',
|
'数据目录': 'データディレクトリ',
|
||||||
'Bandix 数据存储目录': 'Bandix データ保存ディレクトリ',
|
'Bandix 数据存储目录': 'Bandix データ保存ディレクトリ',
|
||||||
'启用 Bandix 连接监控功能': 'Bandix 接続監視機能を有効にする',
|
'启用 Bandix 连接监控功能': 'Bandix 接続監視機能を有効にする',
|
||||||
|
'启用 Bandix DNS监控功能': 'Bandix DNS監視機能を有効にする',
|
||||||
|
'DNS最大记录数': 'DNS最大記録数',
|
||||||
|
'设置DNS查询记录的最大保存数量': 'DNSクエリ記録の最大保存数を設定。この数を超えると、最も古い記録が削除されます',
|
||||||
'持久化历史数据': '履歴データの永続化',
|
'持久化历史数据': '履歴データの永続化',
|
||||||
'启用数据持久化功能': 'データ永続化機能を有効にする。このオプションが有効な場合のみ、データがディスクに永続化されます'
|
'启用数据持久化功能': 'データ永続化機能を有効にする。このオプションが有効な場合のみ、データがディスクに永続化されます'
|
||||||
},
|
},
|
||||||
@@ -275,16 +308,20 @@ const translations = {
|
|||||||
'基本设置': 'Основные Настройки',
|
'基本设置': 'Основные Настройки',
|
||||||
'流量监控设置': 'Настройки Мониторинга Трафика',
|
'流量监控设置': 'Настройки Мониторинга Трафика',
|
||||||
'连接监控设置': 'Настройки Мониторинга Соединений',
|
'连接监控设置': 'Настройки Мониторинга Соединений',
|
||||||
|
'DNS监控设置': 'Настройки Мониторинга DNS',
|
||||||
'Bandix 基本配置': 'Базовая Конфигурация Bandix',
|
'Bandix 基本配置': 'Базовая Конфигурация Bandix',
|
||||||
'配置 Bandix 服务的基本参数': 'Настроить основные параметры службы Bandix',
|
'配置 Bandix 服务的基本参数': 'Настроить основные параметры службы Bandix',
|
||||||
'Bandix 流量监控配置': 'Конфигурация Мониторинга Трафика Bandix',
|
'Bandix 流量监控配置': 'Конфигурация Мониторинга Трафика Bandix',
|
||||||
'配置流量监控相关参数': 'Настроить параметры, связанные с мониторингом трафика',
|
'配置流量监控相关参数': 'Настроить параметры, связанные с мониторингом трафика',
|
||||||
'Bandix 连接监控配置': 'Конфигурация Мониторинга Соединений Bandix',
|
'Bandix 连接监控配置': 'Конфигурация Мониторинга Соединений Bandix',
|
||||||
'配置连接监控相关参数': 'Настроить параметры, связанные с мониторингом соединений',
|
'配置连接监控相关参数': 'Настроить параметры, связанные с мониторингом соединений',
|
||||||
|
'Bandix DNS监控配置': 'Конфигурация Мониторинга DNS Bandix',
|
||||||
|
'配置DNS监控相关参数': 'Настроить параметры, связанные с мониторингом DNS',
|
||||||
'启用': 'Включить',
|
'启用': 'Включить',
|
||||||
'启用 Bandix 流量监控服务': 'Включить Службу Мониторинга Трафика Bandix',
|
'启用 Bandix 流量监控服务': 'Включить Службу Мониторинга Трафика Bandix',
|
||||||
'启用流量监控': 'Включить Мониторинг Трафика',
|
'启用流量监控': 'Включить Мониторинг Трафика',
|
||||||
'启用连接监控': 'Включить Мониторинг Соединений',
|
'启用连接监控': 'Включить Мониторинг Соединений',
|
||||||
|
'启用DNS监控': 'Включить Мониторинг DNS',
|
||||||
'界面语言': 'Язык Интерфейса',
|
'界面语言': 'Язык Интерфейса',
|
||||||
'选择 Bandix 流量监控的显示语言': 'Выберите язык отображения для Монитора Трафика Bandix',
|
'选择 Bandix 流量监控的显示语言': 'Выберите язык отображения для Монитора Трафика Bandix',
|
||||||
'简体中文': 'Упрощенный Китайский',
|
'简体中文': 'Упрощенный Китайский',
|
||||||
@@ -321,6 +358,9 @@ const translations = {
|
|||||||
'数据目录': 'Каталог Данных',
|
'数据目录': 'Каталог Данных',
|
||||||
'Bandix 数据存储目录': 'Каталог хранения данных Bandix',
|
'Bandix 数据存储目录': 'Каталог хранения данных Bandix',
|
||||||
'启用 Bandix 连接监控功能': 'Включить мониторинг соединений Bandix',
|
'启用 Bandix 连接监控功能': 'Включить мониторинг соединений Bandix',
|
||||||
|
'启用 Bandix DNS监控功能': 'Включить мониторинг DNS Bandix',
|
||||||
|
'DNS最大记录数': 'Максимальное Количество Записей DNS',
|
||||||
|
'设置DNS查询记录的最大保存数量': 'Установить максимальное количество записей DNS-запросов для хранения. Более старые записи будут удалены при превышении этого лимита',
|
||||||
'持久化历史数据': 'Персистентность Исторических Данных',
|
'持久化历史数据': 'Персистентность Исторических Данных',
|
||||||
'启用数据持久化功能': 'Включить функциональность персистентности данных, данные будут сохраняться на диск только при включении этой опции'
|
'启用数据持久化功能': 'Включить функциональность персистентности данных, данные будут сохраняться на диск только при включении этой опции'
|
||||||
}
|
}
|
||||||
@@ -408,6 +448,9 @@ return view.extend({
|
|||||||
if (!uci.get('bandix', 'connections')) {
|
if (!uci.get('bandix', 'connections')) {
|
||||||
uci.add('bandix', 'connections', 'connections');
|
uci.add('bandix', 'connections', 'connections');
|
||||||
}
|
}
|
||||||
|
if (!uci.get('bandix', 'dns')) {
|
||||||
|
uci.add('bandix', 'dns', 'dns');
|
||||||
|
}
|
||||||
|
|
||||||
var language = uci.get('bandix', 'general', 'language');
|
var language = uci.get('bandix', 'general', 'language');
|
||||||
if (!language || language === 'auto') {
|
if (!language || language === 'auto') {
|
||||||
@@ -676,6 +719,24 @@ return view.extend({
|
|||||||
o.default = '0';
|
o.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
|
|
||||||
|
// 4. DNS监控设置部分 (dns)
|
||||||
|
s = m.section(form.NamedSection, 'dns', 'dns', getTranslation('DNS监控设置', language));
|
||||||
|
s.description = getTranslation('配置DNS监控相关参数', language);
|
||||||
|
s.addremove = false;
|
||||||
|
|
||||||
|
o = s.option(form.Flag, 'enabled', getTranslation('启用DNS监控', language),
|
||||||
|
getTranslation('启用 Bandix DNS监控功能', language));
|
||||||
|
o.default = '0';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
|
// 添加DNS最大记录数选项
|
||||||
|
o = s.option(form.Value, 'dns_max_records', getTranslation('DNS最大记录数', language),
|
||||||
|
getTranslation('设置DNS查询记录的最大保存数量', language));
|
||||||
|
o.datatype = 'uinteger';
|
||||||
|
o.placeholder = '10000';
|
||||||
|
o.default = '10000';
|
||||||
|
o.rmempty = false;
|
||||||
|
|
||||||
return m.render();
|
return m.render();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -10,6 +10,8 @@ readonly BANDIX_DEVICES_API="$BANDIX_API_BASE/api/traffic/devices"
|
|||||||
readonly BANDIX_LIMITS_API="$BANDIX_API_BASE/api/traffic/limits"
|
readonly BANDIX_LIMITS_API="$BANDIX_API_BASE/api/traffic/limits"
|
||||||
readonly BANDIX_METRICS_API="$BANDIX_API_BASE/api/traffic/metrics"
|
readonly BANDIX_METRICS_API="$BANDIX_API_BASE/api/traffic/metrics"
|
||||||
readonly BANDIX_CONNECTION_API="$BANDIX_API_BASE/api/connection/devices"
|
readonly BANDIX_CONNECTION_API="$BANDIX_API_BASE/api/connection/devices"
|
||||||
|
readonly BANDIX_DNS_QUERIES_API="$BANDIX_API_BASE/api/dns/queries"
|
||||||
|
readonly BANDIX_DNS_STATS_API="$BANDIX_API_BASE/api/dns/stats"
|
||||||
|
|
||||||
# 通用函数:创建简单的JSON响应
|
# 通用函数:创建简单的JSON响应
|
||||||
make_value() {
|
make_value() {
|
||||||
@@ -223,6 +225,72 @@ get_connection_devices() {
|
|||||||
echo "$response"
|
echo "$response"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 获取 DNS 查询记录
|
||||||
|
get_dns_queries() {
|
||||||
|
# 检查 DNS 监控是否启用
|
||||||
|
local dns_enabled=$(uci get bandix.dns.enabled 2>/dev/null)
|
||||||
|
if [ "$dns_enabled" != "1" ]; then
|
||||||
|
make_error "DNS monitoring is not enabled"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 构建查询参数
|
||||||
|
local query_params=""
|
||||||
|
local domain="$1"
|
||||||
|
local device="$2"
|
||||||
|
local is_query="$3"
|
||||||
|
local dns_server="$4"
|
||||||
|
local page="$5"
|
||||||
|
local page_size="$6"
|
||||||
|
|
||||||
|
[ -n "$domain" ] && query_params="${query_params}domain=$(printf '%s' "$domain" | sed 's/ /%20/g')&"
|
||||||
|
[ -n "$device" ] && query_params="${query_params}device=$(printf '%s' "$device" | sed 's/ /%20/g')&"
|
||||||
|
[ -n "$is_query" ] && query_params="${query_params}is_query=$is_query&"
|
||||||
|
[ -n "$dns_server" ] && query_params="${query_params}dns_server=$(printf '%s' "$dns_server" | sed 's/ /%20/g')&"
|
||||||
|
[ -n "$page" ] && query_params="${query_params}page=$page&"
|
||||||
|
[ -n "$page_size" ] && query_params="${query_params}page_size=$page_size&"
|
||||||
|
|
||||||
|
# 移除末尾的 &
|
||||||
|
query_params=$(echo "$query_params" | sed 's/&$//')
|
||||||
|
|
||||||
|
local url="$BANDIX_DNS_QUERIES_API"
|
||||||
|
[ -n "$query_params" ] && url="${url}?${query_params}"
|
||||||
|
|
||||||
|
# 从 Bandix API 获取 DNS 查询数据
|
||||||
|
local response=$(curl -s --connect-timeout 2 --max-time 10 -X GET "$url" 2>/dev/null)
|
||||||
|
|
||||||
|
# 检查API调用是否成功
|
||||||
|
if [ $? -ne 0 ] || [ -z "$response" ]; then
|
||||||
|
make_error "Failed to connect to Bandix service"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 直接返回API结果
|
||||||
|
echo "$response"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 获取 DNS 统计信息
|
||||||
|
get_dns_stats() {
|
||||||
|
# 检查 DNS 监控是否启用
|
||||||
|
local dns_enabled=$(uci get bandix.dns.enabled 2>/dev/null)
|
||||||
|
if [ "$dns_enabled" != "1" ]; then
|
||||||
|
make_error "DNS monitoring is not enabled"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 从 Bandix API 获取 DNS 统计数据
|
||||||
|
local response=$(curl -s --connect-timeout 2 --max-time 10 -X GET "$BANDIX_DNS_STATS_API" 2>/dev/null)
|
||||||
|
|
||||||
|
# 检查API调用是否成功
|
||||||
|
if [ $? -ne 0 ] || [ -z "$response" ]; then
|
||||||
|
make_error "Failed to connect to Bandix service"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 直接返回API结果
|
||||||
|
echo "$response"
|
||||||
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
list)
|
list)
|
||||||
json_init
|
json_init
|
||||||
@@ -247,6 +315,18 @@ case "$1" in
|
|||||||
json_add_object "getConnection"
|
json_add_object "getConnection"
|
||||||
json_close_object
|
json_close_object
|
||||||
|
|
||||||
|
json_add_object "getDnsQueries"
|
||||||
|
json_add_string "domain"
|
||||||
|
json_add_string "device"
|
||||||
|
json_add_string "is_query"
|
||||||
|
json_add_string "dns_server"
|
||||||
|
json_add_int "page"
|
||||||
|
json_add_int "page_size"
|
||||||
|
json_close_object
|
||||||
|
|
||||||
|
json_add_object "getDnsStats"
|
||||||
|
json_close_object
|
||||||
|
|
||||||
json_dump
|
json_dump
|
||||||
json_cleanup
|
json_cleanup
|
||||||
;;
|
;;
|
||||||
@@ -351,6 +431,40 @@ case "$1" in
|
|||||||
# logger "luci.bandix: getConnection called"
|
# logger "luci.bandix: getConnection called"
|
||||||
get_connection_devices
|
get_connection_devices
|
||||||
;;
|
;;
|
||||||
|
getDnsQueries)
|
||||||
|
# logger "luci.bandix: getDnsQueries called"
|
||||||
|
# 从 stdin 读取 JSON 参数
|
||||||
|
read input
|
||||||
|
|
||||||
|
if [ -n "$input" ]; then
|
||||||
|
# 解析参数
|
||||||
|
domain=$(echo "$input" | jsonfilter -e '$[0]' 2>/dev/null)
|
||||||
|
[ -z "$domain" ] && domain=$(echo "$input" | jsonfilter -e '$.domain' 2>/dev/null)
|
||||||
|
|
||||||
|
device=$(echo "$input" | jsonfilter -e '$[1]' 2>/dev/null)
|
||||||
|
[ -z "$device" ] && device=$(echo "$input" | jsonfilter -e '$.device' 2>/dev/null)
|
||||||
|
|
||||||
|
is_query=$(echo "$input" | jsonfilter -e '$[2]' 2>/dev/null)
|
||||||
|
[ -z "$is_query" ] && is_query=$(echo "$input" | jsonfilter -e '$.is_query' 2>/dev/null)
|
||||||
|
|
||||||
|
dns_server=$(echo "$input" | jsonfilter -e '$[3]' 2>/dev/null)
|
||||||
|
[ -z "$dns_server" ] && dns_server=$(echo "$input" | jsonfilter -e '$.dns_server' 2>/dev/null)
|
||||||
|
|
||||||
|
page=$(echo "$input" | jsonfilter -e '$[4]' 2>/dev/null)
|
||||||
|
[ -z "$page" ] && page=$(echo "$input" | jsonfilter -e '$.page' 2>/dev/null)
|
||||||
|
|
||||||
|
page_size=$(echo "$input" | jsonfilter -e '$[5]' 2>/dev/null)
|
||||||
|
[ -z "$page_size" ] && page_size=$(echo "$input" | jsonfilter -e '$.page_size' 2>/dev/null)
|
||||||
|
|
||||||
|
get_dns_queries "$domain" "$device" "$is_query" "$dns_server" "$page" "$page_size"
|
||||||
|
else
|
||||||
|
get_dns_queries "" "" "" "" "" ""
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
getDnsStats)
|
||||||
|
# logger "luci.bandix: getDnsStats called"
|
||||||
|
get_dns_stats
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -27,9 +27,17 @@
|
|||||||
"path": "bandix/connection"
|
"path": "bandix/connection"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"admin/network/bandix/dns": {
|
||||||
|
"title": "DNS",
|
||||||
|
"order": 20,
|
||||||
|
"action": {
|
||||||
|
"type": "view",
|
||||||
|
"path": "bandix/dns"
|
||||||
|
}
|
||||||
|
},
|
||||||
"admin/network/bandix/settings": {
|
"admin/network/bandix/settings": {
|
||||||
"title": "Settings",
|
"title": "Settings",
|
||||||
"order": 20,
|
"order": 25,
|
||||||
"action": {
|
"action": {
|
||||||
"type": "view",
|
"type": "view",
|
||||||
"path": "bandix/settings"
|
"path": "bandix/settings"
|
||||||
|
|||||||
@@ -8,7 +8,9 @@
|
|||||||
"getMetrics",
|
"getMetrics",
|
||||||
"setRateLimit",
|
"setRateLimit",
|
||||||
"getConnection",
|
"getConnection",
|
||||||
"setHostname"
|
"setHostname",
|
||||||
|
"getDnsQueries",
|
||||||
|
"getDnsStats"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"uci": [
|
"uci": [
|
||||||
@@ -22,7 +24,9 @@
|
|||||||
"getStatus",
|
"getStatus",
|
||||||
"getMetrics",
|
"getMetrics",
|
||||||
"getConnection",
|
"getConnection",
|
||||||
"setHostname"
|
"setHostname",
|
||||||
|
"getDnsQueries",
|
||||||
|
"getDnsStats"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"uci": [
|
"uci": [
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_VERSION:=1.24.3
|
PKG_VERSION:=1.24.4
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI Support for nikki
|
LUCI_TITLE:=LuCI Support for nikki
|
||||||
LUCI_DEPENDS:=+luci-base +nikki
|
LUCI_DEPENDS:=+luci-base +nikki
|
||||||
|
|||||||
@@ -249,6 +249,10 @@ return view.extend({
|
|||||||
o.datatype = 'cidr4';
|
o.datatype = 'cidr4';
|
||||||
o.placeholder = _('Unmodified');
|
o.placeholder = _('Unmodified');
|
||||||
|
|
||||||
|
o = s.taboption('dns', form.Value, 'fake_ip6_range', _('Fake-IP6 Range'));
|
||||||
|
o.datatype = 'cidr6';
|
||||||
|
o.placeholder = _('Unmodified');
|
||||||
|
|
||||||
o = s.taboption('dns', form.Flag, 'fake_ip_filter', _('Overwrite Fake-IP Filter'));
|
o = s.taboption('dns', form.Flag, 'fake_ip_filter', _('Overwrite Fake-IP Filter'));
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ msgstr ""
|
|||||||
msgid "Allow Lan"
|
msgid "Allow Lan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267
|
||||||
msgid "Allow Mode"
|
msgid "Allow Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -48,19 +48,19 @@ msgstr ""
|
|||||||
msgid "App Version"
|
msgid "App Version"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:486
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:490
|
||||||
msgid "Append Rule"
|
msgid "Append Rule"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421
|
||||||
msgid "Append Rule Provider"
|
msgid "Append Rule Provider"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:477
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266
|
||||||
msgid "Block Mode"
|
msgid "Block Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -143,15 +143,15 @@ msgstr ""
|
|||||||
msgid "Debug Log"
|
msgid "Debug Log"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513
|
||||||
msgid "Destination IP"
|
msgid "Destination IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517
|
||||||
msgid "Destination IP Geo"
|
msgid "Destination IP Geo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514
|
||||||
msgid "Destination Port"
|
msgid "Destination Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -181,15 +181,15 @@ msgstr ""
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:377
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
|
||||||
msgid "Disable"
|
msgid "Disable"
|
||||||
@@ -211,32 +211,32 @@ msgstr ""
|
|||||||
msgid "Disable TCP Keep Alive"
|
msgid "Disable TCP Keep Alive"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281
|
||||||
msgid "DoH Prefer HTTP/3"
|
msgid "DoH Prefer HTTP/3"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
|
||||||
msgid "Domain Name"
|
msgid "Domain Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:516
|
||||||
msgid "Domain Name Geo"
|
msgid "Domain Name Geo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
|
||||||
msgid "Domain Name Keyword"
|
msgid "Domain Name Keyword"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
|
||||||
msgid "Domain Name Regex"
|
msgid "Domain Name Regex"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
|
||||||
msgid "Domain Name Suffix"
|
msgid "Domain Name Suffix"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
|
||||||
msgid "Domain Name Wildcard"
|
msgid "Domain Name Wildcard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -248,27 +248,27 @@ msgstr ""
|
|||||||
msgid "Edit DNS Hijacks"
|
msgid "Edit DNS Hijacks"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
|
||||||
msgid "Edit Fake-IP Filters"
|
msgid "Edit Fake-IP Filters"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302
|
||||||
msgid "Edit Hosts"
|
msgid "Edit Hosts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344
|
||||||
msgid "Edit Nameserver Policies"
|
msgid "Edit Nameserver Policies"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:317
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321
|
||||||
msgid "Edit Nameservers"
|
msgid "Edit Nameservers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
|
||||||
msgid "Edit Rule Providers"
|
msgid "Edit Rule Providers"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:489
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493
|
||||||
msgid "Edit Rules"
|
msgid "Edit Rules"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -295,23 +295,23 @@ msgstr ""
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:297
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:325
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:352
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:497
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:569
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
|
||||||
@@ -332,11 +332,11 @@ msgstr ""
|
|||||||
msgid "External Control Config"
|
msgid "External Control Config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269
|
||||||
msgid "Fake-IP Cache"
|
msgid "Fake-IP Cache"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
|
||||||
msgid "Fake-IP Filter Mode"
|
msgid "Fake-IP Filter Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -348,19 +348,23 @@ msgstr ""
|
|||||||
msgid "Fake-IP Range"
|
msgid "Fake-IP Range"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252
|
||||||
|
msgid "Fake-IP6 Range"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:132
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:132
|
||||||
msgid "Fast Reload"
|
msgid "Fast Reload"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:471
|
||||||
msgid "File Format"
|
msgid "File Format"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465
|
||||||
msgid "File Path"
|
msgid "File Path"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:455
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
|
||||||
msgid "File Size Limit"
|
msgid "File Size Limit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -373,7 +377,7 @@ msgstr ""
|
|||||||
msgid "File:"
|
msgid "File:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383
|
||||||
msgid "Force Sniff Domain Name"
|
msgid "Force Sniff Domain Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -394,39 +398,39 @@ msgstr ""
|
|||||||
msgid "Generate & Download"
|
msgid "Generate & Download"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544
|
||||||
msgid "GeoData Loader"
|
msgid "GeoData Loader"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538
|
||||||
msgid "GeoIP Format"
|
msgid "GeoIP Format"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
|
||||||
msgid "GeoIP(ASN) Url"
|
msgid "GeoIP(ASN) Url"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556
|
||||||
msgid "GeoIP(DAT) Url"
|
msgid "GeoIP(DAT) Url"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553
|
||||||
msgid "GeoIP(MMDB) Url"
|
msgid "GeoIP(MMDB) Url"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550
|
||||||
msgid "GeoSite Url"
|
msgid "GeoSite Url"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562
|
||||||
msgid "GeoX Auto Update"
|
msgid "GeoX Auto Update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536
|
||||||
msgid "GeoX Config"
|
msgid "GeoX Config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
|
||||||
msgid "GeoX Update Interval"
|
msgid "GeoX Update Interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -478,7 +482,7 @@ msgstr ""
|
|||||||
msgid "IPv6 Proxy"
|
msgid "IPv6 Proxy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
|
||||||
msgid "Ignore Sniff Domain Name"
|
msgid "Ignore Sniff Domain Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -515,12 +519,12 @@ msgstr ""
|
|||||||
msgid "Match Process"
|
msgid "Match Process"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:515
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:519
|
||||||
msgid "Matcher"
|
msgid "Matcher"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
|
||||||
msgid "Memory Conservative Loader"
|
msgid "Memory Conservative Loader"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -532,7 +536,7 @@ msgstr ""
|
|||||||
msgid "Mixin Config"
|
msgid "Mixin Config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572
|
||||||
msgid "Mixin File Content"
|
msgid "Mixin File Content"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -544,12 +548,12 @@ msgstr ""
|
|||||||
msgid "Mode"
|
msgid "Mode"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:438
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358
|
||||||
msgid "Nameserver"
|
msgid "Nameserver"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -558,12 +562,12 @@ msgstr ""
|
|||||||
msgid "Nikki"
|
msgid "Nikki"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:526
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530
|
||||||
msgid "No Resolve"
|
msgid "No Resolve"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:519
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:523
|
||||||
msgid "Node"
|
msgid "Node"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -595,35 +599,35 @@ msgstr ""
|
|||||||
msgid "Overwrite DNS Hijack"
|
msgid "Overwrite DNS Hijack"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:416
|
||||||
msgid "Overwrite Destination"
|
msgid "Overwrite Destination"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256
|
||||||
msgid "Overwrite Fake-IP Filter"
|
msgid "Overwrite Fake-IP Filter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:380
|
||||||
msgid "Overwrite Force Sniff Domain Name"
|
msgid "Overwrite Force Sniff Domain Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299
|
||||||
msgid "Overwrite Hosts"
|
msgid "Overwrite Hosts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
|
||||||
msgid "Overwrite Ignore Sniff Domain Name"
|
msgid "Overwrite Ignore Sniff Domain Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:314
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318
|
||||||
msgid "Overwrite Nameserver"
|
msgid "Overwrite Nameserver"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:341
|
||||||
msgid "Overwrite Nameserver Policy"
|
msgid "Overwrite Nameserver Policy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394
|
||||||
msgid "Overwrite Sniff By Protocol"
|
msgid "Overwrite Sniff By Protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -631,11 +635,11 @@ msgstr ""
|
|||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:569
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574
|
||||||
msgid "Please go to the editor tab to edit the file for mixin"
|
msgid "Please go to the editor tab to edit the file for mixin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -643,7 +647,7 @@ msgstr ""
|
|||||||
msgid "Prefer"
|
msgid "Prefer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:515
|
||||||
msgid "Process Name"
|
msgid "Process Name"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -656,7 +660,7 @@ msgstr ""
|
|||||||
msgid "Profile for Startup"
|
msgid "Profile for Startup"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407
|
||||||
msgid "Protocol"
|
msgid "Protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -699,7 +703,7 @@ msgstr ""
|
|||||||
msgid "Remote"
|
msgid "Remote"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275
|
||||||
msgid "Respect Rules"
|
msgid "Respect Rules"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -711,7 +715,7 @@ msgstr ""
|
|||||||
msgid "Router Proxy"
|
msgid "Router Proxy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419
|
||||||
msgid "Rule Config"
|
msgid "Rule Config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -723,7 +727,7 @@ msgstr ""
|
|||||||
msgid "Rule Provider:"
|
msgid "Rule Provider:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
|
||||||
msgid "Rule Set"
|
msgid "Rule Set"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -756,19 +760,19 @@ msgstr ""
|
|||||||
msgid "Skip System IPv6 Check"
|
msgid "Skip System IPv6 Check"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:397
|
||||||
msgid "Sniff By Protocol"
|
msgid "Sniff By Protocol"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374
|
||||||
msgid "Sniff Pure IP"
|
msgid "Sniff Pure IP"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
|
||||||
msgid "Sniff Redir-Host"
|
msgid "Sniff Redir-Host"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:356
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
|
||||||
msgid "Sniffer Config"
|
msgid "Sniffer Config"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -784,7 +788,7 @@ msgstr ""
|
|||||||
msgid "Stack Size Soft Limit"
|
msgid "Stack Size Soft Limit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547
|
||||||
msgid "Standard Loader"
|
msgid "Standard Loader"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -867,9 +871,9 @@ msgstr ""
|
|||||||
msgid "Transparent Proxy with Mihomo on OpenWrt."
|
msgid "Transparent Proxy with Mihomo on OpenWrt."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:328
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:437
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:441
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
|
||||||
msgid "Type"
|
msgid "Type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -938,23 +942,24 @@ msgstr ""
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:244
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:244
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:570
|
||||||
msgid "Unmodified"
|
msgid "Unmodified"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -970,7 +975,7 @@ msgstr ""
|
|||||||
msgid "Update Dashboard"
|
msgid "Update Dashboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
|
||||||
msgid "Update Interval"
|
msgid "Update Interval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -978,15 +983,15 @@ msgstr ""
|
|||||||
msgid "Upload Profile"
|
msgid "Upload Profile"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:443
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447
|
||||||
msgid "Url"
|
msgid "Url"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293
|
||||||
msgid "Use Hosts"
|
msgid "Use Hosts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
|
||||||
msgid "Use System Hosts"
|
msgid "Use System Hosts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ msgstr "全部端口"
|
|||||||
msgid "Allow Lan"
|
msgid "Allow Lan"
|
||||||
msgstr "允许局域网访问"
|
msgstr "允许局域网访问"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267
|
||||||
msgid "Allow Mode"
|
msgid "Allow Mode"
|
||||||
msgstr "白名单模式"
|
msgstr "白名单模式"
|
||||||
|
|
||||||
@@ -55,19 +55,19 @@ msgstr "插件日志"
|
|||||||
msgid "App Version"
|
msgid "App Version"
|
||||||
msgstr "插件版本"
|
msgstr "插件版本"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:486
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:490
|
||||||
msgid "Append Rule"
|
msgid "Append Rule"
|
||||||
msgstr "追加规则"
|
msgstr "追加规则"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421
|
||||||
msgid "Append Rule Provider"
|
msgid "Append Rule Provider"
|
||||||
msgstr "追加规则提供者"
|
msgstr "追加规则提供者"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:477
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "行为"
|
msgstr "行为"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266
|
||||||
msgid "Block Mode"
|
msgid "Block Mode"
|
||||||
msgstr "黑名单模式"
|
msgstr "黑名单模式"
|
||||||
|
|
||||||
@@ -150,15 +150,15 @@ msgstr "DNS 模式"
|
|||||||
msgid "Debug Log"
|
msgid "Debug Log"
|
||||||
msgstr "调试日志"
|
msgstr "调试日志"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513
|
||||||
msgid "Destination IP"
|
msgid "Destination IP"
|
||||||
msgstr "目标 IP"
|
msgstr "目标 IP"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517
|
||||||
msgid "Destination IP Geo"
|
msgid "Destination IP Geo"
|
||||||
msgstr "目标 IP(Geo)"
|
msgstr "目标 IP(Geo)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514
|
||||||
msgid "Destination Port"
|
msgid "Destination Port"
|
||||||
msgstr "目标端口"
|
msgstr "目标端口"
|
||||||
|
|
||||||
@@ -188,15 +188,15 @@ msgstr "直连模式"
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:377
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
|
||||||
msgid "Disable"
|
msgid "Disable"
|
||||||
@@ -218,32 +218,32 @@ msgstr "禁用回环检测"
|
|||||||
msgid "Disable TCP Keep Alive"
|
msgid "Disable TCP Keep Alive"
|
||||||
msgstr "禁用 TCP Keep Alive"
|
msgstr "禁用 TCP Keep Alive"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281
|
||||||
msgid "DoH Prefer HTTP/3"
|
msgid "DoH Prefer HTTP/3"
|
||||||
msgstr "DoH 优先 HTTP/3"
|
msgstr "DoH 优先 HTTP/3"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
|
||||||
msgid "Domain Name"
|
msgid "Domain Name"
|
||||||
msgstr "域名"
|
msgstr "域名"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:516
|
||||||
msgid "Domain Name Geo"
|
msgid "Domain Name Geo"
|
||||||
msgstr "域名(Geo)"
|
msgstr "域名(Geo)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
|
||||||
msgid "Domain Name Keyword"
|
msgid "Domain Name Keyword"
|
||||||
msgstr "域名(关键字)"
|
msgstr "域名(关键字)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
|
||||||
msgid "Domain Name Regex"
|
msgid "Domain Name Regex"
|
||||||
msgstr "域名(正则表达式)"
|
msgstr "域名(正则表达式)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
|
||||||
msgid "Domain Name Suffix"
|
msgid "Domain Name Suffix"
|
||||||
msgstr "域名(后缀)"
|
msgstr "域名(后缀)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
|
||||||
msgid "Domain Name Wildcard"
|
msgid "Domain Name Wildcard"
|
||||||
msgstr "域名(通配符)"
|
msgstr "域名(通配符)"
|
||||||
|
|
||||||
@@ -255,27 +255,27 @@ msgstr "编辑身份验证"
|
|||||||
msgid "Edit DNS Hijacks"
|
msgid "Edit DNS Hijacks"
|
||||||
msgstr "编辑 DNS 劫持"
|
msgstr "编辑 DNS 劫持"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
|
||||||
msgid "Edit Fake-IP Filters"
|
msgid "Edit Fake-IP Filters"
|
||||||
msgstr "编辑 Fake-IP 过滤列表"
|
msgstr "编辑 Fake-IP 过滤列表"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302
|
||||||
msgid "Edit Hosts"
|
msgid "Edit Hosts"
|
||||||
msgstr "编辑 Hosts"
|
msgstr "编辑 Hosts"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344
|
||||||
msgid "Edit Nameserver Policies"
|
msgid "Edit Nameserver Policies"
|
||||||
msgstr "编辑 DNS 服务器查询策略"
|
msgstr "编辑 DNS 服务器查询策略"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:317
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321
|
||||||
msgid "Edit Nameservers"
|
msgid "Edit Nameservers"
|
||||||
msgstr "编辑 DNS 服务器"
|
msgstr "编辑 DNS 服务器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
|
||||||
msgid "Edit Rule Providers"
|
msgid "Edit Rule Providers"
|
||||||
msgstr "编辑规则提供者"
|
msgstr "编辑规则提供者"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:489
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493
|
||||||
msgid "Edit Rules"
|
msgid "Edit Rules"
|
||||||
msgstr "编辑规则"
|
msgstr "编辑规则"
|
||||||
|
|
||||||
@@ -302,23 +302,23 @@ msgstr "编辑器"
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:297
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:325
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:352
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:497
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:569
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
|
||||||
@@ -339,11 +339,11 @@ msgstr "到期时间"
|
|||||||
msgid "External Control Config"
|
msgid "External Control Config"
|
||||||
msgstr "外部控制配置"
|
msgstr "外部控制配置"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269
|
||||||
msgid "Fake-IP Cache"
|
msgid "Fake-IP Cache"
|
||||||
msgstr "Fake-IP 缓存"
|
msgstr "Fake-IP 缓存"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
|
||||||
msgid "Fake-IP Filter Mode"
|
msgid "Fake-IP Filter Mode"
|
||||||
msgstr "Fake-IP 过滤模式"
|
msgstr "Fake-IP 过滤模式"
|
||||||
|
|
||||||
@@ -355,19 +355,23 @@ msgstr "Fake-IP Ping 劫持"
|
|||||||
msgid "Fake-IP Range"
|
msgid "Fake-IP Range"
|
||||||
msgstr "Fake-IP 范围"
|
msgstr "Fake-IP 范围"
|
||||||
|
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252
|
||||||
|
msgid "Fake-IP6 Range"
|
||||||
|
msgstr "Fake-IP6 范围"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:132
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:132
|
||||||
msgid "Fast Reload"
|
msgid "Fast Reload"
|
||||||
msgstr "快速重载"
|
msgstr "快速重载"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:471
|
||||||
msgid "File Format"
|
msgid "File Format"
|
||||||
msgstr "文件格式"
|
msgstr "文件格式"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465
|
||||||
msgid "File Path"
|
msgid "File Path"
|
||||||
msgstr "文件路径"
|
msgstr "文件路径"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:455
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
|
||||||
msgid "File Size Limit"
|
msgid "File Size Limit"
|
||||||
msgstr "文件大小限制"
|
msgstr "文件大小限制"
|
||||||
|
|
||||||
@@ -380,7 +384,7 @@ msgstr "用于混入的文件"
|
|||||||
msgid "File:"
|
msgid "File:"
|
||||||
msgstr "文件:"
|
msgstr "文件:"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383
|
||||||
msgid "Force Sniff Domain Name"
|
msgid "Force Sniff Domain Name"
|
||||||
msgstr "强制嗅探的域名"
|
msgstr "强制嗅探的域名"
|
||||||
|
|
||||||
@@ -401,39 +405,39 @@ msgstr "全局配置"
|
|||||||
msgid "Generate & Download"
|
msgid "Generate & Download"
|
||||||
msgstr "生成并下载"
|
msgstr "生成并下载"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544
|
||||||
msgid "GeoData Loader"
|
msgid "GeoData Loader"
|
||||||
msgstr "GeoData 加载器"
|
msgstr "GeoData 加载器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538
|
||||||
msgid "GeoIP Format"
|
msgid "GeoIP Format"
|
||||||
msgstr "GeoIP 格式"
|
msgstr "GeoIP 格式"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
|
||||||
msgid "GeoIP(ASN) Url"
|
msgid "GeoIP(ASN) Url"
|
||||||
msgstr "GeoIP(ASN) 下载地址"
|
msgstr "GeoIP(ASN) 下载地址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556
|
||||||
msgid "GeoIP(DAT) Url"
|
msgid "GeoIP(DAT) Url"
|
||||||
msgstr "GeoIP(DAT) 下载地址"
|
msgstr "GeoIP(DAT) 下载地址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553
|
||||||
msgid "GeoIP(MMDB) Url"
|
msgid "GeoIP(MMDB) Url"
|
||||||
msgstr "GeoIP(MMDB) 下载地址"
|
msgstr "GeoIP(MMDB) 下载地址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550
|
||||||
msgid "GeoSite Url"
|
msgid "GeoSite Url"
|
||||||
msgstr "GeoSite 下载地址"
|
msgstr "GeoSite 下载地址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562
|
||||||
msgid "GeoX Auto Update"
|
msgid "GeoX Auto Update"
|
||||||
msgstr "定时更新GeoX文件"
|
msgstr "定时更新GeoX文件"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536
|
||||||
msgid "GeoX Config"
|
msgid "GeoX Config"
|
||||||
msgstr "GeoX 配置"
|
msgstr "GeoX 配置"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
|
||||||
msgid "GeoX Update Interval"
|
msgid "GeoX Update Interval"
|
||||||
msgstr "GeoX 文件更新间隔"
|
msgstr "GeoX 文件更新间隔"
|
||||||
|
|
||||||
@@ -485,7 +489,7 @@ msgstr "IPv6 DNS 劫持"
|
|||||||
msgid "IPv6 Proxy"
|
msgid "IPv6 Proxy"
|
||||||
msgstr "IPv6 代理"
|
msgstr "IPv6 代理"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
|
||||||
msgid "Ignore Sniff Domain Name"
|
msgid "Ignore Sniff Domain Name"
|
||||||
msgstr "忽略嗅探的域名"
|
msgstr "忽略嗅探的域名"
|
||||||
|
|
||||||
@@ -522,12 +526,12 @@ msgstr "最大传输单元"
|
|||||||
msgid "Match Process"
|
msgid "Match Process"
|
||||||
msgstr "匹配进程"
|
msgstr "匹配进程"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:515
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:519
|
||||||
msgid "Matcher"
|
msgid "Matcher"
|
||||||
msgstr "匹配"
|
msgstr "匹配"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
|
||||||
msgid "Memory Conservative Loader"
|
msgid "Memory Conservative Loader"
|
||||||
msgstr "为内存受限设备优化的加载器"
|
msgstr "为内存受限设备优化的加载器"
|
||||||
|
|
||||||
@@ -539,7 +543,7 @@ msgstr "混合端口"
|
|||||||
msgid "Mixin Config"
|
msgid "Mixin Config"
|
||||||
msgstr "混入配置"
|
msgstr "混入配置"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572
|
||||||
msgid "Mixin File Content"
|
msgid "Mixin File Content"
|
||||||
msgstr "混入文件内容"
|
msgstr "混入文件内容"
|
||||||
|
|
||||||
@@ -551,12 +555,12 @@ msgstr "混入选项"
|
|||||||
msgid "Mode"
|
msgid "Mode"
|
||||||
msgstr "模式"
|
msgstr "模式"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:438
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名称"
|
msgstr "名称"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358
|
||||||
msgid "Nameserver"
|
msgid "Nameserver"
|
||||||
msgstr "DNS 服务器"
|
msgstr "DNS 服务器"
|
||||||
|
|
||||||
@@ -565,12 +569,12 @@ msgstr "DNS 服务器"
|
|||||||
msgid "Nikki"
|
msgid "Nikki"
|
||||||
msgstr "Nikki"
|
msgstr "Nikki"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:526
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530
|
||||||
msgid "No Resolve"
|
msgid "No Resolve"
|
||||||
msgstr "不解析"
|
msgstr "不解析"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:519
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:523
|
||||||
msgid "Node"
|
msgid "Node"
|
||||||
msgstr "节点"
|
msgstr "节点"
|
||||||
|
|
||||||
@@ -602,35 +606,35 @@ msgstr "覆盖身份验证"
|
|||||||
msgid "Overwrite DNS Hijack"
|
msgid "Overwrite DNS Hijack"
|
||||||
msgstr "覆盖 DNS 劫持"
|
msgstr "覆盖 DNS 劫持"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:416
|
||||||
msgid "Overwrite Destination"
|
msgid "Overwrite Destination"
|
||||||
msgstr "将嗅探结果作为连接目标"
|
msgstr "将嗅探结果作为连接目标"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256
|
||||||
msgid "Overwrite Fake-IP Filter"
|
msgid "Overwrite Fake-IP Filter"
|
||||||
msgstr "覆盖 Fake-IP 过滤列表"
|
msgstr "覆盖 Fake-IP 过滤列表"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:380
|
||||||
msgid "Overwrite Force Sniff Domain Name"
|
msgid "Overwrite Force Sniff Domain Name"
|
||||||
msgstr "覆盖强制嗅探的域名"
|
msgstr "覆盖强制嗅探的域名"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299
|
||||||
msgid "Overwrite Hosts"
|
msgid "Overwrite Hosts"
|
||||||
msgstr "覆盖 Hosts"
|
msgstr "覆盖 Hosts"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
|
||||||
msgid "Overwrite Ignore Sniff Domain Name"
|
msgid "Overwrite Ignore Sniff Domain Name"
|
||||||
msgstr "覆盖忽略嗅探的域名"
|
msgstr "覆盖忽略嗅探的域名"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:314
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318
|
||||||
msgid "Overwrite Nameserver"
|
msgid "Overwrite Nameserver"
|
||||||
msgstr "覆盖 DNS 服务器"
|
msgstr "覆盖 DNS 服务器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:341
|
||||||
msgid "Overwrite Nameserver Policy"
|
msgid "Overwrite Nameserver Policy"
|
||||||
msgstr "覆盖 DNS 服务器查询策略"
|
msgstr "覆盖 DNS 服务器查询策略"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394
|
||||||
msgid "Overwrite Sniff By Protocol"
|
msgid "Overwrite Sniff By Protocol"
|
||||||
msgstr "覆盖按协议嗅探"
|
msgstr "覆盖按协议嗅探"
|
||||||
|
|
||||||
@@ -638,11 +642,11 @@ msgstr "覆盖按协议嗅探"
|
|||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密码"
|
msgstr "密码"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:569
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574
|
||||||
msgid "Please go to the editor tab to edit the file for mixin"
|
msgid "Please go to the editor tab to edit the file for mixin"
|
||||||
msgstr "请前往编辑器标签编辑用于混入的文件"
|
msgstr "请前往编辑器标签编辑用于混入的文件"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "端口"
|
msgstr "端口"
|
||||||
|
|
||||||
@@ -650,7 +654,7 @@ msgstr "端口"
|
|||||||
msgid "Prefer"
|
msgid "Prefer"
|
||||||
msgstr "优先"
|
msgstr "优先"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:515
|
||||||
msgid "Process Name"
|
msgid "Process Name"
|
||||||
msgstr "进程名"
|
msgstr "进程名"
|
||||||
|
|
||||||
@@ -663,7 +667,7 @@ msgstr "配置文件"
|
|||||||
msgid "Profile for Startup"
|
msgid "Profile for Startup"
|
||||||
msgstr "用于启动的配置文件"
|
msgstr "用于启动的配置文件"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407
|
||||||
msgid "Protocol"
|
msgid "Protocol"
|
||||||
msgstr "协议"
|
msgstr "协议"
|
||||||
|
|
||||||
@@ -706,7 +710,7 @@ msgstr "重载服务"
|
|||||||
msgid "Remote"
|
msgid "Remote"
|
||||||
msgstr "远程"
|
msgstr "远程"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275
|
||||||
msgid "Respect Rules"
|
msgid "Respect Rules"
|
||||||
msgstr "遵循分流规则"
|
msgstr "遵循分流规则"
|
||||||
|
|
||||||
@@ -718,7 +722,7 @@ msgstr "重启服务"
|
|||||||
msgid "Router Proxy"
|
msgid "Router Proxy"
|
||||||
msgstr "路由器代理"
|
msgstr "路由器代理"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419
|
||||||
msgid "Rule Config"
|
msgid "Rule Config"
|
||||||
msgstr "规则配置"
|
msgstr "规则配置"
|
||||||
|
|
||||||
@@ -730,7 +734,7 @@ msgstr "规则模式"
|
|||||||
msgid "Rule Provider:"
|
msgid "Rule Provider:"
|
||||||
msgstr "规则提供者:"
|
msgstr "规则提供者:"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
|
||||||
msgid "Rule Set"
|
msgid "Rule Set"
|
||||||
msgstr "规则集"
|
msgstr "规则集"
|
||||||
|
|
||||||
@@ -763,19 +767,19 @@ msgstr "滚动到底部"
|
|||||||
msgid "Skip System IPv6 Check"
|
msgid "Skip System IPv6 Check"
|
||||||
msgstr "跳过系统 IPv6 检查"
|
msgstr "跳过系统 IPv6 检查"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:397
|
||||||
msgid "Sniff By Protocol"
|
msgid "Sniff By Protocol"
|
||||||
msgstr "按协议嗅探"
|
msgstr "按协议嗅探"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374
|
||||||
msgid "Sniff Pure IP"
|
msgid "Sniff Pure IP"
|
||||||
msgstr "嗅探纯 IP 连接"
|
msgstr "嗅探纯 IP 连接"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
|
||||||
msgid "Sniff Redir-Host"
|
msgid "Sniff Redir-Host"
|
||||||
msgstr "嗅探 Redir-Host 流量"
|
msgstr "嗅探 Redir-Host 流量"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:356
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
|
||||||
msgid "Sniffer Config"
|
msgid "Sniffer Config"
|
||||||
msgstr "嗅探器配置"
|
msgstr "嗅探器配置"
|
||||||
|
|
||||||
@@ -791,7 +795,7 @@ msgstr "栈大小硬限制"
|
|||||||
msgid "Stack Size Soft Limit"
|
msgid "Stack Size Soft Limit"
|
||||||
msgstr "栈大小软限制"
|
msgstr "栈大小软限制"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547
|
||||||
msgid "Standard Loader"
|
msgid "Standard Loader"
|
||||||
msgstr "标准加载器"
|
msgstr "标准加载器"
|
||||||
|
|
||||||
@@ -874,9 +878,9 @@ msgstr "总量"
|
|||||||
msgid "Transparent Proxy with Mihomo on OpenWrt."
|
msgid "Transparent Proxy with Mihomo on OpenWrt."
|
||||||
msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。"
|
msgstr "在 OpenWrt 上使用 Mihomo 进行透明代理。"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:328
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:437
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:441
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
|
||||||
msgid "Type"
|
msgid "Type"
|
||||||
msgstr "类型"
|
msgstr "类型"
|
||||||
|
|
||||||
@@ -945,23 +949,24 @@ msgstr "无限制"
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:244
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:244
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:570
|
||||||
msgid "Unmodified"
|
msgid "Unmodified"
|
||||||
msgstr "不修改"
|
msgstr "不修改"
|
||||||
|
|
||||||
@@ -977,7 +982,7 @@ msgstr "更新时间"
|
|||||||
msgid "Update Dashboard"
|
msgid "Update Dashboard"
|
||||||
msgstr "更新面板"
|
msgstr "更新面板"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
|
||||||
msgid "Update Interval"
|
msgid "Update Interval"
|
||||||
msgstr "更新间隔"
|
msgstr "更新间隔"
|
||||||
|
|
||||||
@@ -985,15 +990,15 @@ msgstr "更新间隔"
|
|||||||
msgid "Upload Profile"
|
msgid "Upload Profile"
|
||||||
msgstr "上传配置文件"
|
msgstr "上传配置文件"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:443
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447
|
||||||
msgid "Url"
|
msgid "Url"
|
||||||
msgstr "下载地址"
|
msgstr "下载地址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293
|
||||||
msgid "Use Hosts"
|
msgid "Use Hosts"
|
||||||
msgstr "使用 Hosts"
|
msgstr "使用 Hosts"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
|
||||||
msgid "Use System Hosts"
|
msgid "Use System Hosts"
|
||||||
msgstr "使用系统的 Hosts"
|
msgstr "使用系统的 Hosts"
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ msgstr "所有埠"
|
|||||||
msgid "Allow Lan"
|
msgid "Allow Lan"
|
||||||
msgstr "允許區域網路存取"
|
msgstr "允許區域網路存取"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267
|
||||||
msgid "Allow Mode"
|
msgid "Allow Mode"
|
||||||
msgstr "白名單模式"
|
msgstr "白名單模式"
|
||||||
|
|
||||||
@@ -55,19 +55,19 @@ msgstr "應用程式日誌"
|
|||||||
msgid "App Version"
|
msgid "App Version"
|
||||||
msgstr "應用程式版本"
|
msgstr "應用程式版本"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:486
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:490
|
||||||
msgid "Append Rule"
|
msgid "Append Rule"
|
||||||
msgstr "追加規則"
|
msgstr "追加規則"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:417
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:421
|
||||||
msgid "Append Rule Provider"
|
msgid "Append Rule Provider"
|
||||||
msgstr "追加規則提供者"
|
msgstr "追加規則提供者"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:473
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:477
|
||||||
msgid "Behavior"
|
msgid "Behavior"
|
||||||
msgstr "行為"
|
msgstr "行為"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:262
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:266
|
||||||
msgid "Block Mode"
|
msgid "Block Mode"
|
||||||
msgstr "黑名單模式"
|
msgstr "黑名單模式"
|
||||||
|
|
||||||
@@ -150,15 +150,15 @@ msgstr "DNS 模式"
|
|||||||
msgid "Debug Log"
|
msgid "Debug Log"
|
||||||
msgstr "除錯日誌"
|
msgstr "除錯日誌"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513
|
||||||
msgid "Destination IP"
|
msgid "Destination IP"
|
||||||
msgstr "目標 IP"
|
msgstr "目標 IP"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:513
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:517
|
||||||
msgid "Destination IP Geo"
|
msgid "Destination IP Geo"
|
||||||
msgstr "目標 IP(地理位置)"
|
msgstr "目標 IP(地理位置)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:514
|
||||||
msgid "Destination Port"
|
msgid "Destination Port"
|
||||||
msgstr "目標埠"
|
msgstr "目標埠"
|
||||||
|
|
||||||
@@ -188,15 +188,15 @@ msgstr "直連模式"
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:208
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:229
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:239
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:268
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:272
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:274
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:278
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:280
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:284
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:286
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:290
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:292
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:296
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:361
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:365
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:367
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:371
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:373
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:377
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:38
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:45
|
||||||
msgid "Disable"
|
msgid "Disable"
|
||||||
@@ -218,32 +218,32 @@ msgstr "停用迴路檢測"
|
|||||||
msgid "Disable TCP Keep Alive"
|
msgid "Disable TCP Keep Alive"
|
||||||
msgstr "停用 TCP Keep Alive"
|
msgstr "停用 TCP Keep Alive"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281
|
||||||
msgid "DoH Prefer HTTP/3"
|
msgid "DoH Prefer HTTP/3"
|
||||||
msgstr "DoH 優先使用 HTTP/3"
|
msgstr "DoH 優先使用 HTTP/3"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:309
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:313
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:504
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
|
||||||
msgid "Domain Name"
|
msgid "Domain Name"
|
||||||
msgstr "網域名稱"
|
msgstr "網域名稱"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:516
|
||||||
msgid "Domain Name Geo"
|
msgid "Domain Name Geo"
|
||||||
msgstr "網域名稱(地理位置)"
|
msgstr "網域名稱(地理位置)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
|
||||||
msgid "Domain Name Keyword"
|
msgid "Domain Name Keyword"
|
||||||
msgstr "網域名稱(關鍵字)"
|
msgstr "網域名稱(關鍵字)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:508
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:512
|
||||||
msgid "Domain Name Regex"
|
msgid "Domain Name Regex"
|
||||||
msgstr "網域名稱(正則表達式)"
|
msgstr "網域名稱(正則表達式)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:509
|
||||||
msgid "Domain Name Suffix"
|
msgid "Domain Name Suffix"
|
||||||
msgstr "網域名稱(後綴)"
|
msgstr "網域名稱(後綴)"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:506
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:510
|
||||||
msgid "Domain Name Wildcard"
|
msgid "Domain Name Wildcard"
|
||||||
msgstr "網域名稱(通配符)"
|
msgstr "網域名稱(通配符)"
|
||||||
|
|
||||||
@@ -255,27 +255,27 @@ msgstr "編輯身分驗證"
|
|||||||
msgid "Edit DNS Hijacks"
|
msgid "Edit DNS Hijacks"
|
||||||
msgstr "編輯 DNS 劫持"
|
msgstr "編輯 DNS 劫持"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:255
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
|
||||||
msgid "Edit Fake-IP Filters"
|
msgid "Edit Fake-IP Filters"
|
||||||
msgstr "編輯 Fake-IP 過濾清單"
|
msgstr "編輯 Fake-IP 過濾清單"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:298
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:302
|
||||||
msgid "Edit Hosts"
|
msgid "Edit Hosts"
|
||||||
msgstr "編輯 Hosts"
|
msgstr "編輯 Hosts"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:340
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:344
|
||||||
msgid "Edit Nameserver Policies"
|
msgid "Edit Nameserver Policies"
|
||||||
msgstr "編輯 DNS 伺服器查詢策略"
|
msgstr "編輯 DNS 伺服器查詢策略"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:317
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:321
|
||||||
msgid "Edit Nameservers"
|
msgid "Edit Nameservers"
|
||||||
msgstr "編輯 DNS 伺服器"
|
msgstr "編輯 DNS 伺服器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:420
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:424
|
||||||
msgid "Edit Rule Providers"
|
msgid "Edit Rule Providers"
|
||||||
msgstr "編輯規則提供者"
|
msgstr "編輯規則提供者"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:489
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:493
|
||||||
msgid "Edit Rules"
|
msgid "Edit Rules"
|
||||||
msgstr "編輯規則"
|
msgstr "編輯規則"
|
||||||
|
|
||||||
@@ -302,23 +302,23 @@ msgstr "編輯器"
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:226
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:230
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:240
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:281
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:297
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:306
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:310
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:325
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:329
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:348
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:352
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:362
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:400
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:378
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:428
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:404
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:497
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:432
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:561
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:569
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:566
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:33
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:66
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/proxy.js:77
|
||||||
@@ -339,11 +339,11 @@ msgstr "到期時間"
|
|||||||
msgid "External Control Config"
|
msgid "External Control Config"
|
||||||
msgstr "外部控制設定"
|
msgstr "外部控制設定"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:269
|
||||||
msgid "Fake-IP Cache"
|
msgid "Fake-IP Cache"
|
||||||
msgstr "Fake-IP 快取"
|
msgstr "Fake-IP 快取"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:259
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:263
|
||||||
msgid "Fake-IP Filter Mode"
|
msgid "Fake-IP Filter Mode"
|
||||||
msgstr "Fake-IP 過濾模式"
|
msgstr "Fake-IP 過濾模式"
|
||||||
|
|
||||||
@@ -355,19 +355,23 @@ msgstr "Fake-IP Ping 劫持"
|
|||||||
msgid "Fake-IP Range"
|
msgid "Fake-IP Range"
|
||||||
msgstr "Fake-IP 範圍"
|
msgstr "Fake-IP 範圍"
|
||||||
|
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252
|
||||||
|
msgid "Fake-IP6 Range"
|
||||||
|
msgstr "Fake-IP6 範圍"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:132
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/app.js:132
|
||||||
msgid "Fast Reload"
|
msgid "Fast Reload"
|
||||||
msgstr "快速重載"
|
msgstr "快速重載"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:467
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:471
|
||||||
msgid "File Format"
|
msgid "File Format"
|
||||||
msgstr "檔案格式"
|
msgstr "檔案格式"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:461
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:465
|
||||||
msgid "File Path"
|
msgid "File Path"
|
||||||
msgstr "檔案路徑"
|
msgstr "檔案路徑"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:455
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:459
|
||||||
msgid "File Size Limit"
|
msgid "File Size Limit"
|
||||||
msgstr "檔案大小限制"
|
msgstr "檔案大小限制"
|
||||||
|
|
||||||
@@ -380,7 +384,7 @@ msgstr "用於混入的檔案"
|
|||||||
msgid "File:"
|
msgid "File:"
|
||||||
msgstr "檔案:"
|
msgstr "檔案:"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:379
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383
|
||||||
msgid "Force Sniff Domain Name"
|
msgid "Force Sniff Domain Name"
|
||||||
msgstr "強制嗅探的網域名稱"
|
msgstr "強制嗅探的網域名稱"
|
||||||
|
|
||||||
@@ -401,39 +405,39 @@ msgstr "一般設定"
|
|||||||
msgid "Generate & Download"
|
msgid "Generate & Download"
|
||||||
msgstr "生成並下載"
|
msgstr "生成並下載"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:539
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:544
|
||||||
msgid "GeoData Loader"
|
msgid "GeoData Loader"
|
||||||
msgstr "GeoData 載入器"
|
msgstr "GeoData 載入器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:533
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:538
|
||||||
msgid "GeoIP Format"
|
msgid "GeoIP Format"
|
||||||
msgstr "GeoIP 格式"
|
msgstr "GeoIP 格式"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
|
||||||
msgid "GeoIP(ASN) Url"
|
msgid "GeoIP(ASN) Url"
|
||||||
msgstr "GeoIP(ASN) 下載網址"
|
msgstr "GeoIP(ASN) 下載網址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:556
|
||||||
msgid "GeoIP(DAT) Url"
|
msgid "GeoIP(DAT) Url"
|
||||||
msgstr "GeoIP(DAT) 下載網址"
|
msgstr "GeoIP(DAT) 下載網址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:553
|
||||||
msgid "GeoIP(MMDB) Url"
|
msgid "GeoIP(MMDB) Url"
|
||||||
msgstr "GeoIP(MMDB) 下載網址"
|
msgstr "GeoIP(MMDB) 下載網址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:545
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:550
|
||||||
msgid "GeoSite Url"
|
msgid "GeoSite Url"
|
||||||
msgstr "GeoSite 下載網址"
|
msgstr "GeoSite 下載網址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:562
|
||||||
msgid "GeoX Auto Update"
|
msgid "GeoX Auto Update"
|
||||||
msgstr "定時更新 GeoX 檔案"
|
msgstr "定時更新 GeoX 檔案"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:531
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:536
|
||||||
msgid "GeoX Config"
|
msgid "GeoX Config"
|
||||||
msgstr "GeoX 設定"
|
msgstr "GeoX 設定"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:563
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:568
|
||||||
msgid "GeoX Update Interval"
|
msgid "GeoX Update Interval"
|
||||||
msgstr "GeoX 檔案更新間隔"
|
msgstr "GeoX 檔案更新間隔"
|
||||||
|
|
||||||
@@ -485,7 +489,7 @@ msgstr "IPv6 DNS 劫持"
|
|||||||
msgid "IPv6 Proxy"
|
msgid "IPv6 Proxy"
|
||||||
msgstr "IPv6 代理"
|
msgstr "IPv6 代理"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:386
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
|
||||||
msgid "Ignore Sniff Domain Name"
|
msgid "Ignore Sniff Domain Name"
|
||||||
msgstr "忽略嗅探的網域名稱"
|
msgstr "忽略嗅探的網域名稱"
|
||||||
|
|
||||||
@@ -522,12 +526,12 @@ msgstr "最大傳輸單元"
|
|||||||
msgid "Match Process"
|
msgid "Match Process"
|
||||||
msgstr "匹配程序"
|
msgstr "匹配程序"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:351
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:355
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:515
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:519
|
||||||
msgid "Matcher"
|
msgid "Matcher"
|
||||||
msgstr "匹配器"
|
msgstr "匹配器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:543
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:548
|
||||||
msgid "Memory Conservative Loader"
|
msgid "Memory Conservative Loader"
|
||||||
msgstr "為記憶體受限裝置最佳化的載入器"
|
msgstr "為記憶體受限裝置最佳化的載入器"
|
||||||
|
|
||||||
@@ -539,7 +543,7 @@ msgstr "混合埠"
|
|||||||
msgid "Mixin Config"
|
msgid "Mixin Config"
|
||||||
msgstr "混入設定"
|
msgstr "混入設定"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:567
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:572
|
||||||
msgid "Mixin File Content"
|
msgid "Mixin File Content"
|
||||||
msgstr "混入檔案內容"
|
msgstr "混入檔案內容"
|
||||||
|
|
||||||
@@ -551,12 +555,12 @@ msgstr "混入選項"
|
|||||||
msgid "Mode"
|
msgid "Mode"
|
||||||
msgstr "模式"
|
msgstr "模式"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:434
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:438
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "名稱"
|
msgstr "名稱"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:335
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:339
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:354
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:358
|
||||||
msgid "Nameserver"
|
msgid "Nameserver"
|
||||||
msgstr "DNS 伺服器"
|
msgstr "DNS 伺服器"
|
||||||
|
|
||||||
@@ -565,12 +569,12 @@ msgstr "DNS 伺服器"
|
|||||||
msgid "Nikki"
|
msgid "Nikki"
|
||||||
msgstr "Nikki"
|
msgstr "Nikki"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:526
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:530
|
||||||
msgid "No Resolve"
|
msgid "No Resolve"
|
||||||
msgstr "不解析"
|
msgstr "不解析"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:448
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:452
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:519
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:523
|
||||||
msgid "Node"
|
msgid "Node"
|
||||||
msgstr "節點"
|
msgstr "節點"
|
||||||
|
|
||||||
@@ -602,35 +606,35 @@ msgstr "覆寫身分驗證"
|
|||||||
msgid "Overwrite DNS Hijack"
|
msgid "Overwrite DNS Hijack"
|
||||||
msgstr "覆寫 DNS 劫持"
|
msgstr "覆寫 DNS 劫持"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:412
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:416
|
||||||
msgid "Overwrite Destination"
|
msgid "Overwrite Destination"
|
||||||
msgstr "將嗅探結果作為連線目標"
|
msgstr "將嗅探結果作為連線目標"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:252
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:256
|
||||||
msgid "Overwrite Fake-IP Filter"
|
msgid "Overwrite Fake-IP Filter"
|
||||||
msgstr "覆寫 Fake-IP 過濾清單"
|
msgstr "覆寫 Fake-IP 過濾清單"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:380
|
||||||
msgid "Overwrite Force Sniff Domain Name"
|
msgid "Overwrite Force Sniff Domain Name"
|
||||||
msgstr "覆寫強制嗅探的網域名稱"
|
msgstr "覆寫強制嗅探的網域名稱"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:299
|
||||||
msgid "Overwrite Hosts"
|
msgid "Overwrite Hosts"
|
||||||
msgstr "覆寫 Hosts"
|
msgstr "覆寫 Hosts"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:383
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:387
|
||||||
msgid "Overwrite Ignore Sniff Domain Name"
|
msgid "Overwrite Ignore Sniff Domain Name"
|
||||||
msgstr "覆寫忽略嗅探的網域名稱"
|
msgstr "覆寫忽略嗅探的網域名稱"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:314
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:318
|
||||||
msgid "Overwrite Nameserver"
|
msgid "Overwrite Nameserver"
|
||||||
msgstr "覆寫 DNS 伺服器"
|
msgstr "覆寫 DNS 伺服器"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:337
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:341
|
||||||
msgid "Overwrite Nameserver Policy"
|
msgid "Overwrite Nameserver Policy"
|
||||||
msgstr "覆寫 DNS 伺服器查詢策略"
|
msgstr "覆寫 DNS 伺服器查詢策略"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:390
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:394
|
||||||
msgid "Overwrite Sniff By Protocol"
|
msgid "Overwrite Sniff By Protocol"
|
||||||
msgstr "覆寫按協定嗅探"
|
msgstr "覆寫按協定嗅探"
|
||||||
|
|
||||||
@@ -638,11 +642,11 @@ msgstr "覆寫按協定嗅探"
|
|||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "密碼"
|
msgstr "密碼"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:569
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:574
|
||||||
msgid "Please go to the editor tab to edit the file for mixin"
|
msgid "Please go to the editor tab to edit the file for mixin"
|
||||||
msgstr "請前往編輯器標籤編輯用於混入的檔案"
|
msgstr "請前往編輯器標籤編輯用於混入的檔案"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:409
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:413
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "埠"
|
msgstr "埠"
|
||||||
|
|
||||||
@@ -650,7 +654,7 @@ msgstr "埠"
|
|||||||
msgid "Prefer"
|
msgid "Prefer"
|
||||||
msgstr "優先"
|
msgstr "優先"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:511
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:515
|
||||||
msgid "Process Name"
|
msgid "Process Name"
|
||||||
msgstr "程序名稱"
|
msgstr "程序名稱"
|
||||||
|
|
||||||
@@ -663,7 +667,7 @@ msgstr "設定檔"
|
|||||||
msgid "Profile for Startup"
|
msgid "Profile for Startup"
|
||||||
msgstr "用於啟動的設定檔"
|
msgstr "用於啟動的設定檔"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:403
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:407
|
||||||
msgid "Protocol"
|
msgid "Protocol"
|
||||||
msgstr "協定"
|
msgstr "協定"
|
||||||
|
|
||||||
@@ -706,7 +710,7 @@ msgstr "重新載入服務"
|
|||||||
msgid "Remote"
|
msgid "Remote"
|
||||||
msgstr "遠端"
|
msgstr "遠端"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:275
|
||||||
msgid "Respect Rules"
|
msgid "Respect Rules"
|
||||||
msgstr "遵循分流規則"
|
msgstr "遵循分流規則"
|
||||||
|
|
||||||
@@ -718,7 +722,7 @@ msgstr "重新啟動服務"
|
|||||||
msgid "Router Proxy"
|
msgid "Router Proxy"
|
||||||
msgstr "路由器代理"
|
msgstr "路由器代理"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:415
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:419
|
||||||
msgid "Rule Config"
|
msgid "Rule Config"
|
||||||
msgstr "規則設定"
|
msgstr "規則設定"
|
||||||
|
|
||||||
@@ -730,7 +734,7 @@ msgstr "規則模式"
|
|||||||
msgid "Rule Provider:"
|
msgid "Rule Provider:"
|
||||||
msgstr "規則提供者:"
|
msgstr "規則提供者:"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:503
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:507
|
||||||
msgid "Rule Set"
|
msgid "Rule Set"
|
||||||
msgstr "規則集"
|
msgstr "規則集"
|
||||||
|
|
||||||
@@ -763,19 +767,19 @@ msgstr "捲動到底部"
|
|||||||
msgid "Skip System IPv6 Check"
|
msgid "Skip System IPv6 Check"
|
||||||
msgstr "跳過系統 IPv6 檢查"
|
msgstr "跳過系統 IPv6 檢查"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:393
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:397
|
||||||
msgid "Sniff By Protocol"
|
msgid "Sniff By Protocol"
|
||||||
msgstr "按協定嗅探"
|
msgstr "按協定嗅探"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:374
|
||||||
msgid "Sniff Pure IP"
|
msgid "Sniff Pure IP"
|
||||||
msgstr "嗅探純 IP 連線"
|
msgstr "嗅探純 IP 連線"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:368
|
||||||
msgid "Sniff Redir-Host"
|
msgid "Sniff Redir-Host"
|
||||||
msgstr "嗅探 Redir-Host 流量"
|
msgstr "嗅探 Redir-Host 流量"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:356
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
|
||||||
msgid "Sniffer Config"
|
msgid "Sniffer Config"
|
||||||
msgstr "嗅探器設定"
|
msgstr "嗅探器設定"
|
||||||
|
|
||||||
@@ -791,7 +795,7 @@ msgstr ""
|
|||||||
msgid "Stack Size Soft Limit"
|
msgid "Stack Size Soft Limit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:542
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:547
|
||||||
msgid "Standard Loader"
|
msgid "Standard Loader"
|
||||||
msgstr "標準載入器"
|
msgstr "標準載入器"
|
||||||
|
|
||||||
@@ -874,9 +878,9 @@ msgstr "總計"
|
|||||||
msgid "Transparent Proxy with Mihomo on OpenWrt."
|
msgid "Transparent Proxy with Mihomo on OpenWrt."
|
||||||
msgstr "在 OpenWrt 上使用 Mihomo 進行透明代理."
|
msgstr "在 OpenWrt 上使用 Mihomo 進行透明代理."
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:328
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:332
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:437
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:441
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:501
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:505
|
||||||
msgid "Type"
|
msgid "Type"
|
||||||
msgstr "類型"
|
msgstr "類型"
|
||||||
|
|
||||||
@@ -945,23 +949,24 @@ msgstr "無限制"
|
|||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:238
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:244
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:244
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:250
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:261
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:254
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:267
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:265
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:273
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:271
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:279
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:277
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:285
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:291
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:360
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:295
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:366
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:364
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:372
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:370
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:535
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:376
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:541
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:540
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:546
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:549
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:551
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:552
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:554
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:555
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:557
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:559
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:560
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:565
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:564
|
||||||
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:570
|
||||||
msgid "Unmodified"
|
msgid "Unmodified"
|
||||||
msgstr "不修改"
|
msgstr "不修改"
|
||||||
|
|
||||||
@@ -977,7 +982,7 @@ msgstr "更新時間"
|
|||||||
msgid "Update Dashboard"
|
msgid "Update Dashboard"
|
||||||
msgstr "更新儀表板"
|
msgstr "更新儀表板"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:480
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:484
|
||||||
msgid "Update Interval"
|
msgid "Update Interval"
|
||||||
msgstr "更新間隔"
|
msgstr "更新間隔"
|
||||||
|
|
||||||
@@ -985,15 +990,15 @@ msgstr "更新間隔"
|
|||||||
msgid "Upload Profile"
|
msgid "Upload Profile"
|
||||||
msgstr "上傳設定檔"
|
msgstr "上傳設定檔"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:443
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:447
|
||||||
msgid "Url"
|
msgid "Url"
|
||||||
msgstr "下載網址"
|
msgstr "下載網址"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:289
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:293
|
||||||
msgid "Use Hosts"
|
msgid "Use Hosts"
|
||||||
msgstr "使用 Hosts"
|
msgstr "使用 Hosts"
|
||||||
|
|
||||||
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:283
|
#: applications/luci-app-nikki/htdocs/luci-static/resources/view/nikki/mixin.js:287
|
||||||
msgid "Use System Hosts"
|
msgid "Use System Hosts"
|
||||||
msgstr "使用系統的 Hosts"
|
msgstr "使用系統的 Hosts"
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ local port_validate = function(self, value, t)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local nodes_table = {}
|
local nodes_table = {}
|
||||||
|
local shunt_list = {}
|
||||||
for k, e in ipairs(api.get_valid_nodes()) do
|
for k, e in ipairs(api.get_valid_nodes()) do
|
||||||
nodes_table[#nodes_table + 1] = e
|
nodes_table[#nodes_table + 1] = e
|
||||||
end
|
end
|
||||||
@@ -200,6 +201,9 @@ o:depends({ _tcp_node_bool = "1" })
|
|||||||
for k, v in pairs(nodes_table) do
|
for k, v in pairs(nodes_table) do
|
||||||
s.fields["tcp_node"]:value(v.id, v["remark"])
|
s.fields["tcp_node"]:value(v.id, v["remark"])
|
||||||
s.fields["udp_node"]:value(v.id, v["remark"])
|
s.fields["udp_node"]:value(v.id, v["remark"])
|
||||||
|
if v.protocol and v.protocol == "_shunt" then
|
||||||
|
shunt_list[#shunt_list + 1] = v
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
o = s:option(DummyValue, "_udp_node_bool", "")
|
o = s:option(DummyValue, "_udp_node_bool", "")
|
||||||
@@ -311,11 +315,7 @@ o.default = "0"
|
|||||||
o:depends({ _tcp_node_bool = "1" })
|
o:depends({ _tcp_node_bool = "1" })
|
||||||
|
|
||||||
---- DNS Forward Mode
|
---- DNS Forward Mode
|
||||||
o = s:option(ListValue, "dns_mode", translate("Filter Mode"),
|
o = s:option(ListValue, "dns_mode", translate("Filter Mode"))
|
||||||
"<font color='red'>" .. translate(
|
|
||||||
"If the node uses Xray/Sing-Box shunt, select the matching filter mode (Xray/Sing-Box).") ..
|
|
||||||
"</font>")
|
|
||||||
o:depends({ _tcp_node_bool = "1" })
|
|
||||||
if api.is_finded("dns2socks") then
|
if api.is_finded("dns2socks") then
|
||||||
o:value("dns2socks", "dns2socks")
|
o:value("dns2socks", "dns2socks")
|
||||||
end
|
end
|
||||||
@@ -325,6 +325,19 @@ end
|
|||||||
if has_xray then
|
if has_xray then
|
||||||
o:value("xray", "Xray")
|
o:value("xray", "Xray")
|
||||||
end
|
end
|
||||||
|
o.remove = function(self, section)
|
||||||
|
local f = s.fields["tcp_node"]
|
||||||
|
local id_val = f and f:formvalue(section) or ""
|
||||||
|
if id_val == "" then
|
||||||
|
return m:del(section, self.option)
|
||||||
|
end
|
||||||
|
for k, v in pairs(shunt_list) do
|
||||||
|
if v.id == id_val then
|
||||||
|
local new_val = (v.type == "Xray") and "xray" or "sing-box"
|
||||||
|
return m:set(section, self.option, new_val)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
o = s:option(ListValue, "xray_dns_mode", translate("Request protocol"))
|
o = s:option(ListValue, "xray_dns_mode", translate("Request protocol"))
|
||||||
o:value("tcp", "TCP")
|
o:value("tcp", "TCP")
|
||||||
@@ -437,4 +450,21 @@ o:value("direct", translate("Direct DNS"))
|
|||||||
o.description = desc .. "</ul>"
|
o.description = desc .. "</ul>"
|
||||||
o:depends({dns_shunt = "dnsmasq", tcp_proxy_mode = "proxy", chn_list = "direct"})
|
o:depends({dns_shunt = "dnsmasq", tcp_proxy_mode = "proxy", chn_list = "direct"})
|
||||||
|
|
||||||
|
for k, v in pairs(nodes_table) do
|
||||||
|
if v.protocol and v.protocol ~= "_shunt" then
|
||||||
|
s.fields["dns_mode"]:depends({ _tcp_node_bool = "1", tcp_node = v.id })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for k, v in pairs(shunt_list) do
|
||||||
|
if v.type == "Xray" and has_xray then
|
||||||
|
s.fields["xray_dns_mode"]:depends({ _tcp_node_bool = "1", tcp_node = v.id })
|
||||||
|
end
|
||||||
|
if v.type == "sing-box" and has_singbox then
|
||||||
|
s.fields["singbox_dns_mode"]:depends({ _tcp_node_bool = "1", tcp_node = v.id })
|
||||||
|
end
|
||||||
|
if has_xray or has_singbox then
|
||||||
|
s.fields["remote_dns_client_ip"]:depends({ tcp_node = v.id })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|||||||
@@ -321,11 +321,37 @@ o:depends("direct_dns_mode", "tcp")
|
|||||||
o = s:taboption("DNS", Flag, "filter_proxy_ipv6", translate("Filter Proxy Host IPv6"), translate("Experimental feature."))
|
o = s:taboption("DNS", Flag, "filter_proxy_ipv6", translate("Filter Proxy Host IPv6"), translate("Experimental feature."))
|
||||||
o.default = "0"
|
o.default = "0"
|
||||||
|
|
||||||
|
-- TCP分流时dns过滤模式保存逻辑
|
||||||
|
function dns_mode_save(section)
|
||||||
|
for k, v in pairs(shunt_list) do
|
||||||
|
local f = s.fields[v.id .. "-type"]
|
||||||
|
if f then
|
||||||
|
local type_val = f:formvalue(section)
|
||||||
|
if type_val and (type_val == "Xray" or type_val == "sing-box") then
|
||||||
|
local dns_shunt_val = s.fields["dns_shunt"]:formvalue(section)
|
||||||
|
local dns_mode_val = (dns_shunt_val ~= "smartdns") and "dns_mode" or "smartdns_dns_mode"
|
||||||
|
local current_val = m:get(section, dns_mode_val) or ""
|
||||||
|
local new_val = (type_val == "Xray") and "xray" or "sing-box"
|
||||||
|
|
||||||
|
if current_val ~= new_val then
|
||||||
|
m:set(section, dns_mode_val, new_val)
|
||||||
|
m:del(section, (dns_mode_val == "dns_mode") and "smartdns_dns_mode" or "dns_mode")
|
||||||
|
end
|
||||||
|
|
||||||
|
local dns_field = s.fields[type_val == "Xray" and "xray_dns_mode" or "singbox_dns_mode"]
|
||||||
|
local v2ray_dns_mode = dns_field and dns_field:formvalue(section)
|
||||||
|
if v2ray_dns_mode and m:get(section, "v2ray_dns_mode") ~= v2ray_dns_mode then
|
||||||
|
m:set(section, "v2ray_dns_mode", v2ray_dns_mode)
|
||||||
|
end
|
||||||
|
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
---- DNS Forward Mode
|
---- DNS Forward Mode
|
||||||
o = s:taboption("DNS", ListValue, "dns_mode", translate("Filter Mode"),
|
o = s:taboption("DNS", ListValue, "dns_mode", translate("Filter Mode"))
|
||||||
"<font color='red'>" .. translate(
|
|
||||||
"If the node uses Xray/Sing-Box shunt, select the matching filter mode (Xray/Sing-Box).") ..
|
|
||||||
"</font>")
|
|
||||||
o:value("udp", translatef("Requery DNS By %s", "UDP"))
|
o:value("udp", translatef("Requery DNS By %s", "UDP"))
|
||||||
o:value("tcp", translatef("Requery DNS By %s", "TCP"))
|
o:value("tcp", translatef("Requery DNS By %s", "TCP"))
|
||||||
if api.is_finded("dns2socks") then
|
if api.is_finded("dns2socks") then
|
||||||
@@ -337,16 +363,19 @@ end
|
|||||||
if has_xray then
|
if has_xray then
|
||||||
o:value("xray", "Xray")
|
o:value("xray", "Xray")
|
||||||
end
|
end
|
||||||
if api.is_finded("smartdns") then
|
o:depends({ dns_shunt = "chinadns-ng", tcp_node = "" })
|
||||||
o:depends({ dns_shunt = "smartdns", ['!reverse'] = true })
|
o:depends({ dns_shunt = "dnsmasq", tcp_node = "" })
|
||||||
|
o.remove = function(self, section)
|
||||||
|
local f = s.fields["smartdns_dns_mode"]
|
||||||
|
if f and f:formvalue(section) then
|
||||||
|
return m:del(section, self.option)
|
||||||
|
end
|
||||||
|
dns_mode_save(section)
|
||||||
end
|
end
|
||||||
|
|
||||||
---- SmartDNS Forward Mode
|
---- SmartDNS Forward Mode
|
||||||
if api.is_finded("smartdns") then
|
if api.is_finded("smartdns") then
|
||||||
o = s:taboption("DNS", ListValue, "smartdns_dns_mode", translate("Filter Mode"),
|
o = s:taboption("DNS", ListValue, "smartdns_dns_mode", translate("Filter Mode"))
|
||||||
"<font color='red'>" .. translate(
|
|
||||||
"If the node uses Xray/Sing-Box shunt, select the matching filter mode (Xray/Sing-Box).") ..
|
|
||||||
"</font>")
|
|
||||||
o:value("socks", "Socks")
|
o:value("socks", "Socks")
|
||||||
if has_singbox then
|
if has_singbox then
|
||||||
o:value("sing-box", "Sing-Box")
|
o:value("sing-box", "Sing-Box")
|
||||||
@@ -354,7 +383,14 @@ if api.is_finded("smartdns") then
|
|||||||
if has_xray then
|
if has_xray then
|
||||||
o:value("xray", "Xray")
|
o:value("xray", "Xray")
|
||||||
end
|
end
|
||||||
o:depends({ dns_shunt = "smartdns" })
|
o:depends({ dns_shunt = "smartdns", tcp_node = "" })
|
||||||
|
o.remove = function(self, section)
|
||||||
|
local f = s.fields["dns_mode"]
|
||||||
|
if f and f:formvalue(section) then
|
||||||
|
return m:del(section, self.option)
|
||||||
|
end
|
||||||
|
dns_mode_save(section)
|
||||||
|
end
|
||||||
|
|
||||||
o = s:taboption("DNS", DynamicList, "smartdns_remote_dns", translate("Remote DNS"))
|
o = s:taboption("DNS", DynamicList, "smartdns_remote_dns", translate("Remote DNS"))
|
||||||
o:value("tcp://1.1.1.1")
|
o:value("tcp://1.1.1.1")
|
||||||
@@ -399,7 +435,7 @@ if api.is_finded("smartdns") then
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
o = s:taboption("DNS", ListValue, "xray_dns_mode", translate("Request protocol"))
|
o = s:taboption("DNS", ListValue, "xray_dns_mode", translate("Remote DNS") .. " " .. translate("Request protocol"))
|
||||||
o:value("tcp", "TCP")
|
o:value("tcp", "TCP")
|
||||||
o:value("tcp+doh", "TCP + DoH (" .. translate("A/AAAA type") .. ")")
|
o:value("tcp+doh", "TCP + DoH (" .. translate("A/AAAA type") .. ")")
|
||||||
o:depends("dns_mode", "xray")
|
o:depends("dns_mode", "xray")
|
||||||
@@ -413,7 +449,7 @@ o.write = function(self, section, value)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
o = s:taboption("DNS", ListValue, "singbox_dns_mode", translate("Request protocol"))
|
o = s:taboption("DNS", ListValue, "singbox_dns_mode", translate("Remote DNS") .. " " .. translate("Request protocol"))
|
||||||
o:value("tcp", "TCP")
|
o:value("tcp", "TCP")
|
||||||
o:value("doh", "DoH")
|
o:value("doh", "DoH")
|
||||||
o:depends("dns_mode", "sing-box")
|
o:depends("dns_mode", "sing-box")
|
||||||
@@ -738,6 +774,21 @@ for k, v in pairs(nodes_table) do
|
|||||||
else
|
else
|
||||||
s2.fields["node"]:value(v.id, v["remark"])
|
s2.fields["node"]:value(v.id, v["remark"])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if v.protocol and v.protocol ~= "_shunt" then
|
||||||
|
s.fields["dns_mode"]:depends({ dns_shunt = "chinadns-ng", tcp_node = v.id })
|
||||||
|
s.fields["dns_mode"]:depends({ dns_shunt = "dnsmasq", tcp_node = v.id })
|
||||||
|
if api.is_finded("smartdns") then
|
||||||
|
s.fields["smartdns_dns_mode"]:depends({ dns_shunt = "smartdns", tcp_node = v.id })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for k, v in pairs(shunt_list) do
|
||||||
|
s.fields["xray_dns_mode"]:depends({ [v.id .. "-type"] = "Xray", tcp_node = v.id })
|
||||||
|
s.fields["singbox_dns_mode"]:depends({ [v.id .. "-type"] = "sing-box", tcp_node = v.id })
|
||||||
|
s.fields["remote_dns_client_ip"]:depends({ tcp_node = v.id })
|
||||||
|
s.fields["remote_fakedns"]:depends({ tcp_node = v.id })
|
||||||
end
|
end
|
||||||
|
|
||||||
m:append(Template(appname .. "/global/footer"))
|
m:append(Template(appname .. "/global/footer"))
|
||||||
|
|||||||
@@ -1301,6 +1301,7 @@ function gen_config(var)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local dns_rule_position = 1
|
||||||
if dns_listen_port then
|
if dns_listen_port then
|
||||||
table.insert(inbounds, {
|
table.insert(inbounds, {
|
||||||
listen = "127.0.0.1",
|
listen = "127.0.0.1",
|
||||||
@@ -1334,16 +1335,18 @@ function gen_config(var)
|
|||||||
},
|
},
|
||||||
outboundTag = "dns-out"
|
outboundTag = "dns-out"
|
||||||
})
|
})
|
||||||
|
dns_rule_position = dns_rule_position + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if COMMON.default_outbound_tag == "direct" then
|
if COMMON.default_outbound_tag == "direct" then
|
||||||
if direct_dns_udp_server or direct_dns_tcp_server then
|
if direct_dns_udp_server or direct_dns_tcp_server then
|
||||||
table.insert(routing.rules, {
|
table.insert(routing.rules, dns_rule_position, {
|
||||||
inboundTag = {
|
inboundTag = {
|
||||||
"dns-global-direct"
|
"dns-global-direct"
|
||||||
},
|
},
|
||||||
outboundTag = "direct"
|
outboundTag = "direct"
|
||||||
})
|
})
|
||||||
|
dns_rule_position = dns_rule_position + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1376,11 +1379,12 @@ function gen_config(var)
|
|||||||
balancerTag = nil
|
balancerTag = nil
|
||||||
end
|
end
|
||||||
table.insert(dns.servers, dns_server)
|
table.insert(dns.servers, dns_server)
|
||||||
table.insert(routing.rules, {
|
table.insert(routing.rules, dns_rule_position, {
|
||||||
inboundTag = { dns_server.tag },
|
inboundTag = { dns_server.tag },
|
||||||
outboundTag = outboundTag,
|
outboundTag = outboundTag,
|
||||||
balancerTag = balancerTag
|
balancerTag = balancerTag
|
||||||
})
|
})
|
||||||
|
dns_rule_position = dns_rule_position + 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1394,11 +1398,12 @@ function gen_config(var)
|
|||||||
_outboundTag = "direct"
|
_outboundTag = "direct"
|
||||||
_balancerTag = nil
|
_balancerTag = nil
|
||||||
end
|
end
|
||||||
table.insert(routing.rules, {
|
table.insert(routing.rules, dns_rule_position, {
|
||||||
inboundTag = { "dns-global" },
|
inboundTag = { "dns-global" },
|
||||||
balancerTag = _balancerTag,
|
balancerTag = _balancerTag,
|
||||||
outboundTag = _outboundTag
|
outboundTag = _outboundTag
|
||||||
})
|
})
|
||||||
|
dns_rule_position = dns_rule_position + 1
|
||||||
|
|
||||||
local default_rule_index = nil
|
local default_rule_index = nil
|
||||||
for index, value in ipairs(routing.rules) do
|
for index, value in ipairs(routing.rules) do
|
||||||
|
|||||||
@@ -127,9 +127,6 @@ msgstr "您只需要在SmartDNS配置好国内DNS分组,并设置重定向或
|
|||||||
msgid "Filter Mode"
|
msgid "Filter Mode"
|
||||||
msgstr "过滤模式"
|
msgstr "过滤模式"
|
||||||
|
|
||||||
msgid "If the node uses Xray/Sing-Box shunt, select the matching filter mode (Xray/Sing-Box)."
|
|
||||||
msgstr "当节点使用 Xray/Sing-Box 分流时,过滤模式需对应选择 Xray/Sing-Box 。"
|
|
||||||
|
|
||||||
msgid "A/AAAA type"
|
msgid "A/AAAA type"
|
||||||
msgstr "A/AAAA 类型"
|
msgstr "A/AAAA 类型"
|
||||||
|
|
||||||
|
|||||||
@@ -2147,24 +2147,6 @@ stop() {
|
|||||||
rm -rf /tmp/lock/${CONFIG}_socks_auto_switch*
|
rm -rf /tmp/lock/${CONFIG}_socks_auto_switch*
|
||||||
rm -rf /tmp/lock/${CONFIG}_lease2hosts*
|
rm -rf /tmp/lock/${CONFIG}_lease2hosts*
|
||||||
echolog "清空并关闭相关程序和缓存完成。"
|
echolog "清空并关闭相关程序和缓存完成。"
|
||||||
# 根据分流节点类型自动调整 DNS 过滤模式
|
|
||||||
local _tcp_node=$(config_t_get global tcp_node)
|
|
||||||
if [ -n "$_tcp_node" ]; then
|
|
||||||
local _protocol=$(config_n_get $_tcp_node protocol)
|
|
||||||
if [ "$_protocol" = "_shunt" ]; then
|
|
||||||
local _type=$(config_n_get $_tcp_node type)
|
|
||||||
local _dns_mode=$(config_t_get global dns_mode)
|
|
||||||
local _new_dns_mode
|
|
||||||
[ "$_type" = "Xray" ] && _new_dns_mode="xray"
|
|
||||||
[ "$_type" = "sing-box" ] && _new_dns_mode="sing-box"
|
|
||||||
if [ -n "$_new_dns_mode" ] && [ "$_dns_mode" != "$_new_dns_mode" ]; then
|
|
||||||
uci -q set ${CONFIG}.@global[0].dns_mode="$_new_dns_mode"
|
|
||||||
uci -q set ${CONFIG}.@global[0].v2ray_dns_mode="tcp"
|
|
||||||
uci -q commit ${CONFIG}
|
|
||||||
echolog "* 检测到 TCP 节点为 $_type 分流,强制修改 DNS 过滤模式为 $_type !"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -980,17 +980,20 @@ add_firewall_rule() {
|
|||||||
$ipt_n -I PREROUTING 1 -j PSW_DNS
|
$ipt_n -I PREROUTING 1 -j PSW_DNS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
$ipt_m -N PSW_DIVERT
|
||||||
|
$ipt_m -A PSW_DIVERT -j MARK --set-mark 1
|
||||||
|
$ipt_m -A PSW_DIVERT -j ACCEPT
|
||||||
|
|
||||||
$ipt_m -N PSW_RULE
|
$ipt_m -N PSW_RULE
|
||||||
$ipt_m -A PSW_RULE -j CONNMARK --restore-mark
|
$ipt_m -A PSW_RULE -j CONNMARK --restore-mark
|
||||||
$ipt_m -A PSW_RULE -m mark --mark 1 -j RETURN
|
$ipt_m -A PSW_RULE -m mark --mark 1 -j RETURN
|
||||||
$ipt_m -A PSW_RULE -p tcp -m tcp --syn -j MARK --set-xmark 1
|
$ipt_m -A PSW_RULE -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j MARK --set-xmark 1
|
||||||
$ipt_m -A PSW_RULE -p udp -m conntrack --ctstate NEW,RELATED -j MARK --set-xmark 1
|
$ipt_m -A PSW_RULE -p udp -m conntrack --ctstate NEW -j MARK --set-xmark 1
|
||||||
$ipt_m -A PSW_RULE -j CONNMARK --save-mark
|
$ipt_m -A PSW_RULE -j CONNMARK --save-mark
|
||||||
|
|
||||||
$ipt_m -N PSW
|
$ipt_m -N PSW
|
||||||
$ipt_m -A PSW $(dst $IPSET_LAN) -j RETURN
|
$ipt_m -A PSW $(dst $IPSET_LAN) -j RETURN
|
||||||
$ipt_m -A PSW $(dst $IPSET_VPS) -j RETURN
|
$ipt_m -A PSW $(dst $IPSET_VPS) -j RETURN
|
||||||
$ipt_m -A PSW -m conntrack --ctdir REPLY -j RETURN
|
|
||||||
|
|
||||||
[ ! -z "${WAN_IP}" ] && {
|
[ ! -z "${WAN_IP}" ] && {
|
||||||
$ipt_m -A PSW $(comment "WAN_IP_RETURN") -d "${WAN_IP}" -j RETURN
|
$ipt_m -A PSW $(comment "WAN_IP_RETURN") -d "${WAN_IP}" -j RETURN
|
||||||
@@ -999,11 +1002,11 @@ add_firewall_rule() {
|
|||||||
unset WAN_IP
|
unset WAN_IP
|
||||||
|
|
||||||
insert_rule_before "$ipt_m" "PREROUTING" "mwan3" "-j PSW"
|
insert_rule_before "$ipt_m" "PREROUTING" "mwan3" "-j PSW"
|
||||||
|
insert_rule_before "$ipt_m" "PREROUTING" "PSW" "-p tcp -m socket -j PSW_DIVERT"
|
||||||
|
|
||||||
$ipt_m -N PSW_OUTPUT
|
$ipt_m -N PSW_OUTPUT
|
||||||
$ipt_m -A PSW_OUTPUT $(dst $IPSET_LAN) -j RETURN
|
$ipt_m -A PSW_OUTPUT $(dst $IPSET_LAN) -j RETURN
|
||||||
$ipt_m -A PSW_OUTPUT $(dst $IPSET_VPS) -j RETURN
|
$ipt_m -A PSW_OUTPUT $(dst $IPSET_VPS) -j RETURN
|
||||||
$ipt_m -A PSW_OUTPUT -m conntrack --ctdir REPLY -j RETURN
|
|
||||||
|
|
||||||
[ -n "$IPT_APPEND_DNS" ] && {
|
[ -n "$IPT_APPEND_DNS" ] && {
|
||||||
local local_dns dns_address dns_port
|
local local_dns dns_address dns_port
|
||||||
@@ -1050,29 +1053,32 @@ add_firewall_rule() {
|
|||||||
$ip6t_n -I PREROUTING 1 -j PSW_DNS
|
$ip6t_n -I PREROUTING 1 -j PSW_DNS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
$ip6t_m -N PSW_DIVERT
|
||||||
|
$ip6t_m -A PSW_DIVERT -j MARK --set-mark 1
|
||||||
|
$ip6t_m -A PSW_DIVERT -j ACCEPT
|
||||||
|
|
||||||
$ip6t_m -N PSW_RULE
|
$ip6t_m -N PSW_RULE
|
||||||
$ip6t_m -A PSW_RULE -j CONNMARK --restore-mark
|
$ip6t_m -A PSW_RULE -j CONNMARK --restore-mark
|
||||||
$ip6t_m -A PSW_RULE -m mark --mark 1 -j RETURN
|
$ip6t_m -A PSW_RULE -m mark --mark 1 -j RETURN
|
||||||
$ip6t_m -A PSW_RULE -p tcp -m tcp --syn -j MARK --set-xmark 1
|
$ip6t_m -A PSW_RULE -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j MARK --set-xmark 1
|
||||||
$ip6t_m -A PSW_RULE -p udp -m conntrack --ctstate NEW,RELATED -j MARK --set-xmark 1
|
$ip6t_m -A PSW_RULE -p udp -m conntrack --ctstate NEW -j MARK --set-xmark 1
|
||||||
$ip6t_m -A PSW_RULE -j CONNMARK --save-mark
|
$ip6t_m -A PSW_RULE -j CONNMARK --save-mark
|
||||||
|
|
||||||
$ip6t_m -N PSW
|
$ip6t_m -N PSW
|
||||||
$ip6t_m -A PSW $(dst $IPSET_LAN6) -j RETURN
|
$ip6t_m -A PSW $(dst $IPSET_LAN6) -j RETURN
|
||||||
$ip6t_m -A PSW $(dst $IPSET_VPS6) -j RETURN
|
$ip6t_m -A PSW $(dst $IPSET_VPS6) -j RETURN
|
||||||
$ip6t_m -A PSW -m conntrack --ctdir REPLY -j RETURN
|
|
||||||
|
|
||||||
WAN6_IP=$(get_wan6_ip)
|
WAN6_IP=$(get_wan6_ip)
|
||||||
[ ! -z "${WAN6_IP}" ] && $ip6t_m -A PSW $(comment "WAN6_IP_RETURN") -d ${WAN6_IP} -j RETURN
|
[ ! -z "${WAN6_IP}" ] && $ip6t_m -A PSW $(comment "WAN6_IP_RETURN") -d ${WAN6_IP} -j RETURN
|
||||||
unset WAN6_IP
|
unset WAN6_IP
|
||||||
|
|
||||||
insert_rule_before "$ip6t_m" "PREROUTING" "mwan3" "-j PSW"
|
insert_rule_before "$ip6t_m" "PREROUTING" "mwan3" "-j PSW"
|
||||||
|
insert_rule_before "$ip6t_m" "PREROUTING" "PSW" "-p tcp -m socket -j PSW_DIVERT"
|
||||||
|
|
||||||
$ip6t_m -N PSW_OUTPUT
|
$ip6t_m -N PSW_OUTPUT
|
||||||
$ip6t_m -A PSW_OUTPUT -m mark --mark 0xff -j RETURN
|
$ip6t_m -A PSW_OUTPUT -m mark --mark 0xff -j RETURN
|
||||||
$ip6t_m -A PSW_OUTPUT $(dst $IPSET_LAN6) -j RETURN
|
$ip6t_m -A PSW_OUTPUT $(dst $IPSET_LAN6) -j RETURN
|
||||||
$ip6t_m -A PSW_OUTPUT $(dst $IPSET_VPS6) -j RETURN
|
$ip6t_m -A PSW_OUTPUT $(dst $IPSET_VPS6) -j RETURN
|
||||||
$ip6t_m -A PSW_OUTPUT -m conntrack --ctdir REPLY -j RETURN
|
|
||||||
[ "${USE_BLOCK_LIST}" = "1" ] && $ip6t_m -A PSW_OUTPUT $(dst $IPSET_BLOCK6) -j DROP
|
[ "${USE_BLOCK_LIST}" = "1" ] && $ip6t_m -A PSW_OUTPUT $(dst $IPSET_BLOCK6) -j DROP
|
||||||
[ "${USE_DIRECT_LIST}" = "1" ] && $ip6t_m -A PSW_OUTPUT $(dst $IPSET_WHITE6) -j RETURN
|
[ "${USE_DIRECT_LIST}" = "1" ] && $ip6t_m -A PSW_OUTPUT $(dst $IPSET_WHITE6) -j RETURN
|
||||||
|
|
||||||
@@ -1309,7 +1315,7 @@ del_firewall_rule() {
|
|||||||
$ipt -D $chain $index 2>/dev/null
|
$ipt -D $chain $index 2>/dev/null
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
for chain in "PSW" "PSW_OUTPUT" "PSW_DNS" "PSW_RULE"; do
|
for chain in "PSW" "PSW_OUTPUT" "PSW_DIVERT" "PSW_DNS" "PSW_RULE"; do
|
||||||
$ipt -F $chain 2>/dev/null
|
$ipt -F $chain 2>/dev/null
|
||||||
$ipt -X $chain 2>/dev/null
|
$ipt -X $chain 2>/dev/null
|
||||||
done
|
done
|
||||||
@@ -1363,7 +1369,7 @@ gen_include() {
|
|||||||
[ -z "${_ipt}" ] && return
|
[ -z "${_ipt}" ] && return
|
||||||
|
|
||||||
echo "*$2"
|
echo "*$2"
|
||||||
${_ipt}-save -t $2 | grep "PSW" | grep -v "\-j PSW$" | sed -e "s/^-A \(OUTPUT\|PREROUTING\)/-I \1 1/"
|
${_ipt}-save -t $2 | grep "PSW" | grep -v "\-j PSW$" | grep -v "mangle\-OUTPUT\-PSW" | grep -v "socket \-j PSW_DIVERT$" | sed -e "s/^-A \(OUTPUT\|PREROUTING\)/-I \1 1/"
|
||||||
echo 'COMMIT'
|
echo 'COMMIT'
|
||||||
}
|
}
|
||||||
local __ipt=""
|
local __ipt=""
|
||||||
@@ -1384,6 +1390,7 @@ gen_include() {
|
|||||||
[ -z "${is_tproxy}" ] && \$(${MY_PATH} insert_rule_after "$ipt_n" "PREROUTING" "prerouting_rule" "-p tcp -j PSW")
|
[ -z "${is_tproxy}" ] && \$(${MY_PATH} insert_rule_after "$ipt_n" "PREROUTING" "prerouting_rule" "-p tcp -j PSW")
|
||||||
|
|
||||||
\$(${MY_PATH} insert_rule_before "$ipt_m" "PREROUTING" "mwan3" "-j PSW")
|
\$(${MY_PATH} insert_rule_before "$ipt_m" "PREROUTING" "mwan3" "-j PSW")
|
||||||
|
\$(${MY_PATH} insert_rule_before "$ipt_m" "PREROUTING" "PSW" "-p tcp -m socket -j PSW_DIVERT")
|
||||||
|
|
||||||
WAN_IP=\$(${MY_PATH} get_wan_ip)
|
WAN_IP=\$(${MY_PATH} get_wan_ip)
|
||||||
|
|
||||||
@@ -1416,6 +1423,7 @@ gen_include() {
|
|||||||
[ "$accept_icmpv6" = "1" ] && $ip6t_n -A PREROUTING -p ipv6-icmp -j PSW
|
[ "$accept_icmpv6" = "1" ] && $ip6t_n -A PREROUTING -p ipv6-icmp -j PSW
|
||||||
|
|
||||||
\$(${MY_PATH} insert_rule_before "$ip6t_m" "PREROUTING" "mwan3" "-j PSW")
|
\$(${MY_PATH} insert_rule_before "$ip6t_m" "PREROUTING" "mwan3" "-j PSW")
|
||||||
|
\$(${MY_PATH} insert_rule_before "$ip6t_m" "PREROUTING" "PSW" "-p tcp -m socket -j PSW_DIVERT")
|
||||||
|
|
||||||
PR_INDEX=\$(${MY_PATH} RULE_LAST_INDEX "$ip6t_m" PSW WAN6_IP_RETURN -1)
|
PR_INDEX=\$(${MY_PATH} RULE_LAST_INDEX "$ip6t_m" PSW WAN6_IP_RETURN -1)
|
||||||
if [ \$PR_INDEX -ge 0 ]; then
|
if [ \$PR_INDEX -ge 0 ]; then
|
||||||
|
|||||||
@@ -986,6 +986,10 @@ add_firewall_rule() {
|
|||||||
nft_output_chain="PSW_OUTPUT_MANGLE"
|
nft_output_chain="PSW_OUTPUT_MANGLE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
nft "add chain $NFTABLE_NAME PSW_DIVERT"
|
||||||
|
nft "flush chain $NFTABLE_NAME PSW_DIVERT"
|
||||||
|
nft "add rule $NFTABLE_NAME PSW_DIVERT meta l4proto tcp socket transparent 1 mark set 1 counter accept"
|
||||||
|
|
||||||
nft "add chain $NFTABLE_NAME PSW_DNS"
|
nft "add chain $NFTABLE_NAME PSW_DNS"
|
||||||
nft "flush chain $NFTABLE_NAME PSW_DNS"
|
nft "flush chain $NFTABLE_NAME PSW_DNS"
|
||||||
if [ $(config_t_get global dns_redirect "1") = "0" ]; then
|
if [ $(config_t_get global dns_redirect "1") = "0" ]; then
|
||||||
@@ -1001,8 +1005,8 @@ add_firewall_rule() {
|
|||||||
nft "flush chain $NFTABLE_NAME PSW_RULE"
|
nft "flush chain $NFTABLE_NAME PSW_RULE"
|
||||||
nft "add rule $NFTABLE_NAME PSW_RULE meta mark set ct mark counter"
|
nft "add rule $NFTABLE_NAME PSW_RULE meta mark set ct mark counter"
|
||||||
nft "add rule $NFTABLE_NAME PSW_RULE meta mark 1 counter return"
|
nft "add rule $NFTABLE_NAME PSW_RULE meta mark 1 counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_RULE tcp flags syn meta mark set mark and 0x0 xor 0x1 counter"
|
nft "add rule $NFTABLE_NAME PSW_RULE tcp flags &(fin|syn|rst|ack) == syn meta mark set mark and 0x0 xor 0x1 counter"
|
||||||
nft "add rule $NFTABLE_NAME PSW_RULE meta l4proto udp ct state new,related meta mark set mark and 0x0 xor 0x1 counter"
|
nft "add rule $NFTABLE_NAME PSW_RULE meta l4proto udp ct state new meta mark set mark and 0x0 xor 0x1 counter"
|
||||||
nft "add rule $NFTABLE_NAME PSW_RULE ct mark set mark counter"
|
nft "add rule $NFTABLE_NAME PSW_RULE ct mark set mark counter"
|
||||||
|
|
||||||
#ipv4 tproxy mode and udp
|
#ipv4 tproxy mode and udp
|
||||||
@@ -1010,13 +1014,11 @@ add_firewall_rule() {
|
|||||||
nft "flush chain $NFTABLE_NAME PSW_MANGLE"
|
nft "flush chain $NFTABLE_NAME PSW_MANGLE"
|
||||||
nft "add rule $NFTABLE_NAME PSW_MANGLE ip daddr @$NFTSET_LAN counter return"
|
nft "add rule $NFTABLE_NAME PSW_MANGLE ip daddr @$NFTSET_LAN counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_MANGLE ip daddr @$NFTSET_VPS counter return"
|
nft "add rule $NFTABLE_NAME PSW_MANGLE ip daddr @$NFTSET_VPS counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_MANGLE ct direction reply counter return"
|
|
||||||
|
|
||||||
nft "add chain $NFTABLE_NAME PSW_OUTPUT_MANGLE"
|
nft "add chain $NFTABLE_NAME PSW_OUTPUT_MANGLE"
|
||||||
nft "flush chain $NFTABLE_NAME PSW_OUTPUT_MANGLE"
|
nft "flush chain $NFTABLE_NAME PSW_OUTPUT_MANGLE"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_LAN counter return"
|
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_LAN counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_VPS counter return"
|
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_VPS counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ct direction reply counter return"
|
|
||||||
|
|
||||||
[ "${USE_BLOCK_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_BLOCK counter drop"
|
[ "${USE_BLOCK_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_BLOCK counter drop"
|
||||||
[ "${USE_DIRECT_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_WHITE counter return"
|
[ "${USE_DIRECT_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE ip daddr @$NFTSET_WHITE counter return"
|
||||||
@@ -1025,6 +1027,7 @@ add_firewall_rule() {
|
|||||||
# jump chains
|
# jump chains
|
||||||
nft "add rule $NFTABLE_NAME mangle_prerouting ip protocol udp counter jump PSW_MANGLE"
|
nft "add rule $NFTABLE_NAME mangle_prerouting ip protocol udp counter jump PSW_MANGLE"
|
||||||
[ -n "${is_tproxy}" ] && nft "add rule $NFTABLE_NAME mangle_prerouting ip protocol tcp counter jump PSW_MANGLE"
|
[ -n "${is_tproxy}" ] && nft "add rule $NFTABLE_NAME mangle_prerouting ip protocol tcp counter jump PSW_MANGLE"
|
||||||
|
insert_rule_before "$NFTABLE_NAME" "mangle_prerouting" "PSW_MANGLE" "counter jump PSW_DIVERT"
|
||||||
|
|
||||||
#ipv4 tcp redirect mode
|
#ipv4 tcp redirect mode
|
||||||
[ -z "${is_tproxy}" ] && {
|
[ -z "${is_tproxy}" ] && {
|
||||||
@@ -1075,13 +1078,11 @@ add_firewall_rule() {
|
|||||||
nft "flush chain $NFTABLE_NAME PSW_MANGLE_V6"
|
nft "flush chain $NFTABLE_NAME PSW_MANGLE_V6"
|
||||||
nft "add rule $NFTABLE_NAME PSW_MANGLE_V6 ip6 daddr @$NFTSET_LAN6 counter return"
|
nft "add rule $NFTABLE_NAME PSW_MANGLE_V6 ip6 daddr @$NFTSET_LAN6 counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_MANGLE_V6 ip6 daddr @$NFTSET_VPS6 counter return"
|
nft "add rule $NFTABLE_NAME PSW_MANGLE_V6 ip6 daddr @$NFTSET_VPS6 counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_MANGLE_V6 ct direction reply counter return"
|
|
||||||
|
|
||||||
nft "add chain $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6"
|
nft "add chain $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6"
|
||||||
nft "flush chain $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6"
|
nft "flush chain $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_LAN6 counter return"
|
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_LAN6 counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_VPS6 counter return"
|
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_VPS6 counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ct direction reply counter return"
|
|
||||||
[ "${USE_BLOCK_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_BLOCK6 counter drop"
|
[ "${USE_BLOCK_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_BLOCK6 counter drop"
|
||||||
[ "${USE_DIRECT_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_WHITE6 counter return"
|
[ "${USE_DIRECT_LIST}" = "1" ] && nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 ip6 daddr @$NFTSET_WHITE6 counter return"
|
||||||
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 meta mark 0xff counter return"
|
nft "add rule $NFTABLE_NAME PSW_OUTPUT_MANGLE_V6 meta mark 0xff counter return"
|
||||||
@@ -1397,7 +1398,7 @@ gen_include() {
|
|||||||
|
|
||||||
local __nft=" "
|
local __nft=" "
|
||||||
__nft=$(cat <<- EOF
|
__nft=$(cat <<- EOF
|
||||||
[ -z "\$(nft list chain $NFTABLE_NAME mangle_prerouting | grep PSW)" ] && nft -f ${nft_chain_file}
|
[ -z "\$(nft list chain $NFTABLE_NAME mangle_prerouting | grep PSW_DIVERT)" ] && nft -f ${nft_chain_file}
|
||||||
[ -z "${is_tproxy}" ] && {
|
[ -z "${is_tproxy}" ] && {
|
||||||
PR_INDEX=\$(sh ${MY_PATH} RULE_LAST_INDEX "$NFTABLE_NAME" PSW_NAT WAN_IP_RETURN -1)
|
PR_INDEX=\$(sh ${MY_PATH} RULE_LAST_INDEX "$NFTABLE_NAME" PSW_NAT WAN_IP_RETURN -1)
|
||||||
if [ \$PR_INDEX -ge 0 ]; then
|
if [ \$PR_INDEX -ge 0 ]; then
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=nikki
|
PKG_NAME:=nikki
|
||||||
PKG_VERSION:=2025.10.15
|
PKG_VERSION:=2025.11.09
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
||||||
PKG_SOURCE_VERSION:=v1.19.15
|
PKG_SOURCE_VERSION:=v1.19.16
|
||||||
PKG_MIRROR_HASH:=08f97911a7c601eb366c5ab29a7e7ce1f888601d22ed7f357c8732b10a4ec3e2
|
PKG_MIRROR_HASH:=35893f8458d21fac840b150d94b8c60e3ce3a50769e196cbcf197f23a070c076
|
||||||
|
|
||||||
PKG_LICENSE:=GPL3.0+
|
PKG_LICENSE:=GPL3.0+
|
||||||
PKG_MAINTAINER:=Joseph Mory <morytyann@gmail.com>
|
PKG_MAINTAINER:=Joseph Mory <morytyann@gmail.com>
|
||||||
|
|||||||
@@ -140,12 +140,6 @@ uci show nikki | grep -o -E 'nikki\.@router_access_control\[[[:digit:]]+\]=route
|
|||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
# since v1.23.2
|
|
||||||
|
|
||||||
env_disable_safe_path_check=$(uci -q get nikki.env.disable_safe_path_check); [ -n "$env_disable_safe_path_check" ] && uci del nikki.env.disable_safe_path_check
|
|
||||||
|
|
||||||
env_skip_system_ipv6_check=$(uci -q get nikki.env.skip_system_ipv6_check); [ -z "$env_skip_system_ipv6_check" ] && uci set nikki.env.skip_system_ipv6_check=0
|
|
||||||
|
|
||||||
# since v1.23.3
|
# since v1.23.3
|
||||||
|
|
||||||
uci show nikki | grep -o -E 'nikki\.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do
|
uci show nikki | grep -o -E 'nikki\.@router_access_control\[[[:digit:]]+\]=router_access_control' | cut -d '=' -f 1 | while read -r router_access_control; do
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
let dns_listen;
|
let dns_listen;
|
||||||
let dns_port;
|
let dns_port;
|
||||||
let fake_ip_range;
|
let fake_ip_range;
|
||||||
|
let fake_ip6_range;
|
||||||
if (profile['dns']) {
|
if (profile['dns']) {
|
||||||
dns_listen = profile['dns']['listen'];
|
dns_listen = profile['dns']['listen'];
|
||||||
const dns_listen_rindex = rindex(dns_listen, ':');
|
const dns_listen_rindex = rindex(dns_listen, ':');
|
||||||
@@ -33,6 +34,7 @@
|
|||||||
dns_port = substr(dns_listen, dns_listen_rindex + 1);
|
dns_port = substr(dns_listen, dns_listen_rindex + 1);
|
||||||
}
|
}
|
||||||
fake_ip_range = profile['dns']['fake-ip-range'];
|
fake_ip_range = profile['dns']['fake-ip-range'];
|
||||||
|
fake_ip6_range = profile['dns']['fake-ip-range6'];
|
||||||
}
|
}
|
||||||
|
|
||||||
let tun_device;
|
let tun_device;
|
||||||
@@ -445,20 +447,23 @@ table inet nikki {
|
|||||||
{% if (tcp_mode == 'redirect'): %}
|
{% if (tcp_mode == 'redirect'): %}
|
||||||
fib daddr type { local, broadcast, anycast, multicast } counter return
|
fib daddr type { local, broadcast, anycast, multicast } counter return
|
||||||
ct direction reply counter return
|
ct direction reply counter return
|
||||||
ip daddr @reserved_ip counter return
|
ip daddr @reserved_ip {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
ip6 daddr @reserved_ip6 counter return
|
ip6 daddr @reserved_ip6 {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
ip daddr @china_ip counter return
|
ip daddr @china_ip counter return
|
||||||
ip6 daddr @china_ip6 counter return
|
ip6 daddr @china_ip6 counter return
|
||||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp counter return
|
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
meta nfproto @proxy_nfproto jump router_redirect
|
meta nfproto @proxy_nfproto jump router_redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if (fake_ip_ping_hijack): %}
|
{% if (fake_ip_ping_hijack): %}
|
||||||
{% if (fake_ip_range ): %}
|
{% if (fake_ip_range ): %}
|
||||||
icmp type echo-request ip daddr {{ fake_ip_range }} counter redirect
|
icmp type echo-request ip daddr {{ fake_ip_range }} counter redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if (fake_ip6_range ): %}
|
||||||
|
icmpv6 type echo-request ip6 daddr {{ fake_ip6_range }} counter redirect
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -471,14 +476,14 @@ table inet nikki {
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
fib daddr type { local, broadcast, anycast, multicast } counter return
|
fib daddr type { local, broadcast, anycast, multicast } counter return
|
||||||
ct direction reply counter return
|
ct direction reply counter return
|
||||||
ip daddr @reserved_ip counter return
|
ip daddr @reserved_ip {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
ip6 daddr @reserved_ip6 counter return
|
ip6 daddr @reserved_ip6 {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
ip daddr @china_ip counter return
|
ip daddr @china_ip counter return
|
||||||
ip6 daddr @china_ip6 counter return
|
ip6 daddr @china_ip6 counter return
|
||||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp counter return
|
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
{% if (length(dns_hijack_nfproto) > 0): %}
|
{% if (length(dns_hijack_nfproto) > 0): %}
|
||||||
meta nfproto @dns_hijack_nfproto meta l4proto { tcp, udp } th dport 53 counter return
|
meta nfproto @dns_hijack_nfproto meta l4proto { tcp, udp } th dport 53 counter return
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -514,20 +519,23 @@ table inet nikki {
|
|||||||
{% if (tcp_mode == 'redirect'): %}
|
{% if (tcp_mode == 'redirect'): %}
|
||||||
fib daddr type { local, broadcast, anycast, multicast } counter return
|
fib daddr type { local, broadcast, anycast, multicast } counter return
|
||||||
ct direction reply counter return
|
ct direction reply counter return
|
||||||
ip daddr @reserved_ip counter return
|
ip daddr @reserved_ip {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
ip6 daddr @reserved_ip6 counter return
|
ip6 daddr @reserved_ip6 {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
ip daddr @china_ip counter return
|
ip daddr @china_ip counter return
|
||||||
ip6 daddr @china_ip6 counter return
|
ip6 daddr @china_ip6 counter return
|
||||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp counter return
|
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
iifname @lan_inbound_device meta nfproto @proxy_nfproto jump lan_redirect
|
iifname @lan_inbound_device meta nfproto @proxy_nfproto jump lan_redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if (fake_ip_ping_hijack): %}
|
{% if (fake_ip_ping_hijack): %}
|
||||||
{% if (fake_ip_range): %}
|
{% if (fake_ip_range): %}
|
||||||
icmp type echo-request ip daddr {{ fake_ip_range }} counter redirect
|
icmp type echo-request ip daddr {{ fake_ip_range }} counter redirect
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if (fake_ip6_range ): %}
|
||||||
|
icmpv6 type echo-request ip6 daddr {{ fake_ip6_range }} counter redirect
|
||||||
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -535,14 +543,14 @@ table inet nikki {
|
|||||||
type filter hook prerouting priority mangle; policy accept;
|
type filter hook prerouting priority mangle; policy accept;
|
||||||
fib daddr type { local, broadcast, anycast, multicast } counter return
|
fib daddr type { local, broadcast, anycast, multicast } counter return
|
||||||
ct direction reply counter return
|
ct direction reply counter return
|
||||||
ip daddr @reserved_ip counter return
|
ip daddr @reserved_ip {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
ip6 daddr @reserved_ip6 counter return
|
ip6 daddr @reserved_ip6 {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
ip daddr @china_ip counter return
|
ip daddr @china_ip counter return
|
||||||
ip6 daddr @china_ip6 counter return
|
ip6 daddr @china_ip6 counter return
|
||||||
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta nfproto ipv4 meta l4proto . th dport != @proxy_dport {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport counter return
|
meta nfproto ipv6 meta l4proto . th dport != @proxy_dport {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
meta l4proto { tcp, udp } ip dscp @bypass_dscp {% if (fake_ip_range): %} ip daddr != {{ fake_ip_range }} {% endif %} counter return
|
||||||
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp counter return
|
meta l4proto { tcp, udp } ip6 dscp @bypass_dscp {% if (fake_ip6_range): %} ip6 daddr != {{ fake_ip6_range }} {% endif %} counter return
|
||||||
{% if (length(dns_hijack_nfproto) > 0): %}
|
{% if (length(dns_hijack_nfproto) > 0): %}
|
||||||
meta nfproto @dns_hijack_nfproto meta l4proto { tcp, udp } th dport 53 counter return
|
meta nfproto @dns_hijack_nfproto meta l4proto { tcp, udp } th dport 53 counter return
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ config['dns']['listen'] = uci.get('nikki', 'mixin', 'dns_listen');
|
|||||||
config['dns']['ipv6'] = uci_bool(uci.get('nikki', 'mixin', 'dns_ipv6'));
|
config['dns']['ipv6'] = uci_bool(uci.get('nikki', 'mixin', 'dns_ipv6'));
|
||||||
config['dns']['enhanced-mode'] = uci.get('nikki', 'mixin', 'dns_mode');
|
config['dns']['enhanced-mode'] = uci.get('nikki', 'mixin', 'dns_mode');
|
||||||
config['dns']['fake-ip-range'] = uci.get('nikki', 'mixin', 'fake_ip_range');
|
config['dns']['fake-ip-range'] = uci.get('nikki', 'mixin', 'fake_ip_range');
|
||||||
|
config['dns']['fake-ip-range6'] = uci.get('nikki', 'mixin', 'fake_ip6_range');
|
||||||
if (uci_bool(uci.get('nikki', 'mixin', 'fake_ip_filter'))) {
|
if (uci_bool(uci.get('nikki', 'mixin', 'fake_ip_filter'))) {
|
||||||
config['dns']['fake-ip-filter'] = uci_array(uci.get('nikki', 'mixin', 'fake_ip_filters'));
|
config['dns']['fake-ip-filter'] = uci_array(uci.get('nikki', 'mixin', 'fake_ip_filters'));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=bandix
|
PKG_NAME:=bandix
|
||||||
PKG_VERSION:=0.6.1
|
PKG_VERSION:=0.8.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
@@ -13,7 +13,7 @@ include $(INCLUDE_DIR)/package.mk
|
|||||||
include $(TOPDIR)/feeds/packages/lang/rust/rust-values.mk
|
include $(TOPDIR)/feeds/packages/lang/rust/rust-values.mk
|
||||||
|
|
||||||
# 二进制文件的文件名和URL
|
# 二进制文件的文件名和URL
|
||||||
RUST_BANDIX_VERSION:=0.6.1
|
RUST_BANDIX_VERSION:=0.8.1
|
||||||
RUST_BINARY_FILENAME:=bandix-$(RUST_BANDIX_VERSION)-$(RUSTC_TARGET_ARCH).tar.gz
|
RUST_BINARY_FILENAME:=bandix-$(RUST_BANDIX_VERSION)-$(RUSTC_TARGET_ARCH).tar.gz
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,3 +20,8 @@ config bandix 'traffic'
|
|||||||
config bandix 'connections'
|
config bandix 'connections'
|
||||||
option enabled '0'
|
option enabled '0'
|
||||||
|
|
||||||
|
|
||||||
|
config bandix 'dns'
|
||||||
|
option enabled '0'
|
||||||
|
option dns_max_records '10000'
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ start_service() {
|
|||||||
local traffic_flush_interval_seconds
|
local traffic_flush_interval_seconds
|
||||||
local traffic_persist_history
|
local traffic_persist_history
|
||||||
local connections_enabled
|
local connections_enabled
|
||||||
|
local dns_enabled
|
||||||
|
local dns_max_records
|
||||||
|
|
||||||
config_load 'bandix'
|
config_load 'bandix'
|
||||||
config_get iface 'general' 'iface'
|
config_get iface 'general' 'iface'
|
||||||
@@ -31,8 +33,10 @@ start_service() {
|
|||||||
config_get traffic_flush_interval_seconds 'traffic' 'traffic_flush_interval_seconds'
|
config_get traffic_flush_interval_seconds 'traffic' 'traffic_flush_interval_seconds'
|
||||||
config_get_bool traffic_persist_history 'traffic' 'traffic_persist_history'
|
config_get_bool traffic_persist_history 'traffic' 'traffic_persist_history'
|
||||||
config_get_bool connections_enabled 'connections' 'enabled'
|
config_get_bool connections_enabled 'connections' 'enabled'
|
||||||
|
config_get_bool dns_enabled 'dns' 'enabled'
|
||||||
|
config_get dns_max_records 'dns' 'dns_max_records'
|
||||||
|
|
||||||
[ "$connections_enabled" != 1 ] && [ "$traffic_enabled" != 1 ] && return 1
|
[ "$connections_enabled" != 1 ] && [ "$traffic_enabled" != 1 ] && [ "$dns_enabled" != 1 ] && return 1
|
||||||
|
|
||||||
# 构建基础命令行参数
|
# 构建基础命令行参数
|
||||||
local args="--iface $iface --port $port --data-dir $data_dir"
|
local args="--iface $iface --port $port --data-dir $data_dir"
|
||||||
@@ -56,6 +60,14 @@ start_service() {
|
|||||||
args="$args --enable-connection"
|
args="$args --enable-connection"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 添加 DNS 监控参数
|
||||||
|
if [ "$dns_enabled" -eq 1 ]; then
|
||||||
|
args="$args --enable-dns"
|
||||||
|
fi
|
||||||
|
if [ -n "$dns_max_records" ]; then
|
||||||
|
args="$args --dns-max-records $dns_max_records"
|
||||||
|
fi
|
||||||
|
|
||||||
procd_open_instance bandix
|
procd_open_instance bandix
|
||||||
procd_set_param command $PROG $args
|
procd_set_param command $PROG $args
|
||||||
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
|
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
|
||||||
|
|||||||
Reference in New Issue
Block a user