mirror of
https://github.com/kenzok8/small-package
synced 2025-01-09 08:59:26 +08:00
update 2022-11-01 23:46:22
This commit is contained in:
parent
176027eeb1
commit
d9226ef9a5
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-xray
|
||||
PKG_VERSION:=1.22.1
|
||||
PKG_VERSION:=1.23.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_LICENSE:=MPLv2
|
||||
|
@ -37,20 +37,20 @@ Focus on making the most of Xray (HTTP/HTTPS/Socks/TProxy inbounds, multiple pro
|
||||
* 2022-03-25 feat: remove web and add metrics configurations (recommended to use with [metrics support](https://github.com/XTLS/Xray-core/pull/1000))
|
||||
* 2022-04-24 feat: metrics is now out of optional features; add basic ubus wrapper for xray apis
|
||||
* 2022-05-13 feat: shadowsocks-2022 protocols support
|
||||
* 2022-06-04 feat: nftables support (experimental)
|
||||
* 2022-06-04 `[OpenWrt 22.03 or above only]` feat: nftables support (experimental)
|
||||
* 2022-06-05 feat: shadowsocks-2022 UDP over TCP support
|
||||
* 2022-06-14 feat: multiple geoip direct code
|
||||
* 2022-06-19 feat: skip proxy for specific uids / gids (nftables support only)
|
||||
* 2022-06-19 `[OpenWrt 22.03 or above only]` feat: skip proxy for specific uids / gids
|
||||
* 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-08-13 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-09-01 feat: specify outbound for manual transparent proxy
|
||||
* 2022-09-26 feat: show process running status
|
||||
* 2022-10-02 feat: detect xray binary path; allow changing default HTTPS server port
|
||||
* 2022-10-03 feat: switch to disable TCP / UDP transparent proxy
|
||||
* 2022-10-05 feat: dialer proxy
|
||||
* 2022-10-06 feat: use goto instead of jump in nftables rules
|
||||
* 2022-10-29 feat: rewrite gen_config in ucode
|
||||
* 2022-10-06 `[OpenWrt 22.03 or above only]` feat: use goto instead of jump in nftables rules
|
||||
* 2022-10-29 `[OpenWrt 22.03 or above only]` feat: rewrite gen_config in ucode
|
||||
* 2022-11-01 feat: support xtls-rprx-vision
|
||||
|
||||
## Changelog 2021
|
||||
|
||||
|
@ -313,8 +313,13 @@ local function vmess_outbound(server, tag)
|
||||
end
|
||||
|
||||
local function vless_outbound(server, tag)
|
||||
local flow = server.vless_flow
|
||||
if server.vless_flow == "none" then
|
||||
local flow = nil
|
||||
if server.vless_tls == "xtls" then
|
||||
flow = server.vless_flow
|
||||
elseif server.vless_tls == "tls" then
|
||||
flow = server.vless_flow_tls
|
||||
end
|
||||
if flow == "none" then
|
||||
flow = nil
|
||||
end
|
||||
local streamSettings, dialerProxy = stream_settings(server, "vless", true, tag)
|
||||
@ -341,8 +346,11 @@ local function vless_outbound(server, tag)
|
||||
end
|
||||
|
||||
local function trojan_outbound(server, tag)
|
||||
local flow = server.trojan_flow
|
||||
if server.trojan_flow == "none" then
|
||||
local flow = nil
|
||||
if server.trojan_tls == "xtls" then
|
||||
flow = server.trojan_flow
|
||||
end
|
||||
if flow == "none" then
|
||||
flow = nil
|
||||
end
|
||||
local streamSettings, dialerProxy = stream_settings(server, "trojan", true, tag)
|
||||
@ -496,6 +504,13 @@ local function tls_inbound_settings()
|
||||
end
|
||||
|
||||
local function https_trojan_inbound()
|
||||
local flow = nil
|
||||
if proxy.trojan_tls == "xtls" then
|
||||
flow = proxy.trojan_flow
|
||||
end
|
||||
if flow == "none" then
|
||||
flow = nil
|
||||
end
|
||||
return {
|
||||
port = proxy.web_server_port or 443,
|
||||
protocol = "trojan",
|
||||
@ -504,7 +519,7 @@ local function https_trojan_inbound()
|
||||
clients = {
|
||||
{
|
||||
password = proxy.web_server_password,
|
||||
flow = proxy.trojan_tls == "xtls" and proxy.trojan_flow or nil
|
||||
flow = flow
|
||||
}
|
||||
},
|
||||
fallbacks = fallbacks()
|
||||
@ -519,6 +534,15 @@ local function https_trojan_inbound()
|
||||
end
|
||||
|
||||
local function https_vless_inbound()
|
||||
local flow = nil
|
||||
if proxy.vless_tls == "xtls" then
|
||||
flow = proxy.vless_flow
|
||||
elseif proxy.vless_tls == "tls" then
|
||||
flow = proxy.vless_flow_tls
|
||||
end
|
||||
if flow == "none" then
|
||||
flow = nil
|
||||
end
|
||||
return {
|
||||
port = proxy.web_server_port or 443,
|
||||
protocol = "vless",
|
||||
@ -527,7 +551,7 @@ local function https_vless_inbound()
|
||||
clients = {
|
||||
{
|
||||
id = proxy.web_server_password,
|
||||
flow = proxy.vless_tls == "xtls" and proxy.vless_flow or nil
|
||||
flow = flow
|
||||
}
|
||||
},
|
||||
decryption = "none",
|
||||
|
@ -300,7 +300,10 @@ function vmess_outbound(server, tag) {
|
||||
|
||||
function vless_outbound(server, tag) {
|
||||
let flow = server["vless_flow"];
|
||||
if (server["vless_flow"] == "none") {
|
||||
if (server["vless_tls"] == "tls") {
|
||||
flow = server["vless_flow_tls"]
|
||||
}
|
||||
if (flow == "none") {
|
||||
flow = null;
|
||||
}
|
||||
const stream_settings_object = stream_settings(server, "vless", true, tag);
|
||||
@ -333,7 +336,7 @@ function vless_outbound(server, tag) {
|
||||
|
||||
function trojan_outbound(server, tag) {
|
||||
let flow = server["trojan_flow"];
|
||||
if (server["trojan_flow"] == "none") {
|
||||
if (flow == "none") {
|
||||
flow = null;
|
||||
}
|
||||
const stream_settings_object = stream_settings(server, "trojan", true, tag);
|
||||
@ -491,6 +494,13 @@ function tls_inbound_settings() {
|
||||
}
|
||||
|
||||
function https_trojan_inbound() {
|
||||
let flow = null;
|
||||
if (proxy["trojan_tls"] == "xtls") {
|
||||
flow = proxy["trojan_flow"]
|
||||
}
|
||||
if (flow == "none") {
|
||||
flow = null;
|
||||
}
|
||||
return {
|
||||
port: proxy["web_server_port"] || 443,
|
||||
protocol: "trojan",
|
||||
@ -499,7 +509,7 @@ function https_trojan_inbound() {
|
||||
clients: [
|
||||
{
|
||||
password: proxy["web_server_password"],
|
||||
flow: proxy["trojan_tls"] == "xtls" ? proxy["trojan_flow"] : null
|
||||
flow: flow
|
||||
}
|
||||
],
|
||||
fallbacks: fallbacks()
|
||||
@ -514,6 +524,15 @@ function https_trojan_inbound() {
|
||||
}
|
||||
|
||||
function https_vless_inbound() {
|
||||
let flow = null;
|
||||
if (proxy["vless_tls"] == "xtls") {
|
||||
flow = proxy["vless_flow"]
|
||||
} else if (proxy["vless_tls"] == "tls") {
|
||||
flow = proxy["vless_flow_tls"]
|
||||
}
|
||||
if (flow == "none") {
|
||||
flow = null;
|
||||
}
|
||||
return {
|
||||
port: proxy["web_server_port"] || 443,
|
||||
protocol: "vless",
|
||||
@ -522,7 +541,7 @@ function https_vless_inbound() {
|
||||
clients: [
|
||||
{
|
||||
id: proxy["web_server_password"],
|
||||
flow: proxy["vless_tls"] == "xtls" ? proxy["vless_flow"] : null
|
||||
flow: flow
|
||||
}
|
||||
],
|
||||
decryption: "none",
|
||||
|
@ -6,7 +6,7 @@
|
||||
'require network';
|
||||
'require tools.widgets as widgets';
|
||||
|
||||
function add_flow_and_stream_security_conf(s, tab_name, depends_field_name, protocol_name, have_xtls, client_side) {
|
||||
function add_flow_and_stream_security_conf(s, tab_name, depends_field_name, protocol_name, have_xtls, have_tls_flow, client_side) {
|
||||
let o = s.taboption(tab_name, form.ListValue, `${protocol_name}_tls`, _(`[${protocol_name}] Stream Security`))
|
||||
let odep = {}
|
||||
odep[depends_field_name] = protocol_name
|
||||
@ -45,6 +45,24 @@ function add_flow_and_stream_security_conf(s, tab_name, depends_field_name, prot
|
||||
o.modalonly = true
|
||||
}
|
||||
|
||||
if (have_tls_flow) {
|
||||
o = s.taboption(tab_name, form.ListValue, `${protocol_name}_flow_tls`, _(`[${protocol_name}][tls] Flow`))
|
||||
let odep = {}
|
||||
odep[depends_field_name] = protocol_name
|
||||
odep[`${protocol_name}_tls`] = "tls"
|
||||
o.value("none", "none")
|
||||
o.value("xtls-rprx-vision", "xtls-rprx-vision")
|
||||
o.value("xtls-rprx-vision-udp443", "xtls-rprx-origin-udp443")
|
||||
if (client_side) {
|
||||
// wait for some other things
|
||||
} else {
|
||||
odep["web_server_enable"] = "1"
|
||||
}
|
||||
o.depends(odep)
|
||||
o.rmempty = false
|
||||
o.modalonly = true
|
||||
}
|
||||
|
||||
if (client_side) {
|
||||
o = s.taboption(tab_name, form.Value, `${protocol_name}_tls_host`, _(`[${protocol_name}][tls] Server Name`))
|
||||
o.depends(`${protocol_name}_tls`, "tls")
|
||||
@ -234,7 +252,7 @@ return view.extend({
|
||||
o.value("shadowsocks", "Shadowsocks")
|
||||
o.rmempty = false
|
||||
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "trojan", true, true)
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "trojan", true, false, true)
|
||||
|
||||
o = ss.taboption('protocol', form.ListValue, "shadowsocks_security", _("[shadowsocks] Encrypt Method"))
|
||||
o.depends("protocol", "shadowsocks")
|
||||
@ -253,7 +271,7 @@ return view.extend({
|
||||
o.rmempty = false
|
||||
o.modalonly = true
|
||||
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "shadowsocks", false, true)
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "shadowsocks", false, false, true)
|
||||
|
||||
o = ss.taboption('protocol', form.ListValue, "vmess_security", _("[vmess] Encrypt Method"))
|
||||
o.depends("protocol", "vmess")
|
||||
@ -275,7 +293,7 @@ return view.extend({
|
||||
o.rmempty = false
|
||||
o.modalonly = true
|
||||
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "vmess", false, true)
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "vmess", false, false, true)
|
||||
|
||||
o = ss.taboption('protocol', form.ListValue, "vless_encryption", _("[vless] Encrypt Method"))
|
||||
o.depends("protocol", "vless")
|
||||
@ -283,7 +301,7 @@ return view.extend({
|
||||
o.rmempty = false
|
||||
o.modalonly = true
|
||||
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "vless", true, true)
|
||||
add_flow_and_stream_security_conf(ss, "protocol", "protocol", "vless", true, true, true)
|
||||
|
||||
ss.tab('transport', _('Transport Settings'));
|
||||
|
||||
@ -674,9 +692,9 @@ return view.extend({
|
||||
o.rmempty = false
|
||||
o.depends("web_server_enable", "1")
|
||||
|
||||
add_flow_and_stream_security_conf(s, "xray_server", "web_server_protocol", "vless", true, false)
|
||||
add_flow_and_stream_security_conf(s, "xray_server", "web_server_protocol", "vless", true, true, false)
|
||||
|
||||
add_flow_and_stream_security_conf(s, "xray_server", "web_server_protocol", "trojan", true, false)
|
||||
add_flow_and_stream_security_conf(s, "xray_server", "web_server_protocol", "trojan", true, false, false)
|
||||
|
||||
o = s.taboption('xray_server', form.Value, 'web_server_password', _('UserId / Password'), _('Fill user_id for vmess / VLESS, or password for shadowsocks / trojan (also supports <a href="https://github.com/XTLS/Xray-core/issues/158">Xray UUID Mapping</a>)'))
|
||||
o.depends("web_server_enable", "1")
|
||||
|
Loading…
Reference in New Issue
Block a user