update 2025-08-25 09:23:01
This commit is contained in:
parent
2c20f43520
commit
e4e07d79b6
@ -5,10 +5,10 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=daed
|
PKG_NAME:=daed
|
||||||
PKG_VERSION:=2025.07.23
|
PKG_VERSION:=2025.08.24
|
||||||
DAED_VERSION:=daed-c3588a9
|
DAED_VERSION:=daed-c3588a9
|
||||||
WING_VERSION:=wing-6df3da2
|
WING_VERSION:=wing-6df3da2
|
||||||
CORE_VERSION:=core-358f459
|
CORE_VERSION:=core-1228e82
|
||||||
WING_HASH_SHORT:=$(shell echo $(WING_VERSION) | cut -d- -f2)
|
WING_HASH_SHORT:=$(shell echo $(WING_VERSION) | cut -d- -f2)
|
||||||
CORE_HASH_SHORT:=$(shell echo $(CORE_VERSION) | cut -d- -f2)
|
CORE_HASH_SHORT:=$(shell echo $(CORE_VERSION) | cut -d- -f2)
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
@ -9,12 +9,10 @@ PKG_NAME:=dns2socks-rust
|
|||||||
PKG_VERSION:=0.2.1
|
PKG_VERSION:=0.2.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://github.com/tun2proxy/dns2socks.git
|
PKG_SOURCE_URL:=https://codeload.github.com/tun2proxy/dns2socks/tar.gz/v$(PKG_VERSION)?
|
||||||
PKG_SOURCE_DATE:=2025-08-18
|
PKG_HASH:=c7e9cc18f79edf421012dd9f7f915df8270be5b77dfd7ea8ac4513c32965ba4b
|
||||||
PKG_SOURCE_VERSION:=a23fe67ff4e2a218fcd4726055514c8c2b5299c9
|
PKG_BUILD_DIR:=$(BUILD_DIR)/dns2socks-$(PKG_VERSION)
|
||||||
PKG_MIRROR_HASH:=7d2829cc0da6e9eacc5ed97f51f37ee0ce1ea1a10f38f1e4d2a30ae80d237289
|
|
||||||
|
|
||||||
PKG_MAINTAINER:=Zxlhhyccc <zxlhhyccc@gmail.com>
|
PKG_MAINTAINER:=Zxlhhyccc <zxlhhyccc@gmail.com>
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=MIT
|
||||||
|
@ -1091,10 +1091,6 @@ function renderNodeSettings(section, data, features, main_node, routing_mode) {
|
|||||||
o.depends('tls', '1');
|
o.depends('tls', '1');
|
||||||
o.modalonly = true;
|
o.modalonly = true;
|
||||||
|
|
||||||
o = s.option(form.Flag, 'tls_ech_enable_pqss', _('Enable PQ signature schemes'));
|
|
||||||
o.depends('tls_ech', '1');
|
|
||||||
o.modalonly = true;
|
|
||||||
|
|
||||||
o = s.option(form.Value, 'tls_ech_config_path', _('ECH config path'),
|
o = s.option(form.Value, 'tls_ech_config_path', _('ECH config path'),
|
||||||
_('The path to the ECH config, in PEM format. If empty, load from DNS will be attempted.'));
|
_('The path to the ECH config, in PEM format. If empty, load from DNS will be attempted.'));
|
||||||
o.value('/etc/homeproxy/certs/client_ech_conf.pem');
|
o.value('/etc/homeproxy/certs/client_ech_conf.pem');
|
||||||
@ -1123,7 +1119,7 @@ function renderNodeSettings(section, data, features, main_node, routing_mode) {
|
|||||||
o.value('random');
|
o.value('random');
|
||||||
o.value('randomized');
|
o.value('randomized');
|
||||||
o.value('safari');
|
o.value('safari');
|
||||||
o.depends({'tls': '1', 'type': /^((?!hysteria2?$).)+$/});
|
o.depends({'tls': '1', 'type': /^((?!hysteria2?|tuic$).)+$/});
|
||||||
o.validate = function(section_id, value) {
|
o.validate = function(section_id, value) {
|
||||||
if (section_id) {
|
if (section_id) {
|
||||||
let tls_reality = this.map.findElement('id', 'cbid.homeproxy.%s.tls_reality'.format(section_id)).firstElementChild;
|
let tls_reality = this.map.findElement('id', 'cbid.homeproxy.%s.tls_reality'.format(section_id)).firstElementChild;
|
||||||
|
@ -301,7 +301,6 @@ function generate_outbound(node) {
|
|||||||
certificate_path: node.tls_cert_path,
|
certificate_path: node.tls_cert_path,
|
||||||
ech: (node.tls_ech === '1') ? {
|
ech: (node.tls_ech === '1') ? {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
pq_signature_schemes_enabled: strToBool(node.tls_ech_enable_pqss),
|
|
||||||
config: node.tls_ech_config,
|
config: node.tls_ech_config,
|
||||||
config_path: node.tls_ech_config_path
|
config_path: node.tls_ech_config_path
|
||||||
} : null,
|
} : null,
|
||||||
|
@ -173,6 +173,8 @@ o.cfgvalue = function(t, n)
|
|||||||
protocol = "HY2"
|
protocol = "HY2"
|
||||||
elseif protocol == "anytls" then
|
elseif protocol == "anytls" then
|
||||||
protocol = "AnyTLS"
|
protocol = "AnyTLS"
|
||||||
|
elseif protocol == "ssh" then
|
||||||
|
protocol = "SSH"
|
||||||
else
|
else
|
||||||
protocol = protocol:gsub("^%l",string.upper)
|
protocol = protocol:gsub("^%l",string.upper)
|
||||||
end
|
end
|
||||||
|
@ -59,6 +59,7 @@ end
|
|||||||
if version_ge_1_12_0 then
|
if version_ge_1_12_0 then
|
||||||
o:value("anytls", "AnyTLS")
|
o:value("anytls", "AnyTLS")
|
||||||
end
|
end
|
||||||
|
o:value("ssh", "SSH")
|
||||||
o:value("_urltest", translate("URLTest"))
|
o:value("_urltest", translate("URLTest"))
|
||||||
o:value("_shunt", translate("Shunt"))
|
o:value("_shunt", translate("Shunt"))
|
||||||
o:value("_iface", translate("Custom Interface"))
|
o:value("_iface", translate("Custom Interface"))
|
||||||
@ -249,6 +250,7 @@ end
|
|||||||
o = s:option(Value, _n("username"), translate("Username"))
|
o = s:option(Value, _n("username"), translate("Username"))
|
||||||
o:depends({ [_n("protocol")] = "http" })
|
o:depends({ [_n("protocol")] = "http" })
|
||||||
o:depends({ [_n("protocol")] = "socks" })
|
o:depends({ [_n("protocol")] = "socks" })
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
|
||||||
o = s:option(Value, _n("password"), translate("Password"))
|
o = s:option(Value, _n("password"), translate("Password"))
|
||||||
o.password = true
|
o.password = true
|
||||||
@ -258,6 +260,7 @@ o:depends({ [_n("protocol")] = "shadowsocks" })
|
|||||||
o:depends({ [_n("protocol")] = "trojan" })
|
o:depends({ [_n("protocol")] = "trojan" })
|
||||||
o:depends({ [_n("protocol")] = "tuic" })
|
o:depends({ [_n("protocol")] = "tuic" })
|
||||||
o:depends({ [_n("protocol")] = "anytls" })
|
o:depends({ [_n("protocol")] = "anytls" })
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
|
||||||
o = s:option(ListValue, _n("security"), translate("Encrypt Method"))
|
o = s:option(ListValue, _n("security"), translate("Encrypt Method"))
|
||||||
for a, t in ipairs(security_list) do o:value(t) end
|
for a, t in ipairs(security_list) do o:value(t) end
|
||||||
@ -413,6 +416,24 @@ if singbox_tags:find("with_quic") then
|
|||||||
o:depends({ [_n("protocol")] = "hysteria2"})
|
o:depends({ [_n("protocol")] = "hysteria2"})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- [[ SSH config start ]] --
|
||||||
|
o = s:option(Value, _n("ssh_priv_key"), translate("Private Key"))
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
|
||||||
|
o = s:option(Value, _n("ssh_priv_key_pp"), translate("Private Key Passphrase"))
|
||||||
|
o.password = true
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
|
||||||
|
o = s:option(DynamicList, _n("ssh_host_key"), translate("Host Key"), translate("Accept any if empty."))
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
|
||||||
|
o = s:option(DynamicList, _n("ssh_host_key_algo"), translate("Host Key Algorithms"))
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
|
||||||
|
o = s:option(Value, _n("ssh_client_version"), translate("Client Version"), translate("Random version will be used if empty."))
|
||||||
|
o:depends({ [_n("protocol")] = "ssh" })
|
||||||
|
-- [[ SSH config end ]] --
|
||||||
|
|
||||||
o = s:option(Flag, _n("tls"), translate("TLS"))
|
o = s:option(Flag, _n("tls"), translate("TLS"))
|
||||||
o.default = 0
|
o.default = 0
|
||||||
o:depends({ [_n("protocol")] = "vmess" })
|
o:depends({ [_n("protocol")] = "vmess" })
|
||||||
|
@ -474,6 +474,8 @@ function get_valid_nodes()
|
|||||||
protocol = "HY2"
|
protocol = "HY2"
|
||||||
elseif protocol == "anytls" then
|
elseif protocol == "anytls" then
|
||||||
protocol = "AnyTLS"
|
protocol = "AnyTLS"
|
||||||
|
elseif protocol == "ssh" then
|
||||||
|
protocol = "SSH"
|
||||||
else
|
else
|
||||||
protocol = protocol:gsub("^%l",string.upper)
|
protocol = protocol:gsub("^%l",string.upper)
|
||||||
end
|
end
|
||||||
@ -520,6 +522,8 @@ function get_node_remarks(n)
|
|||||||
protocol = "HY2"
|
protocol = "HY2"
|
||||||
elseif protocol == "anytls" then
|
elseif protocol == "anytls" then
|
||||||
protocol = "AnyTLS"
|
protocol = "AnyTLS"
|
||||||
|
elseif protocol == "ssh" then
|
||||||
|
protocol = "SSH"
|
||||||
else
|
else
|
||||||
protocol = protocol:gsub("^%l",string.upper)
|
protocol = protocol:gsub("^%l",string.upper)
|
||||||
end
|
end
|
||||||
|
@ -478,6 +478,18 @@ function gen_outbound(flag, node, tag, proxy_table)
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if node.protocol == "ssh" then
|
||||||
|
protocol_table = {
|
||||||
|
user = (node.username and node.username ~= "") and node.username or "root",
|
||||||
|
password = (node.password and node.password ~= "") and node.password or "",
|
||||||
|
private_key = node.ssh_priv_key,
|
||||||
|
private_key_passphrase = node.ssh_priv_key_pp,
|
||||||
|
host_key = node.ssh_host_key,
|
||||||
|
host_key_algorithms = node.ssh_host_key_algo,
|
||||||
|
client_version = node.ssh_client_version
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
if protocol_table then
|
if protocol_table then
|
||||||
for key, value in pairs(protocol_table) do
|
for key, value in pairs(protocol_table) do
|
||||||
result[key] = value
|
result[key] = value
|
||||||
|
@ -1953,3 +1953,21 @@ msgstr "可以通过输入 GeoIP/Geosite,提取它们所包含的域名/IP。"
|
|||||||
|
|
||||||
msgid "Use the GeoIP/Geosite query function to verify if the entered Geo rules are correct."
|
msgid "Use the GeoIP/Geosite query function to verify if the entered Geo rules are correct."
|
||||||
msgstr "利用 GeoIP/Geosite 查询功能,可以验证输入的 Geo 规则是否正确。"
|
msgstr "利用 GeoIP/Geosite 查询功能,可以验证输入的 Geo 规则是否正确。"
|
||||||
|
|
||||||
|
msgid "Private Key Passphrase"
|
||||||
|
msgstr "私钥指纹"
|
||||||
|
|
||||||
|
msgid "Host Key"
|
||||||
|
msgstr "主机密钥"
|
||||||
|
|
||||||
|
msgid "Accept any if empty."
|
||||||
|
msgstr "留空则不校验。"
|
||||||
|
|
||||||
|
msgid "Host Key Algorithms"
|
||||||
|
msgstr "主机密钥算法"
|
||||||
|
|
||||||
|
msgid "Client Version"
|
||||||
|
msgstr "客户端版本"
|
||||||
|
|
||||||
|
msgid "Random version will be used if empty."
|
||||||
|
msgstr "如留空,则使用随机版本。"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user