🌈 Sync 2026-04-30 00:08:21

This commit is contained in:
github-actions[bot] 2026-04-30 00:08:21 +08:00
parent d3860fd411
commit 70052617ed
11 changed files with 204 additions and 32 deletions

View File

@ -320,6 +320,82 @@ msgid ""
"connection"
msgstr ""
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:326
msgid "All interfaces"
msgstr "所有接口"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:456
msgid "All interfaces combined view"
msgstr "所有接口 合并视图"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:457
msgid "All interfaces overlaid, inbound and outbound separately"
msgstr "所有接口叠加显示,入站与出站分开"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:422
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:615
msgid "Average"
msgstr "平均"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:422
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:611
msgid "Current"
msgstr "当前"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:693
msgid "In"
msgstr "入站"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:462
msgid "Inbound all interfaces"
msgstr "入站 所有接口"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:634
msgid "Inbound traffic"
msgstr "入站流量"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:394
msgid "No multipath WAN interface is currently available."
msgstr "当前没有可用的多路径 WAN 接口。"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:700
msgid "Out"
msgstr "出站"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:468
msgid "Outbound all interfaces"
msgstr "出站 所有接口"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:640
msgid "Outbound traffic"
msgstr "出站流量"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:422
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:619
msgid "Peak"
msgstr "峰值"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:442
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:570
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:585
msgid "Total"
msgstr "总计"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:404
msgid "Total in"
msgstr "总入站"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:408
msgid "Total out"
msgstr "总出站"
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:540
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:541
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:673
#: luci-app-mptcp/htdocs/luci-static/resources/view/mptcp/multipath.js:674
msgid "minutes window, 1 second interval"
msgstr "分钟窗口1 秒间隔"
#~ msgid "BLEST"
#~ msgstr "最好的"

View File

@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-passwall
PKG_VERSION:=26.4.15
PKG_RELEASE:=102
PKG_RELEASE:=103
PKG_PO_VERSION:=$(PKG_VERSION)
PKG_CONFIG_DEPENDS:= \

View File

@ -555,7 +555,7 @@ o:depends({singbox_dns_mode = "udp"})
o:depends({singbox_dns_mode = "tcp"})
o = s:option(Value, "remote_dns_doh", translate("Remote DNS DoH"))
o.description = translate("Format: URL[,IP] (omit the latter if URL is an IP)")
o.description = translate("Format: URL[,IP] (optional IP to map the domain in the URL)")
o:value("https://1.1.1.1/dns-query", "1.1.1.1 (CloudFlare)")
o:value("https://1.1.1.2/dns-query", "1.1.1.2 (CloudFlare-Security)")
o:value("https://8.8.4.4/dns-query", "8.8.4.4 (Google)")

View File

@ -444,7 +444,7 @@ o:depends({singbox_dns_mode = "tcp"})
---- DoH
o = s:taboption("DNS", Value, "remote_dns_doh", translate("Remote DNS DoH"))
o.description = translate("Format: URL[,IP] (omit the latter if URL is an IP)")
o.description = translate("Format: URL[,IP] (optional IP to map the domain in the URL)")
o.default = o.keylist[1]
o:value("https://1.1.1.1/dns-query", "1.1.1.1 (CloudFlare)")
o:value("https://1.1.1.2/dns-query", "1.1.1.2 (CloudFlare-Security)")

View File

