update 2022-09-01 08:57:22

This commit is contained in:
github-actions[bot] 2022-09-01 08:57:22 +08:00
parent 5a98f7eeed
commit a04ac28a24
6 changed files with 338 additions and 36 deletions

View File

@ -708,8 +708,8 @@ gen_dns(){
log-level fatal
log-file $LOG
EOF
echo "bind :5335 -group a" >>$DNS_T
echo "bind :5336 -group e -no-rule-soa" >>$DNS_T
echo "bind :5335 -group a -no-cache" >>$DNS_T
echo "bind :5336 -group e -no-rule-soa -no-cache" >>$DNS_T
if [ $dns_mode_o = "doh" ];then
if [ "$dns_a" = 1 ];then
echo "server-https $doh_o_a -group a -exclude-default-group" >>$DNS_T

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-xray
PKG_VERSION:=1.15.4
PKG_VERSION:=1.16.1
PKG_RELEASE:=1
PKG_LICENSE:=MPLv2

View File

@ -43,6 +43,7 @@ Focus on making the most of Xray (HTTP/HTTPS/Socks/TProxy inbounds, multiple pro
* 2022-08-07 fix: avoid duplicated items in generated nftables ruleset
* 2022-08-08 fix: make sure forwarded IPs are always forwarded to Xray even for reserved addresses. Xray may not forward those requests so that manner may be changed later.
* 2022-08-13 fix: apply 2022-08-08 fix to iptables as well
* 2022-09-01 feat: specify outbound for manual transparent proxy
## Changelog 2021

View File

@ -58,37 +58,6 @@ local function blackhole_outbound()
}
end
local function manual_tproxy_outbounds()
local result = {}
local i = 0
ucursor:foreach("xray", "manual_tproxy", function(v)
i = i + 1
table.insert(result, {
protocol = "freedom",
tag = string.format("manual_tproxy_outbound_tcp_%d", i),
settings = {
redirect = string.format("%s:%d", v.dest_addr, v.dest_port),
domainStrategy = v.domain_strategy or "UseIP"
},
proxySettings = v.force_forward == "1" and {
tag = "tcp_outbound"
} or nil
})
table.insert(result, {
protocol = "freedom",
tag = string.format("manual_tproxy_outbound_udp_%d", i),
settings = {
redirect = string.format("%s:%d", v.dest_addr, v.dest_port),
domainStrategy = v.domain_strategy or "UseIP"
},
proxySettings = v.force_forward == "1" and {
tag = "udp_outbound"
} or nil
})
end)
return result
end
local function stream_tcp_fake_http_request(server)
if server.tcp_guise == "http" then
return {
@ -761,6 +730,64 @@ local function inbounds()
return i
end
local function manual_tproxy_outbounds()
local result = {}
local i = 0
ucursor:foreach("xray", "manual_tproxy", function(v)
i = i + 1
local tcp_tag = "direct"
local udp_tag = "direct"
if v.force_forward == "1" then
if v.force_forward_server_tcp ~= nil then
if v.force_forward_server_tcp == proxy.main_server then
tcp_tag = "tcp_outbound"
else
tcp_tag = string.format("manual_tproxy_force_forward_tcp_outbound_%d", i)
local force_forward_server_tcp = ucursor:get_all("xray", v.force_forward_server_tcp)
table.insert(result, server_outbound(force_forward_server_tcp, tcp_tag))
end
else
tcp_tag = "tcp_outbound"
end
if v.force_forward_server_udp ~= nil then
if v.force_forward_server_udp == proxy.tproxy_udp_server then
udp_tag = "udp_outbound"
else
udp_tag = string.format("manual_tproxy_force_forward_udp_outbound_%d", i)
local force_forward_server_udp = ucursor:get_all("xray", v.force_forward_server_udp)
table.insert(result, server_outbound(force_forward_server_udp, udp_tag))
end
else
udp_tag = "udp_outbound"
end
end
table.insert(result, {
protocol = "freedom",
tag = string.format("manual_tproxy_outbound_tcp_%d", i),
settings = {
redirect = string.format("%s:%d", v.dest_addr, v.dest_port),
domainStrategy = v.domain_strategy or "UseIP"
},
proxySettings = {
tag = tcp_tag
}
})
table.insert(result, {
protocol = "freedom",
tag = string.format("manual_tproxy_outbound_udp_%d", i),
settings = {
redirect = string.format("%s:%d", v.dest_addr, v.dest_port),
domainStrategy = v.domain_strategy or "UseIP"
},
proxySettings = {
tag = udp_tag
}
})
end)
return result
end
local function manual_tproxy_rules()
local result = {}
local i = 0

View File

@ -606,7 +606,23 @@ return view.extend({
o.default = "UseIP"
o.modalonly = true
o = ss.option(form.Flag, 'force_forward', _('Force Forward'), _('This destination must be forwarded through Xray. (This option might be removed later.)'))
o = ss.option(form.Flag, 'force_forward', _('Force Forward'), _('This destination must be forwarded through an outbound server.'))
o.modalonly = true
o = ss.option(form.ListValue, 'force_forward_server_tcp', _('Force Forward server (TCP)'))
o.depends("force_forward", "1")
o.datatype = "uciname"
for (var v of uci.sections(config_data, "servers")) {
o.value(v[".name"], v.alias || v.server + ":" + v.server_port)
}
o.modalonly = true
o = ss.option(form.ListValue, 'force_forward_server_udp', _('Force Forward server (UDP)'))
o.depends("force_forward", "1")
o.datatype = "uciname"
for (var v of uci.sections(config_data, "servers")) {
o.value(v[".name"], v.alias || v.server + ":" + v.server_port)
}
o.modalonly = true
s.tab('xray_server', _('HTTPS Server'));