| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- 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 v2ray = {
- 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 = "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",
- tlsSettings = {allowInsecure = (server.insecure ~= "0") and true or false,serverName=server.tls_host,},
- 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 (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,
- host = server.h2_host,
- } or nil,
- quicSettings = (server.transport == "quic") and {
- security = server.quic_security,
- key = server.quic_key,
- header = {
- type = server.quic_guise
- }
- } or nil
- },
- mux = {
- enabled = (server.mux == "1") and true or false,
- concurrency = tonumber(server.concurrency)
- }
- },
- -- 额外传出连接
- outboundDetour = {
- {
- protocol = "freedom",
- tag = "direct",
- settings = { keep = "" }
- }
- }
- }
- print(json.stringify(v2ray, 1))
|