@ -13,6 +13,7 @@ local version_ge_1_13_0 = api.compare_versions(local_version, ">=", "1.13.0")
local GLOBAL = {
DNS_SERVER = {},
DNS_HOSTNAME = {},
VPS_EXCLUDE = {}
}
@ -170,6 +171,9 @@ function gen_outbound(flag, node, tag, proxy_table)
server_address = _a.hostname
server_port = _a.port or 443
server_path = _a.pathname or ""
if _a.hostname and api.datatypes.hostname(_a.hostname) then
GLOBAL.DNS_HOSTNAME[_a.hostname] = true
end
end
else
server_address = node.domain_resolver_dns
@ -1774,24 +1778,25 @@ function gen_config(var)
remote_server.server_port = _a.port or 443
remote_server.path = _a.pathname or ""
end
if remote_dns_doh_ip and remote_dns_doh_host ~= remote_dns_doh_ip and not api.is_ip(remote_dns_doh_host) then
local domains = {}
local hosts_server = {
tag = "hosts",
type = "hosts",
predefined = {}
}
hosts_server.predefined[remote_dns_doh_host] = remote_dns_doh_ip
table.insert(domains, remote_dns_doh_host)
remote_server_domain_resolver = "hosts"
table.insert(dns.servers, hosts_server)
table.insert(dns.rules, {
query_type = {
"A", "AAAA"
},
domain = domains,
server = "hosts"
})
if api.datatypes.hostname(remote_dns_doh_host) then
if remote_dns_doh_ip and remote_dns_doh_host ~= remote_dns_doh_ip and api.is_ip(remote_dns_doh_ip) then
local hosts_server = {
tag = "hosts",
type = "hosts",
predefined = {}
}
hosts_server.predefined[remote_dns_doh_host] = remote_dns_doh_ip
remote_server_domain_resolver = "hosts"
table.insert(dns.servers, hosts_server)
table.insert(dns.rules, {
query_type = { "A", "AAAA" },
domain = { remote_dns_doh_host },
server = "hosts"
})
else
GLOBAL.DNS_HOSTNAME[remote_dns_doh_host] = true
remote_server_domain_resolver = "direct"
end
end
end
@ -1977,10 +1982,21 @@ function gen_config(var)
action = "route",
server = v.server.tag,
disable_cache = false,
rewrite_ttl = 30,
domain = v.domain,
})
end
if next(GLOBAL.DNS_HOSTNAME) then
local hostname = {}
for line, _ in pairs(GLOBAL.DNS_HOSTNAME) do
table.insert(hostname, line)
end
if not dns.rules then dns.rules = {} end
table.insert(dns.rules, 1, {
query_type = { "A", "AAAA" },
domain = hostname,
server = "direct"
})
end
if next(ech_domain) ~= nil then
table.insert(dns.servers, {

View File

@ -439,7 +439,6 @@ function gen_outbound(flag, node, tag, proxy_table)
finalQuery = true,
disableCache = false,
serveStale = true,
serveExpiredTTL = 30,
domains = {}
}
end
@ -1568,9 +1567,13 @@ function gen_config(var)
local _remote_dns_host
if remote_dns_doh_url and remote_dns_doh_host then
if remote_dns_doh_ip and remote_dns_doh_host ~= remote_dns_doh_ip and not api.is_ip(remote_dns_doh_host) then
dns.hosts[remote_dns_doh_host] = remote_dns_doh_ip
_remote_dns_host = remote_dns_doh_host
if api.datatypes.hostname(remote_dns_doh_host) then
if remote_dns_doh_ip and remote_dns_doh_host ~= remote_dns_doh_ip and api.is_ip(remote_dns_doh_ip) then
dns.hosts[remote_dns_doh_host] = remote_dns_doh_ip
_remote_dns_host = remote_dns_doh_host
else
GLOBAL.DNS_HOSTNAME[remote_dns_doh_host] = true
end
end
_remote_dns.address = remote_dns_doh_url
_remote_dns.port = tonumber(remote_dns_doh_port)

View File

@ -220,8 +220,8 @@ msgstr "请求协议"
msgid "Remote DNS DoH"
msgstr "远程 DNS DoH"
msgid "Format: URL[,IP] (omit the latter if URL is an IP)"
msgstr "格式URL[,IP]URL 为 IP 时可省略后半部分"
msgid "Format: URL[,IP] (optional IP to map the domain in the URL)"
msgstr "格式URL[,IP]IP 可选,用于绑定 URL 中的域名"
msgid "Notify the DNS server when the DNS query is notified, the location of the client (cannot be a private IP address)."
msgstr "用于 DNS 查询时通知 DNS 服务器,客户端所在的地理位置(不能是私有 IP 地址)。"

View File

@ -142,9 +142,10 @@ get_ip_port_from() {
parse_doh() {
local __doh=$1 __url_var=$2 __host_var=$3 __port_var=$4 __bootstrap_var=$5
__doh=$(echo -e "$__doh" | tr -d ' \t\n')
__doh=$(printf '%s' "$__doh" | tr -d ' \t\n')
local __url=${__doh%%,*}
local __bootstrap=${__doh#*,}
[ "$__bootstrap" = "$__doh" ] && __bootstrap=""
local __host_port=$(lua_api "get_domain_from_url(\"${__url}\")")
local __host __port
if echo "${__host_port}" | grep -q '^\[.*\]:[0-9]\+$'; then

View File

@ -215,3 +215,79 @@ msgstr ""
#: applications/luci-app-sqm/htdocs/luci-static/resources/view/network/sqm.js:219
msgid "default"
msgstr "默认"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:75
msgid "Autorate settings"
msgstr "自动速率设置"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:90
msgid "Enable SQM autorate"
msgstr "启用 SQM 自动速率"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:96
msgid "Base download speed (kbit/s) (ingress):"
msgstr "基础下载速度 (kbit/s)(入口):"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:100
msgid "Minimum download speed (kbit/s):"
msgstr "最小下载速度 (kbit/s)"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:105
msgid "Maximum download speed (kbit/s):"
msgstr "最大下载速度 (kbit/s)"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:110
msgid "Base upload speed (kbit/s) (egress):"
msgstr "基础上传速度 (kbit/s)(出口):"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:114
msgid "Minimum upload speed (kbit/s):"
msgstr "最小上传速度 (kbit/s)"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:119
msgid "Maximum upload speed (kbit/s):"
msgstr "最大上传速度 (kbit/s)"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:136
msgid "Must be set to cake if autorate is used."
msgstr "如果使用自动速率,必须设置为 cake。"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:251
msgid "Output monitoring lines showing processing stats"
msgstr "输出显示处理统计信息的监控行"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:255
msgid "Output monitoring lines showing cake bandwidth changes"
msgstr "输出显示 cake 带宽变化的监控行"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:259
msgid "Debug"
msgstr "调试"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:263
msgid "Reflector ping interval in seconds:"
msgstr "反射器 Ping 间隔(秒):"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:267
msgid "Pingers numbers:"
msgstr "Ping 探测器数量:"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:271
msgid "delay threshold in ms:"
msgstr "延迟阈值(毫秒):"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:275
msgid "Sleep functionnality"
msgstr "休眠功能"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:279
msgid "Threshold in Kbit/s below which dl/ul is considered idle"
msgstr "下载/上传速率低于此阈值Kbit/s时视为空闲"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:283
msgid "Time threshold to put pingers to sleep on substained dl/ul achieved rate < idle_threshold"
msgstr "当持续下载/上传速率低于空闲阈值时,使 Ping 探测器休眠的时间阈值"
#: luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js:287
msgid "Number of seconds to wait on startup:"
msgstr "启动时等待的秒数:"

View File

@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=teleproxy
PKG_VERSION:=4.12.2
PKG_RELEASE:=6
PKG_RELEASE:=7
PKG_MAINTAINER:=Kosntantine Shevlakov <shevlakov@132lan.ru>
PKG_LICENSE:=GPLv2

View File

@ -1,8 +1,8 @@
#!/bin/sh
# generate secret key
if uci -q get teleproxy.default.secret >/dev/null || [ -z "$(uci get teleproxy.default.secret)" ]; then
[ -n "$(uci -q get teleproxy.default.secret)" ] || {
#SECRET=$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -v -e '16/1 "%02x"')
SECRET=$(/usr/bin/teleproxy generate-secret)
uci set teleproxy.default.secret="$SECRET"
uci commit teleproxy
fi
}