81 lines
2.4 KiB
Lua
81 lines
2.4 KiB
Lua
local ucursor = require "luci.model.uci"
|
|
local json = require "luci.jsonc"
|
|
local server_section = arg[1]
|
|
local proto = arg[2]
|
|
|
|
local server = ucursor:get_all("shadowsocksr", server_section)
|
|
|
|
local v2ray = {
|
|
-- 传入连接
|
|
inbound = {
|
|
port = 1234,
|
|
protocol = "dokodemo-door",
|
|
settings = {
|
|
network = proto,
|
|
followRedirect = true
|
|
},
|
|
sniffing = {
|
|
enabled = true,
|
|
destOverride = { "http", "tls" }
|
|
}
|
|
},
|
|
-- 传出连接
|
|
outbound = {
|
|
protocol = "vmess",
|
|
settings = {
|
|
vnext = {
|
|
{
|
|
address = server.server,
|
|
port = tonumber(server.server_port),
|
|
users = {
|
|
{
|
|
id = server.vmess_id,
|
|
alterId = tonumber(server.alter_id),
|
|
security = server.security
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
-- 底层传输配置
|
|
streamSettings = {
|
|
network = server.transport,
|
|
security = (server.tls == '1') and "tls" or "none",
|
|
kcpSettings = (server.transport == "kcp") and {
|
|
mtu = tonumber(server.mtu),
|
|
tti = tonumber(server.tti),
|
|
uplinkCapacity = tonumber(server.uplink_capacity),
|
|
downlinkCapacity = tonumber(server.downlink_capacity),
|
|
congestion = (server.congestion == "1") and true or false,
|
|
readBufferSize = tonumber(server.read_buffer_size),
|
|
writeBufferSize = tonumber(server.write_buffer_size),
|
|
header = {
|
|
type = server.kcp_guise
|
|
}
|
|
} or nil,
|
|
wsSettings = (server.transport == "ws") and {
|
|
path = server.ws_path,
|
|
headers = (server.ws_host ~= nil) and {
|
|
Host = server.ws_host
|
|
} or nil,
|
|
} or nil,
|
|
httpSettings = (server.transport == "h2") and {
|
|
path = server.h2_path,
|
|
host = server.h2_host,
|
|
} or nil
|
|
},
|
|
mux = {
|
|
enabled = (server.mux == "1") and true or false
|
|
}
|
|
},
|
|
|
|
-- 额外传出连接
|
|
outboundDetour = {
|
|
{
|
|
protocol = "freedom",
|
|
tag = "direct",
|
|
settings = { keep = "" }
|
|
}
|
|
}
|
|
}
|
|
print(json.stringify(v2ray)) |