diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua index 4152cd61..fc0886df 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/hysteria2.lua @@ -62,11 +62,13 @@ o.rewrite_option = o.option o = s:option(ListValue, _n("obfs_type"), translate("Obfs Type")) o:value("", translate("Disable")) o:value("salamander") +o:value("gecko") o.rewrite_option = o.option o = s:option(Value, _n("obfs_password"), translate("Obfs Password")) o.rewrite_option = o.option o:depends({ [_n("obfs_type")] = "salamander" }) +o:depends({ [_n("obfs_type")] = "gecko" }) o = s:option(Flag, _n("fast_open"), translate("Fast Open")) o.default = "0" diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua index c232b3c4..19c6ad05 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/client/type/sing-box.lua @@ -386,10 +386,12 @@ if singbox_tags:find("with_quic") then o = s:option(ListValue, _n("hysteria2_obfs_type"), translate("Obfs Type")) o:value("", translate("Disable")) o:value("salamander") + o:value("gecko") o:depends({ [_n("protocol")] = "hysteria2" }) o = s:option(Value, _n("hysteria2_obfs_password"), translate("Obfs Password")) o:depends({ [_n("hysteria2_obfs_type")] = "salamander" }) + o:depends({ [_n("hysteria2_obfs_type")] = "gecko" }) o = s:option(Value, _n("hysteria2_up_mbps"), translate("Max upload Mbps")) o:depends({ [_n("protocol")] = "hysteria2" }) diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria2.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria2.lua index 954ce7d3..a59c78b1 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria2.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/hysteria2.lua @@ -50,12 +50,14 @@ o:depends({ [_n("custom")] = false }) o = s:option(ListValue, _n("obfs_type"), translate("Obfs Type")) o:value("", translate("Disable")) o:value("salamander") +o:value("gecko") o.rewrite_option = o.option o:depends({ [_n("custom")] = false }) o = s:option(Value, _n("obfs_password"), translate("Obfs Password")) o.rewrite_option = o.option o:depends({ [_n("obfs_type")] = "salamander" }) +o:depends({ [_n("obfs_type")] = "gecko" }) o = s:option(Flag, _n("udp"), translate("UDP")) o.default = "1" diff --git a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/sing-box.lua b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/sing-box.lua index c7ecb2ec..562e9035 100644 --- a/luci-app-passwall/luasrc/model/cbi/passwall/server/type/sing-box.lua +++ b/luci-app-passwall/luasrc/model/cbi/passwall/server/type/sing-box.lua @@ -175,10 +175,12 @@ if singbox_tags:find("with_quic") then o = s:option(ListValue, _n("hysteria2_obfs_type"), translate("Obfs Type")) o:value("", translate("Disable")) o:value("salamander") + o:value("gecko") o:depends({ [_n("protocol")] = "hysteria2" }) o = s:option(Value, _n("hysteria2_obfs_password"), translate("Obfs Password")) o:depends({ [_n("hysteria2_obfs_type")] = "salamander" }) + o:depends({ [_n("hysteria2_obfs_type")] = "gecko" }) o = s:option(Flag, _n("hysteria2_ignore_client_bandwidth"), translate("Client BBR Flow Control"), translate("Commands the client to use the BBR flow control algorithm")) o.default = 0 diff --git a/luci-app-passwall/luasrc/passwall/util_hysteria2.lua b/luci-app-passwall/luasrc/passwall/util_hysteria2.lua index 98127324..89049692 100644 --- a/luci-app-passwall/luasrc/passwall/util_hysteria2.lua +++ b/luci-app-passwall/luasrc/passwall/util_hysteria2.lua @@ -20,8 +20,8 @@ function gen_config_server(node) key = node.tls_keyFile, }, obfs = (node.hysteria2_obfs_type and node.hysteria2_obfs_password) and { - type = "salamander", - salamander = { + type = node.hysteria2_obfs_type, + [node.hysteria2_obfs_type] = { password = node.hysteria2_obfs_password } } or nil, @@ -104,8 +104,8 @@ function gen_config(var) end)() or nil }, obfs = (node.hysteria2_obfs_type and node.hysteria2_obfs_password) and { - type = "salamander", - salamander = { + type = node.hysteria2_obfs_type, + [node.hysteria2_obfs_type] = { password = node.hysteria2_obfs_password } } or nil, diff --git a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm index 3d7fac55..13a28126 100644 --- a/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm +++ b/luci-app-passwall/luasrc/view/passwall/node_config/link_share_man.htm @@ -600,7 +600,7 @@ local current_node = map:get(section) v_password = opt.get("hysteria2_auth_password"); var dom_obfs = opt.get("hysteria2_obfs_password"); if (dom_obfs && dom_obfs.value != "") { - params += "&obfs=" + "salamander"; + params += opt.query("obfs", "hysteria2_obfs_type"); params += opt.query("obfs-password", "hysteria2_obfs_password"); } params += opt.query("mport", "hysteria2_hop"); @@ -1597,7 +1597,7 @@ local current_node = map:get(section) opt.set(dom_prefix + 'protocol', "hysteria2"); opt.set(dom_prefix + 'hysteria2_auth_password', decodeURIComponent(password)); if (queryParam["obfs-password"] || queryParam["obfs_password"]) { - opt.set(dom_prefix + 'hysteria2_obfs_type', "salamander"); + opt.set(dom_prefix + 'hysteria2_obfs_type', queryParam.obfs || "salamander"); opt.set(dom_prefix + 'hysteria2_obfs_password', queryParam["obfs-password"] || queryParam["obfs_password"]); } opt.set(dom_prefix + 'hysteria2_hop', queryParam.mport || ""); @@ -1608,7 +1608,7 @@ local current_node = map:get(section) dom_prefix = "hysteria2_" opt.set(dom_prefix + 'auth_password', decodeURIComponent(password)); if (queryParam["obfs-password"] || queryParam["obfs_password"]) { - opt.set(dom_prefix + 'obfs_type', "salamander"); + opt.set(dom_prefix + 'obfs_type', queryParam.obfs || "salamander"); opt.set(dom_prefix + 'obfs_password', queryParam["obfs-password"] || queryParam["obfs_password"]); } opt.set(dom_prefix + 'hop', queryParam.mport || ""); diff --git a/luci-app-passwall/root/usr/share/passwall/subscribe.lua b/luci-app-passwall/root/usr/share/passwall/subscribe.lua index ce5757c4..f38a0e94 100755 --- a/luci-app-passwall/root/usr/share/passwall/subscribe.lua +++ b/luci-app-passwall/root/usr/share/passwall/subscribe.lua @@ -1413,7 +1413,7 @@ local function processData(szType, content, add_mode, group, sub_cfg) result.hysteria2_down_mbps = params.downmbps or sub_hy_down_mbps result.hysteria2_hop = params.mport if params["obfs-password"] or params["obfs_password"] then - result.hysteria2_obfs_type = "salamander" + result.hysteria2_obfs_type = params.obfs or "salamander" result.hysteria2_obfs_password = params["obfs-password"] or params["obfs_password"] end diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index b1cbe54f..102fe25b 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -21,13 +21,13 @@ define Download/geoip HASH:=e9002979e0df72bce1c8751ff70725386594c551db684b7a232935b8b2bb8aa2 endef -GEOSITE_VER:=20260522120028 +GEOSITE_VER:=20260525052549 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=1c039aacd6346523f7a316d63318c62d4333864f7a88519e445777005cf65ef3 + HASH:=1a99340f517fe439ca76d7449c78286982978c79c845e367e09d93d7b2035e38 endef GEOSITE_IRAN_VER:=202605250156