Compare commits

..

5 Commits

Author SHA1 Message Date
Kirill Sobakin
a73def1f9a Merge pull request #271 from itdoginfo/fix/fully_routed_ips_priority
fix: lower priority of fully_routed_ips relative to routing_excluded_ips
2025-12-21 16:31:22 +03:00
divocat
9976065696 feat: add locales for log level 2025-12-13 18:15:25 +02:00
Andrey Petelin
aa8f2cef41 feat: Add log_level option in LuCI and use configured value for sing-box logging 2025-12-10 17:58:22 +05:00
Andrey Petelin
96f6def701 fix: lower priority of fully_routed_ips relative to routing_excluded_ips 2025-12-10 16:55:23 +05:00
Kirill Sobakin
0152f073b7 Merge pull request #270 from itdoginfo/fix/267-determine-dhcp-ip
Use network_get_ipaddr to obtain LAN listen IP
2025-12-09 16:40:41 +03:00
9 changed files with 95 additions and 34 deletions

View File

@@ -529,14 +529,14 @@
"call": "Exclude NTP", "call": "Exclude NTP",
"key": "Exclude NTP", "key": "Exclude NTP",
"places": [ "places": [
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:384" "../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:402"
] ]
}, },
{ {
"call": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN", "call": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN",
"key": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN", "key": "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN",
"places": [ "places": [
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:385" "../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:403"
] ]
}, },
{ {
@@ -711,14 +711,14 @@
"call": "Invalid HY2 URL: parsing failed", "call": "Invalid HY2 URL: parsing failed",
"key": "Invalid HY2 URL: parsing failed", "key": "Invalid HY2 URL: parsing failed",
"places": [ "places": [
"src/validators/validateHysteriaUrl.ts:113" "src/validators/validateHysteriaUrl.ts:115"
] ]
}, },
{ {
"call": "Invalid HY2 URL: sni cannot be empty", "call": "Invalid HY2 URL: sni cannot be empty",
"key": "Invalid HY2 URL: sni cannot be empty", "key": "Invalid HY2 URL: sni cannot be empty",
"places": [ "places": [
"src/validators/validateHysteriaUrl.ts:106" "src/validators/validateHysteriaUrl.ts:108"
] ]
}, },
{ {
@@ -960,6 +960,13 @@
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:545" "../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:545"
] ]
}, },
{
"call": "Log Level",
"key": "Log Level",
"places": [
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:384"
]
},
{ {
"call": "Main DNS", "call": "Main DNS",
"key": "Main DNS", "key": "Main DNS",
@@ -1198,7 +1205,7 @@
"call": "Routing Excluded IPs", "call": "Routing Excluded IPs",
"key": "Routing Excluded IPs", "key": "Routing Excluded IPs",
"places": [ "places": [
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:395" "../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:413"
] ]
}, },
{ {
@@ -1356,6 +1363,13 @@
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:444" "../luci-app-podkop/htdocs/luci-static/resources/view/podkop/section.js:444"
] ]
}, },
{
"call": "Select the log level for sing-box",
"key": "Select the log level for sing-box",
"places": [
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:385"
]
},
{ {
"call": "Select the network interface from which the traffic will originate", "call": "Select the network interface from which the traffic will originate",
"key": "Select the network interface from which the traffic will originate", "key": "Select the network interface from which the traffic will originate",
@@ -1459,7 +1473,7 @@
"call": "Specify a local IP address to be excluded from routing", "call": "Specify a local IP address to be excluded from routing",
"key": "Specify a local IP address to be excluded from routing", "key": "Specify a local IP address to be excluded from routing",
"places": [ "places": [
"../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:396" "../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:414"
] ]
}, },
{ {
@@ -1760,7 +1774,7 @@
"src/validators/validateDns.ts:18", "src/validators/validateDns.ts:18",
"src/validators/validateDomain.ts:13", "src/validators/validateDomain.ts:13",
"src/validators/validateDomain.ts:30", "src/validators/validateDomain.ts:30",
"src/validators/validateHysteriaUrl.ts:111", "src/validators/validateHysteriaUrl.ts:113",
"src/validators/validateIp.ts:8", "src/validators/validateIp.ts:8",
"src/validators/validateOutboundJson.ts:7", "src/validators/validateOutboundJson.ts:7",
"src/validators/validatePath.ts:16", "src/validators/validatePath.ts:16",

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PODKOP\n" "Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-01 14:30+0200\n" "POT-Creation-Date: 2025-12-13 16:15+0200\n"
"PO-Revision-Date: 2025-12-01 14:30+0200\n" "PO-Revision-Date: 2025-12-13 16:15+0200\n"
"Last-Translator: divocat <divocatt@gmail.com>\n" "Last-Translator: divocat <divocatt@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
@@ -323,11 +323,11 @@ msgstr ""
msgid "Every 5 minutes" msgid "Every 5 minutes"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:384 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:402
msgid "Exclude NTP" msgid "Exclude NTP"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:385 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:403
msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN" msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN"
msgstr "" msgstr ""
@@ -430,11 +430,11 @@ msgstr ""
msgid "Invalid HY2 URL: obfs-password required when obfs is set" msgid "Invalid HY2 URL: obfs-password required when obfs is set"
msgstr "" msgstr ""
#: src/validators/validateHysteriaUrl.ts:113 #: src/validators/validateHysteriaUrl.ts:115
msgid "Invalid HY2 URL: parsing failed" msgid "Invalid HY2 URL: parsing failed"
msgstr "" msgstr ""
#: src/validators/validateHysteriaUrl.ts:106 #: src/validators/validateHysteriaUrl.ts:108
msgid "Invalid HY2 URL: sni cannot be empty" msgid "Invalid HY2 URL: sni cannot be empty"
msgstr "" msgstr ""
@@ -575,6 +575,10 @@ msgstr ""
msgid "Local Subnet Lists" msgid "Local Subnet Lists"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:384
msgid "Log Level"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:72 #: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:72
msgid "Main DNS" msgid "Main DNS"
msgstr "" msgstr ""
@@ -713,7 +717,7 @@ msgstr ""
msgid "Router DNS is routed through sing-box" msgid "Router DNS is routed through sing-box"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:395 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:413
msgid "Routing Excluded IPs" msgid "Routing Excluded IPs"
msgstr "" msgstr ""
@@ -806,6 +810,10 @@ msgstr ""
msgid "Select the list type for adding custom subnets" msgid "Select the list type for adding custom subnets"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:385
msgid "Select the log level for sing-box"
msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:90 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:90
msgid "Select the network interface from which the traffic will originate" msgid "Select the network interface from which the traffic will originate"
msgstr "" msgstr ""
@@ -863,7 +871,7 @@ msgstr ""
msgid "Source Network Interface" msgid "Source Network Interface"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:396 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:414
msgid "Specify a local IP address to be excluded from routing" msgid "Specify a local IP address to be excluded from routing"
msgstr "" msgstr ""
@@ -1041,7 +1049,7 @@ msgstr ""
#: src/validators/validateDns.ts:18 #: src/validators/validateDns.ts:18
#: src/validators/validateDomain.ts:13 #: src/validators/validateDomain.ts:13
#: src/validators/validateDomain.ts:30 #: src/validators/validateDomain.ts:30
#: src/validators/validateHysteriaUrl.ts:111 #: src/validators/validateHysteriaUrl.ts:113
#: src/validators/validateIp.ts:8 #: src/validators/validateIp.ts:8
#: src/validators/validateOutboundJson.ts:7 #: src/validators/validateOutboundJson.ts:7
#: src/validators/validatePath.ts:16 #: src/validators/validatePath.ts:16

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PODKOP\n" "Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-01 16:30+0200\n" "POT-Creation-Date: 2025-12-13 18:15+0200\n"
"PO-Revision-Date: 2025-12-01 16:30+0200\n" "PO-Revision-Date: 2025-12-13 18:15+0200\n"
"Last-Translator: divocat\n" "Last-Translator: divocat\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: ru\n" "Language: ru\n"
@@ -419,6 +419,9 @@ msgstr "Локальные списки доменов"
msgid "Local Subnet Lists" msgid "Local Subnet Lists"
msgstr "Локальные списки подсетей" msgstr "Локальные списки подсетей"
msgid "Log Level"
msgstr "Уровень логов"
msgid "Main DNS" msgid "Main DNS"
msgstr "Основной DNS" msgstr "Основной DNS"
@@ -584,6 +587,9 @@ msgstr "Выберите тип списка для добавления пол
msgid "Select the list type for adding custom subnets" msgid "Select the list type for adding custom subnets"
msgstr "Выберите тип списка для добавления пользовательских подсетей" msgstr "Выберите тип списка для добавления пользовательских подсетей"
msgid "Select the log level for sing-box"
msgstr "Выберите уровень логов для sing-box"
msgid "Select the network interface from which the traffic will originate" msgid "Select the network interface from which the traffic will originate"
msgstr "Выберите сетевой интерфейс, с которого будет исходить трафик" msgstr "Выберите сетевой интерфейс, с которого будет исходить трафик"

View File

@@ -378,6 +378,24 @@ function createSettingsContent(section) {
return true; return true;
}; };
o = section.option(
form.ListValue,
"log_level",
_("Log Level"),
_(
"Select the log level for sing-box",
),
);
o.value("trace", "Trace");
o.value("debug", "Debug");
o.value("info", "Info");
o.value("warn", "Warn");
o.value("error", "Error");
o.value("fatal", "Fatal");
o.value("panic", "Panic");
o.default = "warn";
o.rmempty = false;
o = section.option( o = section.option(
form.Flag, form.Flag,
"exclude_ntp", "exclude_ntp",

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PODKOP\n" "Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-01 16:30+0200\n" "POT-Creation-Date: 2025-12-13 18:15+0200\n"
"PO-Revision-Date: 2025-12-01 16:30+0200\n" "PO-Revision-Date: 2025-12-13 18:15+0200\n"
"Last-Translator: divocat\n" "Last-Translator: divocat\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: ru\n" "Language: ru\n"
@@ -419,6 +419,9 @@ msgstr "Локальные списки доменов"
msgid "Local Subnet Lists" msgid "Local Subnet Lists"
msgstr "Локальные списки подсетей" msgstr "Локальные списки подсетей"
msgid "Log Level"
msgstr "Уровень логов"
msgid "Main DNS" msgid "Main DNS"
msgstr "Основной DNS" msgstr "Основной DNS"
@@ -584,6 +587,9 @@ msgstr "Выберите тип списка для добавления пол
msgid "Select the list type for adding custom subnets" msgid "Select the list type for adding custom subnets"
msgstr "Выберите тип списка для добавления пользовательских подсетей" msgstr "Выберите тип списка для добавления пользовательских подсетей"
msgid "Select the log level for sing-box"
msgstr "Выберите уровень логов для sing-box"
msgid "Select the network interface from which the traffic will originate" msgid "Select the network interface from which the traffic will originate"
msgstr "Выберите сетевой интерфейс, с которого будет исходить трафик" msgstr "Выберите сетевой интерфейс, с которого будет исходить трафик"

View File

@@ -7,8 +7,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PODKOP\n" "Project-Id-Version: PODKOP\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-12-01 14:30+0200\n" "POT-Creation-Date: 2025-12-13 16:15+0200\n"
"PO-Revision-Date: 2025-12-01 14:30+0200\n" "PO-Revision-Date: 2025-12-13 16:15+0200\n"
"Last-Translator: divocat <divocatt@gmail.com>\n" "Last-Translator: divocat <divocatt@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
@@ -323,11 +323,11 @@ msgstr ""
msgid "Every 5 minutes" msgid "Every 5 minutes"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:384 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:402
msgid "Exclude NTP" msgid "Exclude NTP"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:385 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:403
msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN" msgid "Exclude NTP protocol traffic from the tunnel to prevent it from being routed through the proxy or VPN"
msgstr "" msgstr ""
@@ -430,11 +430,11 @@ msgstr ""
msgid "Invalid HY2 URL: obfs-password required when obfs is set" msgid "Invalid HY2 URL: obfs-password required when obfs is set"
msgstr "" msgstr ""
#: src/validators/validateHysteriaUrl.ts:113 #: src/validators/validateHysteriaUrl.ts:115
msgid "Invalid HY2 URL: parsing failed" msgid "Invalid HY2 URL: parsing failed"
msgstr "" msgstr ""
#: src/validators/validateHysteriaUrl.ts:106 #: src/validators/validateHysteriaUrl.ts:108
msgid "Invalid HY2 URL: sni cannot be empty" msgid "Invalid HY2 URL: sni cannot be empty"
msgstr "" msgstr ""
@@ -575,6 +575,10 @@ msgstr ""
msgid "Local Subnet Lists" msgid "Local Subnet Lists"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:384
msgid "Log Level"
msgstr ""
#: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:72 #: src/podkop/tabs/diagnostic/checks/runDnsCheck.ts:72
msgid "Main DNS" msgid "Main DNS"
msgstr "" msgstr ""
@@ -713,7 +717,7 @@ msgstr ""
msgid "Router DNS is routed through sing-box" msgid "Router DNS is routed through sing-box"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:395 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:413
msgid "Routing Excluded IPs" msgid "Routing Excluded IPs"
msgstr "" msgstr ""
@@ -806,6 +810,10 @@ msgstr ""
msgid "Select the list type for adding custom subnets" msgid "Select the list type for adding custom subnets"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:385
msgid "Select the log level for sing-box"
msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:90 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:90
msgid "Select the network interface from which the traffic will originate" msgid "Select the network interface from which the traffic will originate"
msgstr "" msgstr ""
@@ -863,7 +871,7 @@ msgstr ""
msgid "Source Network Interface" msgid "Source Network Interface"
msgstr "" msgstr ""
#: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:396 #: ../luci-app-podkop/htdocs/luci-static/resources/view/podkop/settings.js:414
msgid "Specify a local IP address to be excluded from routing" msgid "Specify a local IP address to be excluded from routing"
msgstr "" msgstr ""
@@ -1041,7 +1049,7 @@ msgstr ""
#: src/validators/validateDns.ts:18 #: src/validators/validateDns.ts:18
#: src/validators/validateDomain.ts:13 #: src/validators/validateDomain.ts:13
#: src/validators/validateDomain.ts:30 #: src/validators/validateDomain.ts:30
#: src/validators/validateHysteriaUrl.ts:111 #: src/validators/validateHysteriaUrl.ts:113
#: src/validators/validateIp.ts:8 #: src/validators/validateIp.ts:8
#: src/validators/validateOutboundJson.ts:7 #: src/validators/validateOutboundJson.ts:7
#: src/validators/validatePath.ts:16 #: src/validators/validatePath.ts:16

View File

@@ -16,6 +16,7 @@ config settings 'settings'
option dont_touch_dhcp '0' option dont_touch_dhcp '0'
option config_path '/etc/sing-box/config.json' option config_path '/etc/sing-box/config.json'
option cache_path '/tmp/sing-box/cache.db' option cache_path '/tmp/sing-box/cache.db'
option log_level 'warn'
option exclude_ntp '0' option exclude_ntp '0'
option shutdown_correctly '0' option shutdown_correctly '0'
#list routing_excluded_ips '192.168.1.3' #list routing_excluded_ips '192.168.1.3'

View File

@@ -590,7 +590,9 @@ sing_box_init_config() {
sing_box_configure_log() { sing_box_configure_log() {
log "Configure the log section of a sing-box JSON configuration" log "Configure the log section of a sing-box JSON configuration"
config=$(sing_box_cm_configure_log "$config" false "$SB_DEFAULT_LOG_LEVEL" false) local log_level
config_get log_level "settings" "log_level"
config=$(sing_box_cm_configure_log "$config" false "$log_level" false)
} }
sing_box_configure_inbounds() { sing_box_configure_inbounds() {
@@ -785,8 +787,6 @@ sing_box_configure_route() {
config=$(sing_box_cf_proxy_domain "$config" "$SB_TPROXY_INBOUND_TAG" "$CHECK_PROXY_IP_DOMAIN" "$first_outbound_tag") config=$(sing_box_cf_proxy_domain "$config" "$SB_TPROXY_INBOUND_TAG" "$CHECK_PROXY_IP_DOMAIN" "$first_outbound_tag")
config=$(sing_box_cf_override_domain_port "$config" "$FAKEIP_TEST_DOMAIN" 8443) config=$(sing_box_cf_override_domain_port "$config" "$FAKEIP_TEST_DOMAIN" 8443)
config_foreach include_source_ips_in_routing_handler "section"
configure_common_reject_route_rule configure_common_reject_route_rule
local routing_excluded_ips local routing_excluded_ips
@@ -797,6 +797,8 @@ sing_box_configure_route() {
config_list_foreach "settings" "routing_excluded_ips" exclude_source_ip_from_routing_handler "$rule_tag" config_list_foreach "settings" "routing_excluded_ips" exclude_source_ip_from_routing_handler "$rule_tag"
fi fi
config_foreach include_source_ips_in_routing_handler "section"
config_foreach configure_routing_for_section_lists "section" config_foreach configure_routing_for_section_lists "section"
} }

View File

@@ -22,8 +22,6 @@ NFT_INTERFACE_SET_NAME="interfaces"
## sing-box ## sing-box
SB_REQUIRED_VERSION="1.12.0" SB_REQUIRED_VERSION="1.12.0"
# Log
SB_DEFAULT_LOG_LEVEL="warn"
# DNS # DNS
SB_DNS_SERVER_TAG="dns-server" SB_DNS_SERVER_TAG="dns-server"
SB_FAKEIP_DNS_SERVER_TAG="fakeip-server" SB_FAKEIP_DNS_SERVER_TAG="fakeip-server"