| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- local ucursor = require "luci.model.uci".cursor()
- local json = require "luci.jsonc"
- local server_section = arg[1]
- local proto = arg[2]
- local local_port = arg[3] or "0"
- local socks_port = arg[4] or "0"
- local server = ucursor:get_all("shadowsocksr", server_section)
- local Xray = {
- log = {
- -- error = "/var/ssrplus.log",
- loglevel = "warning"
- },
- -- 传入连接
- inbound = (local_port ~= "0") and {
- port = local_port,
- protocol = "dokodemo-door",
- settings = {
- network = proto,
- followRedirect = true
- },
- sniffing = {
- enabled = true,
- destOverride = { "http", "tls" }
- }
- } or nil,
- -- 开启 socks 代理
- inboundDetour = (proto == "tcp" and socks_port ~= "0") and {
- {
- protocol = "socks",
- port = socks_port,
- settings = {
- auth = "noauth",
- udp = true
- }
- }
- } or nil,
- -- 传出连接
- outbound = {
- protocol = (server.type == "v2ray") and "vmess" or "vless",
- settings = {
- vnext = {
- {
- address = server.server,
- port = tonumber(server.server_port),
- users = {
- {
- id = server.vmess_id,
- alterId = (server.type == "v2ray") and tonumber(server.alter_id) or nil,
- security = (server.type == "v2ray") and server.security or nil,
- encryption = (server.type == "vless") and server.vless_encryption or nil,
- flow = (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-origin") or nil,
- }
- }
- }
- }
- },
- -- 底层传输配置
- streamSettings = {
- network = server.transport,
- security = (server.tls == '1') and ((server.xtls == '1') and "xtls" or "tls") or "none",
- tlsSettings = (server.tls == '1' and server.xtls ~= '1') and {allowInsecure = (server.insecure ~= "0") and true or nil,serverName=server.tls_host,} or nil,
- xtlsSettings = (server.xtls == '1') and {allowInsecure = (server.insecure ~= "0") and true or nil,serverName=server.tls_host,} or nil,
- tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and {
- header = {
- type = server.tcp_guise,
- request = {
- path = {server.http_path} or {"/"},
- headers = {
- Host = {server.http_host} or {}
- }
- }
- }
- } or nil,
- 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
- },
- seed = server.seed or nil
- } or nil,
- wsSettings = (server.transport == "ws") and (server.ws_path ~= nil or server.ws_host ~= nil) 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 or "",
- host = {server.h2_host} or nil
- } or nil,
- quicSettings = (server.transport == "quic") and {
- security = server.quic_security,
- key = server.quic_key,
- header = {
- type = server.quic_guise
- }
- } or nil
- },
- mux = (server.xtls ~= "1") and {
- enabled = (server.mux == "1") and true or false,
- concurrency = tonumber(server.concurrency)
- } or nil
- } or nil
- }
- print(json.stringify(Xray,1))
|