mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Update shadowsocks luci interface
This commit is contained in:
parent
69275038c5
commit
95288f3b1d
14 changed files with 982 additions and 676 deletions
|
@ -545,15 +545,11 @@ function settings_add()
|
|||
local obfs = luci.http.formvalue("obfs") or "0"
|
||||
local obfs_plugin = luci.http.formvalue("obfs_plugin") or "v2ray"
|
||||
local obfs_type = luci.http.formvalue("obfs_type") or "http"
|
||||
ucic:foreach("shadowsocks-libev", "ss_redir", function (section)
|
||||
ucic:foreach("shadowsocks-libev", "server", function (section)
|
||||
ucic:set("shadowsocks-libev",section[".name"],"obfs",obfs)
|
||||
ucic:set("shadowsocks-libev",section[".name"],"obfs_plugin",obfs_plugin)
|
||||
ucic:set("shadowsocks-libev",section[".name"],"obfs_type",obfs_type)
|
||||
end)
|
||||
ucic:set("shadowsocks-libev","tracker","obfs",obfs)
|
||||
ucic:set("shadowsocks-libev","tracker","obfs_plugin",obfs_plugin)
|
||||
ucic:set("shadowsocks-libev","tracker","obfs_type",obfs_type)
|
||||
|
||||
ucic:save("shadowsocks-libev")
|
||||
ucic:commit("shadowsocks-libev")
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
@ -8,10 +7,10 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI Support for shadowsocks-libev
|
||||
LUCI_DEPENDS:=+shadowsocks-libev-config +shadowsocks-libev-ss-local +shadowsocks-libev-ss-redir +shadowsocks-libev-ss-rules +shadowsocks-libev-ss-server +shadowsocks-libev-ss-tunnel +simple-obfs
|
||||
LUCI_DEPENDS:=
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
include ../luci/luci.mk
|
||||
include ../../luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
|
|
@ -22,18 +22,12 @@ m.title = "shadowsocks-libev - %s - %s" % {stype, sname}
|
|||
s = m:section(NamedSection, sname, stype)
|
||||
s:tab("general", translate("General Settings"))
|
||||
s:tab("advanced", translate("Advanced Settings"))
|
||||
s:tab("obfuscate", translate("Obfuscating"))
|
||||
s:taboption("general", Flag, "disabled", translate("Disable"))
|
||||
ss.option_install_package(s, "general")
|
||||
ss.options_common(s, "advanced")
|
||||
local obfs_installed = nixio.fs.access("/usr/bin/obfs-local")
|
||||
local v2ray_installed = nixio.fs.access("/usr/bin/v2ray-plugin")
|
||||
if obfs_installed or v2ray_installed then
|
||||
ss.options_obfs(s, "obfuscate")
|
||||
end
|
||||
|
||||
if stype == "ss_server" then
|
||||
ss.options_server(s, "general")
|
||||
ss.options_server(s, {tab="general"})
|
||||
o = s:taboption("general", Value, "bind_address",
|
||||
translate("Bind address"),
|
||||
translate("The address ss-server will initiate connection from"))
|
||||
|
@ -48,13 +42,6 @@ else
|
|||
translate("The address ss-tunnel will forward traffic to"))
|
||||
o.datatype = "hostport"
|
||||
end
|
||||
if obfs_installed or v2ray_installed then
|
||||
o = s:taboption("obfuscate", Value, "obfs_host", translate("Host"))
|
||||
o.default = "www.bing.com"
|
||||
end
|
||||
if obfs_installed then
|
||||
s:taboption("obfuscate", Value, "obfs_uri", translate("HTTP path uri"))
|
||||
end
|
||||
end
|
||||
|
||||
return m
|
||||
|
|
|
@ -24,8 +24,7 @@ end
|
|||
|
||||
function src_dst_option(s, ...)
|
||||
local o = s:taboption(...)
|
||||
--o.datatype = "or(ip4addr,cidr4)"
|
||||
o.datatype = "or(ip4addr,ip6addr)"
|
||||
o.datatype = "or(ipaddr,cidr)"
|
||||
end
|
||||
|
||||
s = m:section(NamedSection, "ss_rules", "ss_rules")
|
||||
|
@ -99,8 +98,8 @@ else
|
|||
o.inputstyle = "apply"
|
||||
o.write = function()
|
||||
return luci.http.redirect(
|
||||
luci.dispatcher.build_url("admin/system/packages") ..
|
||||
"?submit=1&install=iptables-mod-conntrack-extra"
|
||||
luci.dispatcher.build_url("admin/system/opkg") ..
|
||||
"?query=iptables-mod-conntrack-extra"
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,7 +9,7 @@ local m, s
|
|||
m = Map("shadowsocks-libev",
|
||||
translate("Remote Servers"),
|
||||
translate("Definition of remote shadowsocks servers. \
|
||||
Disable any of them will also disable instances refering to it."))
|
||||
Disable any of them will also disable instances referring to it."))
|
||||
|
||||
local sname = arg[1]
|
||||
if sname then
|
||||
|
@ -19,13 +19,18 @@ if sname then
|
|||
end
|
||||
s = m:section(NamedSection, sname, "server")
|
||||
m.title = m.title .. ' - ' .. sname
|
||||
opts = {}
|
||||
else
|
||||
s = m:section(TypedSection, "server")
|
||||
s.template = 'cbi/tblsection'
|
||||
s.addremove = true
|
||||
s.extedit = function(self, section)
|
||||
return 'servers/' .. section
|
||||
end
|
||||
opts = {row=true}
|
||||
end
|
||||
|
||||
s:option(Flag, "disabled", translate("Disable"))
|
||||
ss.options_server(s)
|
||||
ss.options_server(s, opts)
|
||||
|
||||
return m
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
-- Copyright 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
-- Copyright 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
-- Licensed to the public under the Apache License 2.0.
|
||||
|
||||
|
@ -7,7 +6,6 @@ local ut = require("luci.util")
|
|||
local sys = require("luci.sys")
|
||||
local ds = require("luci.dispatcher")
|
||||
local nw = require("luci.model.network")
|
||||
local ucic = luci.model.uci.cursor()
|
||||
nw.init()
|
||||
module("luci.model.shadowsocks-libev", function(m)
|
||||
setmetatable(m, {__index=function (self, k)
|
||||
|
@ -25,7 +23,7 @@ function values_actions(o)
|
|||
end
|
||||
|
||||
function values_redir(o, xmode)
|
||||
ucic:foreach("shadowsocks-libev", "ss_redir", function(sdata)
|
||||
o.map.uci:foreach("shadowsocks-libev", "ss_redir", function(sdata)
|
||||
local disabled = ucival_to_bool(sdata["disabled"])
|
||||
local sname = sdata[".name"]
|
||||
local mode = sdata["mode"] or "tcp_only"
|
||||
|
@ -39,7 +37,7 @@ function values_redir(o, xmode)
|
|||
end
|
||||
|
||||
function values_serverlist(o)
|
||||
ucic:foreach("shadowsocks-libev", "server", function(sdata)
|
||||
o.map.uci:foreach("shadowsocks-libev", "server", function(sdata)
|
||||
local sname = sdata[".name"]
|
||||
local server = sdata["server"]
|
||||
local server_port = sdata["server_port"]
|
||||
|
@ -78,9 +76,13 @@ function options_client(s, tab)
|
|||
o.datatype = "port"
|
||||
end
|
||||
|
||||
function options_server(s, tab)
|
||||
function options_server(s, opts)
|
||||
local o
|
||||
local optfunc
|
||||
local tab = opts and opts.tab or nil
|
||||
local row = opts and opts.row or false
|
||||
local v2ray_installed = nixio.fs.access("/usr/bin/v2ray-plugin")
|
||||
local obfs_installed = nixio.fs.access("/usr/bin/obfs-local")
|
||||
|
||||
if tab == nil then
|
||||
optfunc = function(...) return s:option(...) end
|
||||
|
@ -98,12 +100,39 @@ function options_server(s, tab)
|
|||
for _, m in ipairs(methods) do
|
||||
o:value(m)
|
||||
end
|
||||
o = optfunc(Value, "key", translate("Key (base64 encoding)"))
|
||||
o.datatype = "base64"
|
||||
o.password = true
|
||||
o = optfunc(Value, "password", translate("Password"))
|
||||
o.password = true
|
||||
o.size = 12
|
||||
if not row then
|
||||
o = optfunc(Value, "key", translate("Key (base64)"))
|
||||
o.datatype = "base64"
|
||||
o.password = true
|
||||
o.size = 12
|
||||
--optfunc(Value, "plugin", translate("Plugin"))
|
||||
--optfunc(Value, "plugin_opts", translate("Plugin Options"))
|
||||
optfunc(Flag, "obfs", translate("Enable obfuscation"))
|
||||
o = optfunc(ListValue, "obfs_plugin", translate("OBFS Plugin"))
|
||||
if v2ray_installed then
|
||||
o:value("v2ray")
|
||||
o.default = "v2ray"
|
||||
else
|
||||
o.default = "obfs-simple"
|
||||
end
|
||||
if obfs_installed then
|
||||
o:value("obfs-simple")
|
||||
end
|
||||
if v2ray_installed or obfs_installed then
|
||||
o = optfunc(ListValue, "obfs_type", translate("OBFS Type"))
|
||||
o:value("http")
|
||||
o:value("tls")
|
||||
o.default = "http"
|
||||
o = optfunc(Value, "obfs_host", translate("OBFS Host"))
|
||||
o.default = "www.bing.com"
|
||||
end
|
||||
if obfs_installed then
|
||||
o = optfunc(Value, "obfs_uri", translate("OBFS HTTP path uri"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function options_common(s, tab)
|
||||
|
@ -121,33 +150,11 @@ function options_common(s, tab)
|
|||
s:taboption(tab, Value, "user", translate("Run as"))
|
||||
|
||||
s:taboption(tab, Flag, "verbose", translate("Verbose"))
|
||||
s:taboption(tab, Flag, "mptcp", translate("Enable MPTCP"))
|
||||
s:taboption(tab, Flag, "ipv6_first", translate("IPv6 First"), translate("Prefer IPv6 addresses when resolving names"))
|
||||
s:taboption(tab, Flag, "fast_open", translate("Enable TCP Fast Open"))
|
||||
s:taboption(tab, Flag, "reuse_port", translate("Enable SO_REUSEPORT"))
|
||||
s:taboption(tab, Flag, "no_delay", translate("Enable TCP_NODELAY"))
|
||||
s:taboption(tab, Flag, "mptcp", translate("Enable MPTCP"))
|
||||
--s:taboption(tab, Flag, "ebpf", translate("Enable eBPF"))
|
||||
end
|
||||
|
||||
function options_obfs(s, tab)
|
||||
local o
|
||||
local v2ray_installed = nixio.fs.access("/usr/bin/v2ray-plugin")
|
||||
local obfs_installed = nixio.fs.access("/usr/bin/obfs-local")
|
||||
s:taboption(tab, Flag, "obfs", translate("Enable"))
|
||||
o = s:taboption(tab, ListValue, "obfs_plugin", translate("Plugin"))
|
||||
if v2ray_installed then
|
||||
o:value("v2ray")
|
||||
o.default = "v2ray"
|
||||
else
|
||||
o.default = "obfs-simple"
|
||||
end
|
||||
if obfs_installed then
|
||||
o:value("obfs-simple")
|
||||
end
|
||||
o = s:taboption(tab, ListValue, "obfs_type", translate("Type"))
|
||||
o:value("http")
|
||||
o:value("tls")
|
||||
o.default = "http"
|
||||
s:taboption(tab, Flag, "reuse_port", translate("Enable SO_REUSEPORT"))
|
||||
end
|
||||
|
||||
function ucival_to_bool(val)
|
||||
|
@ -164,20 +171,12 @@ function cfgvalue_overview(sdata)
|
|||
cfgvalue_overview_(sdata, lines, {
|
||||
"bind_address",
|
||||
})
|
||||
local installed = nixio.fs.access("/usr/bin/obfs-server")
|
||||
if installed then
|
||||
cfgvalue_overview_(sdata, lines, names_options_obfs)
|
||||
end
|
||||
elseif stype == "ss_local" or stype == "ss_redir" or stype == "ss_tunnel" then
|
||||
cfgvalue_overview_(sdata, lines, names_options_client)
|
||||
if stype == "ss_tunnel" then
|
||||
cfgvalue_overview_(sdata, lines, {"tunnel_address"})
|
||||
end
|
||||
cfgvalue_overview_(sdata, lines, names_options_common)
|
||||
local installed = nixio.fs.access("/usr/bin/obfs-local")
|
||||
if installed then
|
||||
cfgvalue_overview_(sdata, lines, names_options_obfs)
|
||||
end
|
||||
else
|
||||
return nil, nil
|
||||
end
|
||||
|
@ -186,7 +185,7 @@ function cfgvalue_overview(sdata)
|
|||
local value = {
|
||||
[".name"] = sname,
|
||||
name = '%s.<var>%s</var>' % {stype, sname},
|
||||
overview = table.concat(lines, "</br>"),
|
||||
overview = table.concat(lines, "<br />"),
|
||||
disabled = ucival_to_bool(sdata["disabled"]),
|
||||
}
|
||||
return key, value
|
||||
|
@ -231,8 +230,8 @@ function option_install_package(s, tab)
|
|||
|
||||
function p_install.write()
|
||||
return luci.http.redirect(
|
||||
luci.dispatcher.build_url("admin/system/packages") ..
|
||||
"?submit=1&install=%s" % opkg_package
|
||||
luci.dispatcher.build_url("admin/system/opkg") ..
|
||||
"?query=%s" % opkg_package
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -243,6 +242,8 @@ names_options_server = {
|
|||
"method",
|
||||
"key",
|
||||
"password",
|
||||
"plugin",
|
||||
"plugin_opts",
|
||||
}
|
||||
|
||||
names_options_client = {
|
||||
|
@ -261,11 +262,6 @@ names_options_common = {
|
|||
"mtu",
|
||||
"timeout",
|
||||
"user",
|
||||
"mptcp",
|
||||
}
|
||||
|
||||
names_options_obfs = {
|
||||
"obfs",
|
||||
}
|
||||
|
||||
modes = {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>" value="<%:Add%>" />
|
||||
</div>
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(5, '<%=url('admin/services/shadowsocks-libev/status')%>', null,
|
||||
XHR.poll(-1, '<%=url('admin/services/shadowsocks-libev/status')%>', null,
|
||||
function(x, st)
|
||||
{
|
||||
var names = [
|
||||
|
|
368
luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po
Normal file
368
luci-app-shadowsocks-libev/po/es/shadowsocks-libev.po
Normal file
|
@ -0,0 +1,368 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.2.1\n"
|
||||
"Last-Translator: \n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Language: es\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:176
|
||||
msgid "<hidden>"
|
||||
msgstr "<oculto>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm:14
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:24
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Configuración avanzada"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:32
|
||||
msgid "Bind address"
|
||||
msgstr "Dirección de enlace"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:73
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr "Omitir ss-redir para paquetes con dirección dst en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:59
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr "Omitir ss-redir para paquetes con dirección src en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:65
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
"Continuar con la verificación de la dirección dst para paquetes con "
|
||||
"dirección src en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:47
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr "Acción predeterminada para paquetes TCP generados localmente"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:88
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
"Acción predeterminada para paquetes cuya dirección dst no coincide con "
|
||||
"ninguna de la lista dst ip"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:68
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
"Acción predeterminada para paquetes cuya dirección src no coincide con "
|
||||
"ninguna de la lista src ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:11
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
"Definición de servidores shadowsocks remotos. Deshabilitar cualquiera de "
|
||||
"ellos también deshabilitará las instancias que lo refieran."
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:33
|
||||
msgid "Destination Settings"
|
||||
msgstr "Configuración de destino"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:25
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:35
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:33
|
||||
msgid "Disable"
|
||||
msgstr "Deshabilitar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:86
|
||||
msgid "Disabled"
|
||||
msgstr "Deshabilitado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:87
|
||||
msgid "Dst default"
|
||||
msgstr "Dst predeterminado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:72
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr "Omitir Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:79
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr "Omitir archivo Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:75
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr "Reenviar Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:83
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr "Reenviar archivo Dst ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:132
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr "Habilitar SO_REUSEPORT"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:130
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr "Habilitar TCP Fast Open"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:131
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr "Habilitar TCP_NODELAY"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:83
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Habilitar/Deshabilitar"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:89
|
||||
msgid "Enabled"
|
||||
msgstr "Habilitado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:54
|
||||
msgid "Extra arguments"
|
||||
msgstr "Argumentos extra"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:80
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
"Archivo que contiene ip/net para los fines como con <em>Omitir Dst ip/net</"
|
||||
"em>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:84
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
"Archivo que contiene ip / net para los fines como con <em>Reenviar Dst ip/"
|
||||
"net</em>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:106
|
||||
msgid "Forward recentrst"
|
||||
msgstr "Reenviar recentrst"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:107
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
"Reenviar aquellos paquetes cuyos archivos dst nos hayan enviado "
|
||||
"recientemente múltiples tcp-rst"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:76
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
"Reenviar a través de ss-redir para paquetes con dirección dst en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:62
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
"Reenviar a través de ss-redir para paquetes con dirección src en esta lista"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:23
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:31
|
||||
msgid "General Settings"
|
||||
msgstr "Configuración general"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:129
|
||||
msgid "IPv6 First"
|
||||
msgstr "IPv6 primero"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:50
|
||||
msgid "Ingress interfaces"
|
||||
msgstr "Interfaces de ingreso"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:203
|
||||
msgid "Install package %q"
|
||||
msgstr "Instalar paquete %q"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:97
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr "Instalar el paquete iptables-mod-conntrack-extra"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:11
|
||||
msgid ""
|
||||
"Instances of shadowsocks-libev components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
"Instancias de componentes de shadowsocks-libev, ej. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. Para habilitar una instancia, se requiere habilitar "
|
||||
"tanto la instancia como el servidor remoto al que hace referencia."
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:105
|
||||
msgid "Key (base64)"
|
||||
msgstr "Clave (base64)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:13
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:10
|
||||
msgid "Local Instances"
|
||||
msgstr "Instancias locales"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:71
|
||||
msgid "Local address"
|
||||
msgstr "Dirección local"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:75
|
||||
msgid "Local port"
|
||||
msgstr "Puerto local"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:46
|
||||
msgid "Local-out default"
|
||||
msgstr "Salida local predeterminada"
|
||||
|
||||
# Maximum Transmission Unit
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:122
|
||||
msgid "MTU"
|
||||
msgstr "MTU"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:97
|
||||
msgid "Method"
|
||||
msgstr "Método"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:117
|
||||
msgid "Mode of operation"
|
||||
msgstr "Modo de operación"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:76
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm:12
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:10
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
"En esta página puede configurar cómo se reenviará el tráfico a las "
|
||||
"instancias de ss-redir. Si están habilitados, los paquetes tendrán primero "
|
||||
"sus direcciones src ip verificadas con <em>Omitir Src ip / net</em>, "
|
||||
"<em>Reenviar Src ip / net</em>, <em>Src ip / net checkdst</em > y si ninguno "
|
||||
"coincide con <em>Src predeterminado</em> dará la acción predeterminada que "
|
||||
"se debe realizar. Si la verificación anterior resulta en la acción "
|
||||
"<em>checkdst</em>, los paquetes continuarán teniendo sus direcciones dst "
|
||||
"marcadas."
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:51
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr "Solo aplicar reglas en paquetes desde estas interfaces de red"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:78
|
||||
msgid "Overview"
|
||||
msgstr "Visión general"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:202
|
||||
msgid "Package is not installed"
|
||||
msgstr "Paquete no instalado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:55
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr "Pasa argumentos adicionales a iptables. Utilizar con cuidado!"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:101
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:109
|
||||
msgid "Plugin"
|
||||
msgstr "Plugin"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:110
|
||||
msgid "Plugin Options"
|
||||
msgstr "Opciones de plugin"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:129
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr "Preferir direcciones IPv6 al resolver nombres"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:21
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:9
|
||||
msgid "Redir Rules"
|
||||
msgstr "Reglas de redireccionamiento"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:17
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:10
|
||||
msgid "Remote Servers"
|
||||
msgstr "Servidores remotos"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:69
|
||||
msgid "Remote server"
|
||||
msgstr "Servidor remoto"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:126
|
||||
msgid "Run as"
|
||||
msgstr "Correr como"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:81
|
||||
msgid "Running"
|
||||
msgstr "Corriendo"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:91
|
||||
msgid "Server"
|
||||
msgstr "Servidor"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:94
|
||||
msgid "Server port"
|
||||
msgstr "Puerto del servidor"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:9
|
||||
msgid "Shadowsocks-libev"
|
||||
msgstr "Shadowsocks-libev"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:32
|
||||
msgid "Source Settings"
|
||||
msgstr "Configuración de fuente"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:67
|
||||
msgid "Src default"
|
||||
msgstr "Src predeterminado"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:58
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr "Omitir Src ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:64
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr "Src ip/net checkdst"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:61
|
||||
msgid "Src ip/net forward"
|
||||
msgstr "Reenviar Src ip/net"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:33
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr "La dirección ss-server iniciará la conexión desde"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:42
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr "La dirección ss-tunnel reenviará el tráfico a"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:124
|
||||
msgid "Timeout (sec)"
|
||||
msgstr "Tiempo de espera (seg)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:41
|
||||
msgid "Tunnel address"
|
||||
msgstr "Direccion del tunel"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:128
|
||||
msgid "Verbose"
|
||||
msgstr "Verboso"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:39
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr "ss-redir para TCP"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:42
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr "ss-redir para UDP"
|
|
@ -1,281 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.0.6\n"
|
||||
"Last-Translator: Ycarus <ycarus@zugaina.org>\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Language: fr\n"
|
||||
|
||||
msgid "<hidden>"
|
||||
msgstr "<caché>"
|
||||
|
||||
msgid "Add"
|
||||
msgstr "Ajout"
|
||||
|
||||
msgid "Advanced Settings"
|
||||
msgstr "Configuration avancé"
|
||||
|
||||
msgid "Bind address"
|
||||
msgstr "Port de connexion"
|
||||
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
"Passer outre ss-redir pour les paquets avec l'adresse de destination dans "
|
||||
"cette liste"
|
||||
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
"Passer outre ss-redir pour les paquets avec l'adresse source dans cette liste"
|
||||
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
"Continuer de vérifier les adresses de destination pour les paquets ayant une "
|
||||
"adresse source dans cette liste"
|
||||
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr "Action par défaut pour les paquets TCP générés localement"
|
||||
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
"Action par défaut pour les paquets dont l'adresse destination ne correspond "
|
||||
"à aucune adresse ip de la liste destination"
|
||||
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
"Action par défaut pour les paquets dont l'adresse source ne correspond à "
|
||||
"aucune ip de la liste source"
|
||||
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances refering to it."
|
||||
msgstr ""
|
||||
"Configuration des serveurs shadowsocks distant. La désactivation d'un "
|
||||
"serveur entraine la désactivation des instances l'utilisant."
|
||||
|
||||
msgid "Destination Settings"
|
||||
msgstr "Paramètres de destination"
|
||||
|
||||
msgid "Disable"
|
||||
msgstr "Désactive"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
msgid "Dst default"
|
||||
msgstr "Destination défaut"
|
||||
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "Activé"
|
||||
|
||||
msgid "Enable MPTCP"
|
||||
msgstr "Activé MPTCP"
|
||||
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr "Activé SO_REUSEPORT"
|
||||
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr "Activé TCP Fast Open"
|
||||
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr "Activé TCP_NODELAY"
|
||||
|
||||
msgid "Enable/Disable"
|
||||
msgstr "Activé/Désactivé"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "Activé"
|
||||
|
||||
msgid "Extra arguments"
|
||||
msgstr "Arguments supplémentaires"
|
||||
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr "Paramètres généraux"
|
||||
|
||||
msgid "HTTP path uri"
|
||||
msgstr ""
|
||||
|
||||
msgid "Host"
|
||||
msgstr "Hôte"
|
||||
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Install package %q"
|
||||
msgstr ""
|
||||
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Instances of shadowsocks-libev components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
msgid "Key (base64 encoding)"
|
||||
msgstr "Clef (base64)"
|
||||
|
||||
msgid "Local Instances"
|
||||
msgstr "Instances Locales"
|
||||
|
||||
msgid "Local address"
|
||||
msgstr "Adresse locale"
|
||||
|
||||
msgid "Local port"
|
||||
msgstr "Port local"
|
||||
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
msgid "Method"
|
||||
msgstr "Méthode"
|
||||
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
msgid "Obfuscating"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
msgid "Overview"
|
||||
msgstr "Aperçu"
|
||||
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
msgid "Redir Rules"
|
||||
msgstr "Règles de redirection"
|
||||
|
||||
msgid "Remote Servers"
|
||||
msgstr "Serveurs distant"
|
||||
|
||||
msgid "Remote server"
|
||||
msgstr "Serveur distant"
|
||||
|
||||
msgid "Run as"
|
||||
msgstr "Lance en tant que"
|
||||
|
||||
msgid "Running"
|
||||
msgstr "Lancé"
|
||||
|
||||
msgid "Server"
|
||||
msgstr "Serveur"
|
||||
|
||||
msgid "Server port"
|
||||
msgstr "Port du serveur"
|
||||
|
||||
msgid "Shadowsocks-libev"
|
||||
msgstr ""
|
||||
|
||||
msgid "Source Settings"
|
||||
msgstr "Paramètres de la source"
|
||||
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
|
@ -1,173 +1,210 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:176
|
||||
msgid "<hidden>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm:14
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:24
|
||||
msgid "Advanced Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:32
|
||||
msgid "Bind address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:73
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:59
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:65
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:47
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:88
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:68
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:11
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances refering to it."
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:33
|
||||
msgid "Destination Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:25
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:35
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:33
|
||||
msgid "Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:86
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:87
|
||||
msgid "Dst default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:72
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:79
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:75
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:83
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable MPTCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:132
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:130
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:131
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:83
|
||||
msgid "Enable/Disable"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:89
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:54
|
||||
msgid "Extra arguments"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:80
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:84
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:106
|
||||
msgid "Forward recentrst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:107
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:76
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:62
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:23
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:31
|
||||
msgid "General Settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "HTTP path uri"
|
||||
msgstr ""
|
||||
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:129
|
||||
msgid "IPv6 First"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:50
|
||||
msgid "Ingress interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:203
|
||||
msgid "Install package %q"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:97
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:11
|
||||
msgid ""
|
||||
"Instances of shadowsocks-libev components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
|
||||
msgid "Key (base64 encoding)"
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:105
|
||||
msgid "Key (base64)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:13
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:10
|
||||
msgid "Local Instances"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:71
|
||||
msgid "Local address"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:75
|
||||
msgid "Local port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:46
|
||||
msgid "Local-out default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:122
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:97
|
||||
msgid "Method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:117
|
||||
msgid "Mode of operation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:76
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm:12
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
msgid "Obfuscating"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:10
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
|
@ -177,83 +214,116 @@ msgid ""
|
|||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:51
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:78
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:202
|
||||
msgid "Package is not installed"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:55
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:101
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:109
|
||||
msgid "Plugin"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:110
|
||||
msgid "Plugin Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:129
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:21
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:9
|
||||
msgid "Redir Rules"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:17
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:10
|
||||
msgid "Remote Servers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:69
|
||||
msgid "Remote server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:126
|
||||
msgid "Run as"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:81
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:91
|
||||
msgid "Server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:94
|
||||
msgid "Server port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:9
|
||||
msgid "Shadowsocks-libev"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:32
|
||||
msgid "Source Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:67
|
||||
msgid "Src default"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:58
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:64
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:61
|
||||
msgid "Src ip/net forward"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:33
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:42
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:124
|
||||
msgid "Timeout (sec)"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:41
|
||||
msgid "Tunnel address"
|
||||
msgstr ""
|
||||
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:128
|
||||
msgid "Verbose"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:39
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:42
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr ""
|
||||
|
|
343
luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po
Normal file
343
luci-app-shadowsocks-libev/po/zh-cn/shadowsocks-libev.po
Normal file
|
@ -0,0 +1,343 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Last-Translator: Yousong Zhou <yszhou4tech@gmail.com>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:176
|
||||
msgid "<hidden>"
|
||||
msgstr "<已隐藏>"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm:14
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:24
|
||||
msgid "Advanced Settings"
|
||||
msgstr "高级设置"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:32
|
||||
msgid "Bind address"
|
||||
msgstr "绑定地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:73
|
||||
msgid "Bypass ss-redir for packets with dst address in this list"
|
||||
msgstr "对于目的地址在列表中的报文,绕过ss-redir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:59
|
||||
msgid "Bypass ss-redir for packets with src address in this list"
|
||||
msgstr "对于源地址在列表中的报文,绕过ss-redir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:65
|
||||
msgid ""
|
||||
"Continue to have dst address checked for packets with src address in this "
|
||||
"list"
|
||||
msgstr "对于源地址在列表中的报文,继续检查其目的地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:47
|
||||
msgid "Default action for locally generated TCP packets"
|
||||
msgstr "对于设备本身产生的TCP报文的默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:88
|
||||
msgid ""
|
||||
"Default action for packets whose dst address do not match any of the dst ip "
|
||||
"list"
|
||||
msgstr "对于目的地址不在列表中的报文的默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:68
|
||||
msgid ""
|
||||
"Default action for packets whose src address do not match any of the src ip/"
|
||||
"net list"
|
||||
msgstr "对于源地址不在列表中的报文的默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:11
|
||||
msgid ""
|
||||
"Definition of remote shadowsocks servers. Disable any of them will also "
|
||||
"disable instances referring to it."
|
||||
msgstr ""
|
||||
"在此页面设定访问远端shadowsocks服务器的参数。请注意,禁用远端服务器会同时停止"
|
||||
"与之关联的shadowsocks-libev组件"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:33
|
||||
msgid "Destination Settings"
|
||||
msgstr "目的地址设定"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:25
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:35
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:33
|
||||
msgid "Disable"
|
||||
msgstr "禁用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:86
|
||||
msgid "Disabled"
|
||||
msgstr "已禁用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:87
|
||||
msgid "Dst default"
|
||||
msgstr "目的未匹配时默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:72
|
||||
msgid "Dst ip/net bypass"
|
||||
msgstr "绕过"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:79
|
||||
msgid "Dst ip/net bypass file"
|
||||
msgstr "绕过(文件)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:75
|
||||
msgid "Dst ip/net forward"
|
||||
msgstr "转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:83
|
||||
msgid "Dst ip/net forward file"
|
||||
msgstr "转发(文件)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:132
|
||||
msgid "Enable SO_REUSEPORT"
|
||||
msgstr "启用SO_REUSEPORT"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:130
|
||||
msgid "Enable TCP Fast Open"
|
||||
msgstr "启用TCP Fast Open"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:131
|
||||
msgid "Enable TCP_NODELAY"
|
||||
msgstr "启用TCP_NODELAY"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:83
|
||||
msgid "Enable/Disable"
|
||||
msgstr "启用/禁用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:89
|
||||
msgid "Enabled"
|
||||
msgstr "已启用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:54
|
||||
msgid "Extra arguments"
|
||||
msgstr "额外参数"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:80
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net bypass</em>"
|
||||
msgstr "文件列出需要绕过ss-redir转发的地址和网段"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:84
|
||||
msgid ""
|
||||
"File containing ip/net for the purposes as with <em>Dst ip/net forward</em>"
|
||||
msgstr "文件列出需要使用ss-redir转发的地址和网段"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:106
|
||||
msgid "Forward recentrst"
|
||||
msgstr "转发被连接重置的地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:107
|
||||
msgid ""
|
||||
"Forward those packets whose dst have recently sent to us multiple tcp-rst"
|
||||
msgstr "若近期多次收到某地址的连接重置报文,则将其加入到转发列表中"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:76
|
||||
msgid "Forward through ss-redir for packets with dst address in this list"
|
||||
msgstr "对于目的地址在列表中的报文,通过ss-redir转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:62
|
||||
msgid "Forward through ss-redir for packets with src address in this list"
|
||||
msgstr "对于源地址在列表中的报文,通过ss-redir转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:23
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:31
|
||||
msgid "General Settings"
|
||||
msgstr "常规设置"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:129
|
||||
msgid "IPv6 First"
|
||||
msgstr "IPv6优先"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:50
|
||||
msgid "Ingress interfaces"
|
||||
msgstr "入口网卡"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:203
|
||||
msgid "Install package %q"
|
||||
msgstr "安装%q"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:97
|
||||
msgid "Install package iptables-mod-conntrack-extra"
|
||||
msgstr "安装iptables-mod-conntrack-extra"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:11
|
||||
msgid ""
|
||||
"Instances of shadowsocks-libev components, e.g. ss-local, ss-redir, ss-"
|
||||
"tunnel, ss-server, etc. To enable an instance it is required to enable both "
|
||||
"the instance itself and the remote server it refers to."
|
||||
msgstr ""
|
||||
"此页面展示本地运行的shadowsocks-libev各组件实例,如ss-local、ss-redir、ss-"
|
||||
"tunnel、ss-server等。请注意,实际启用一个实例要求实例本身及所关联的远端服务器"
|
||||
"都是启用状态。"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:105
|
||||
msgid "Key (base64)"
|
||||
msgstr "密钥(base64)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:13
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:10
|
||||
msgid "Local Instances"
|
||||
msgstr "本地实例"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:71
|
||||
msgid "Local address"
|
||||
msgstr "监听地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:75
|
||||
msgid "Local port"
|
||||
msgstr "监听端口"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:46
|
||||
msgid "Local-out default"
|
||||
msgstr "本地报文默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:122
|
||||
msgid "MTU"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:97
|
||||
msgid "Method"
|
||||
msgstr "加密方法"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:117
|
||||
msgid "Mode of operation"
|
||||
msgstr "工作模式"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:76
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm:12
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:10
|
||||
msgid ""
|
||||
"On this page you can configure how traffics are to be forwarded to ss-redir "
|
||||
"instances. If enabled, packets will first have their src ip addresses "
|
||||
"checked against <em>Src ip/net bypass</em>, <em>Src ip/net forward</em>, "
|
||||
"<em>Src ip/net checkdst</em> and if none matches <em>Src default</em> will "
|
||||
"give the default action to be taken. If the prior check results in action "
|
||||
"<em>checkdst</em>, packets will continue to have their dst addresses checked."
|
||||
msgstr ""
|
||||
"在此页面,您可以配置指定报文是否通过ss-redir转发。启用后,规则会先将报文的源"
|
||||
"地址与相应的地址集进行匹配,依次决定是否“绕过(<em>bypass</em>)”、“转发"
|
||||
"(<em>forward</em>)”,或“继续匹配目的地址(<em>checkdst</em>)”;若未在集合"
|
||||
"中找到匹配,则执行指定的默认动作。继续匹配目的地址时同理。"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:51
|
||||
msgid "Only apply rules on packets from these network interfaces"
|
||||
msgstr "仅对来自指定网卡的报文应用规则"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:78
|
||||
msgid "Overview"
|
||||
msgstr "概览"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:202
|
||||
msgid "Package is not installed"
|
||||
msgstr "依赖包未安装"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:55
|
||||
msgid "Passes additional arguments to iptables. Use with care!"
|
||||
msgstr "给iptables的额外参数。请小心使用"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:101
|
||||
msgid "Password"
|
||||
msgstr "密码"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:109
|
||||
msgid "Plugin"
|
||||
msgstr "启用插件"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:110
|
||||
msgid "Plugin Options"
|
||||
msgstr "插件选项"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:129
|
||||
msgid "Prefer IPv6 addresses when resolving names"
|
||||
msgstr "名字解析时优先取用IPv6地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:21
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:9
|
||||
msgid "Redir Rules"
|
||||
msgstr "转发规则"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:17
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua:10
|
||||
msgid "Remote Servers"
|
||||
msgstr "远端服务器"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:69
|
||||
msgid "Remote server"
|
||||
msgstr "服务器"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:126
|
||||
msgid "Run as"
|
||||
msgstr "运行时用户"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua:81
|
||||
msgid "Running"
|
||||
msgstr "运行中"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:91
|
||||
msgid "Server"
|
||||
msgstr "监听地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:94
|
||||
msgid "Server port"
|
||||
msgstr "监听端口"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua:9
|
||||
msgid "Shadowsocks-libev"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:32
|
||||
msgid "Source Settings"
|
||||
msgstr "源地址设定"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:67
|
||||
msgid "Src default"
|
||||
msgstr "源未匹配默认行为"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:58
|
||||
msgid "Src ip/net bypass"
|
||||
msgstr "绕过"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:64
|
||||
msgid "Src ip/net checkdst"
|
||||
msgstr "继续匹配目的地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:61
|
||||
msgid "Src ip/net forward"
|
||||
msgstr "转发"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:33
|
||||
msgid "The address ss-server will initiate connection from"
|
||||
msgstr "ss-server建立连接时使用的源地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:42
|
||||
msgid "The address ss-tunnel will forward traffic to"
|
||||
msgstr "ss-tunnel所建立隧道的对端地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:124
|
||||
msgid "Timeout (sec)"
|
||||
msgstr "超时时间(秒)"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua:41
|
||||
msgid "Tunnel address"
|
||||
msgstr "隧道对端地址"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua:128
|
||||
msgid "Verbose"
|
||||
msgstr "记录详细日志"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:39
|
||||
msgid "ss-redir for TCP"
|
||||
msgstr "用于TCP转发的ss-redir"
|
||||
|
||||
#: applications/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua:42
|
||||
msgid "ss-redir for UDP"
|
||||
msgstr "用于UDP转发的ss-redir"
|
|
@ -108,6 +108,9 @@ _get_ss_redir() {
|
|||
[ "$cf_fast_open" = "1" ] && fast_open="true"
|
||||
config_get cf_no_delay $1 no_delay
|
||||
[ "$cf_no_delay" = "1" ] && no_delay="true"
|
||||
}
|
||||
|
||||
_get_ss_server() {
|
||||
config_get cf_obfs $1 obfs
|
||||
[ "$cf_obfs" = "1" ] && obfs="true"
|
||||
config_get obfs_plugin $1 obfs_plugin
|
||||
|
@ -145,6 +148,7 @@ _set_ss_server_vps() {
|
|||
obfs_type="http"
|
||||
config_load shadowsocks-libev
|
||||
config_foreach _get_ss_redir ss_redir
|
||||
config_foreach _get_ss_server server
|
||||
|
||||
if [ "$current_obfs_plugin" != "$obfs_plugin" ] || [ "$current_obfs_type" != "$obfs_type" ] || [ "$current_port" != "$port" ] || [ "$current_method" != "$method" ] || [ "$current_key" != "$key" ] || [ "$current_ebpf" != "$ebpf" ] || [ "$current_obfs" != "$obfs" ] || [ "$current_fast_open" != "$fast_open" ] || [ "$current_no_delay" != "$no_delay" ]; then
|
||||
local settings
|
||||
|
@ -381,22 +385,18 @@ _set_config_from_vps() {
|
|||
config_foreach _set_ss_redir ss_redir "no_delay" $ss_no_delay
|
||||
config_foreach _set_ss_redir ss_redir "fast_open" $ss_fast_open
|
||||
config_foreach _set_ss_redir ss_redir "ebpf" $ss_ebpf
|
||||
config_foreach _set_ss_redir ss_redir "obfs" $ss_obfs
|
||||
config_foreach _set_ss_redir ss_redir "obfs_plugin" $ss_obfs_plugin
|
||||
config_foreach _set_ss_redir ss_redir "obfs_type" $ss_obfs_type
|
||||
config_foreach _set_ss_redir ss_redir "obfs_host" $ss_obfs_host
|
||||
config_foreach _set_ss_redir ss_local "no_delay" $ss_no_delay
|
||||
config_foreach _set_ss_redir ss_local "fast_open" $ss_fast_open
|
||||
config_foreach _set_ss_redir ss_local "ebpf" $ss_ebpf
|
||||
config_foreach _set_ss_redir ss_local "obfs" $ss_obfs
|
||||
config_foreach _set_ss_redir ss_local "obfs_plugin" $ss_obfs_plugin
|
||||
config_foreach _set_ss_redir ss_local "obfs_type" $ss_obfs_type
|
||||
config_foreach _set_ss_redir ss_local "obfs_host" $ss_obfs_host
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
set shadowsocks-libev.sss0.key=$ss_key
|
||||
set shadowsocks-libev.sss0.server_port=$ss_port
|
||||
set shadowsocks-libev.sss0.method=$ss_method
|
||||
set shadowsocks-libev.sss0.disabled=$shadowsocks_disabled
|
||||
set shadowsocks-libev.sss0.obfs=$ss_obfs
|
||||
set shadowsocks-libev.sss0.obfs_plugin=$ss_obfs_plugin
|
||||
set shadowsocks-libev.sss0.obfs_type=$ss_obfs_type
|
||||
set shadowsocks-libev.sss0.obfs_host=$ss_obfs_host
|
||||
commit shadowsocks-libev
|
||||
EOF
|
||||
logger -t "OMR-VPS" "Shadowsocks restart..."
|
||||
|
|
|
@ -36,12 +36,6 @@ if [ "$(uci -q get openmptcprouter.latest_versions)" = "" ]; then
|
|||
EOF
|
||||
done
|
||||
fi
|
||||
if [ "$(uci -q get shadowsocks-libev.sss0.method)" != "chacha20" ]; then
|
||||
uci -q batch <<-EOF > /dev/null
|
||||
set shadowsocks-libev.sss0.method=chacha20
|
||||
commit shadowsocks-libev
|
||||
EOF
|
||||
fi
|
||||
if [ "$(uci -q get shadowsocks-libev.hi.mode)" != "tcp" ]; then
|
||||
uci -q batch <<-EOF > /dev/null
|
||||
set shadowsocks-libev.hi.mode=tcp_and_udp
|
||||
|
@ -55,5 +49,14 @@ if [ "$(uci -q get openmptcprouter.latest_versions)" = "" ]; then
|
|||
done
|
||||
fi
|
||||
fi
|
||||
if [ "$(uci -q get shadowsocks-libev.hi.obfs)" != "0" ]; then
|
||||
uci -q batch <<-EOF > /dev/null
|
||||
set shadowsocks-libev.sss0.obfs=1
|
||||
set shadowsocks-libev.sss0.obfs_plugin="$(uci -q get shadowsocks-libev.hi.obfs_plugin)"
|
||||
set shadowsocks-libev.sss0.obfs_host="$(uci -q get shadowsocks-libev.hi.obfs_host)"
|
||||
set shadowsocks-libev.sss0.obfs_type="$(uci -q get shadowsocks-libev.hi.obfs_type)"
|
||||
EOF
|
||||
fi
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
#
|
||||
# Copyright (C) 2017 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
# Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
|
||||
# Copyright (C) 2017-2019 Yousong Zhou <yszhou4tech@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v3.
|
||||
# See /LICENSE for more information.
|
||||
|
@ -9,30 +8,10 @@
|
|||
|
||||
USE_PROCD=1
|
||||
EXTRA_COMMANDS="rules_up rules_down rules_exist"
|
||||
START=98
|
||||
START=99
|
||||
|
||||
ss_confdir=/var/etc/shadowsocks-libev
|
||||
ss_bindir=/usr/bin
|
||||
q='"'
|
||||
|
||||
ss_mkjson() {
|
||||
echo "{" >"$confjson"
|
||||
if ss_mkjson_ "$@" >>$confjson; then
|
||||
sed -i -e '/^\s*$/d' -e '2,$s/^/\t/' -e '$s/,$//' "$confjson"
|
||||
echo "}" >>"$confjson"
|
||||
else
|
||||
rm -f "$confjson"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
ss_mkjson_() {
|
||||
local func
|
||||
|
||||
for func in "$@"; do
|
||||
"$func" || return 1
|
||||
done
|
||||
}
|
||||
|
||||
ss_mkjson_server_conf() {
|
||||
local cfgserver
|
||||
|
@ -47,159 +26,52 @@ ss_mkjson_server_conf() {
|
|||
|
||||
ss_mkjson_server_conf_() {
|
||||
[ -n "$server_port" ] || return 1
|
||||
password="${password//\"/\\\"}"
|
||||
key="$(echo $key | sed 's/+/-/g; s/\//_/g;')"
|
||||
[ "$method" = "none" -a -z "$key" ] && key=""
|
||||
[ "$ebpf" = 1 ] && {
|
||||
key=""
|
||||
method="none"
|
||||
}
|
||||
cat <<-EOF
|
||||
${server:+${q}server${q}: ${q}$server${q},}
|
||||
"server_port": $server_port,
|
||||
${method:+${q}method${q}: ${q}$method${q},}
|
||||
${key:+${q}key${q}: ${q}$key${q},}
|
||||
${password:+${q}password${q}: ${q}$password${q},}
|
||||
EOF
|
||||
}
|
||||
|
||||
ss_mkjson_common_conf() {
|
||||
[ "$ipv6_first" = 0 ] && ipv6_first=false || ipv6_first=true
|
||||
[ "$fast_open" = 0 ] && fast_open=false || fast_open=true
|
||||
[ "$no_delay" = 0 ] && no_delay=false || no_delay=true
|
||||
[ "$reuse_port" = 0 ] && reuse_port=false || reuse_port=true
|
||||
[ "$mptcp" = 0 ] && mptcp=false || mptcp=true
|
||||
[ "$syslog" = 0 ] && syslog=false || syslog=true
|
||||
[ "$ebpf" = 0 ] && ebpf=false || ebpf=true
|
||||
cat <<-EOF
|
||||
"use_syslog": $syslog,
|
||||
"ipv6_first": $ipv6_first,
|
||||
"fast_open": $fast_open,
|
||||
"no_delay": $no_delay,
|
||||
"mptcp": $mptcp,
|
||||
"ebpf": $ebpf,
|
||||
"reuse_port": $reuse_port,
|
||||
${local_address:+${q}local_address${q}: ${q}$local_address${q},}
|
||||
${local_port:+${q}local_port${q}: $local_port,}
|
||||
${mode:+${q}mode${q}: ${q}$mode${q},}
|
||||
${mtu:+${q}mtu${q}: $mtu,}
|
||||
${timeout:+${q}timeout${q}: $timeout,}
|
||||
${user:+${q}user${q}: ${q}$user${q},}
|
||||
EOF
|
||||
[ -z "$server" ] || json_add_string server "$server"
|
||||
json_add_int server_port "$server_port"
|
||||
[ -z "$method" ] || json_add_string method "$method"
|
||||
[ -z "$key" ] || json_add_string key "$key"
|
||||
[ -z "$password" ] || json_add_string password "$password"
|
||||
[ -z "$plugin" ] || json_add_string plugin "$plugin"
|
||||
[ -z "$plugin_opts" ] || json_add_string plugin_opts "$plugin_opts"
|
||||
if [ "$obfs" = 1; then
|
||||
if [ "$obfs_plugin" = "obfs" ]; then
|
||||
obfs_options="obfs=$obfs_type"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri"
|
||||
[ "$fast_open" = 1 ] && obfs_options="$obfs_options;fast-open"
|
||||
[ "$mptcp" = 1 ] && obfs_options="$obfs_options;mptcp"
|
||||
[ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout"
|
||||
json_add_string plugin "/usr/bin/obfs-local"
|
||||
json_add_string plugin_opts "$obfs_options"
|
||||
fi
|
||||
if [ "$obfs_plugin" = "v2ray" ]; then
|
||||
obfs_options="loglevel=default"
|
||||
[ "$obfs_type" = "tls" ] && obfs_options="tls"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;path=$obfs_uri"
|
||||
[ "$fast_open" = 1 ] && obfs_options="$obfs_options;fast-open"
|
||||
json_add_string plugin "/usr/bin/v2ray-plugin"
|
||||
json_add_string plugin_opts "$obfs_options"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ss_mkjson_ss_local_conf() {
|
||||
ss_mkjson_server_conf
|
||||
[ "$obfs" = 0 ] && obfs=false || obfs=true
|
||||
if $obfs; then
|
||||
if [ "$obfs_plugin" = "obfs" ]; then
|
||||
obfs_options="obfs=$obfs_type"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
[ "$mptcp" = true ] && obfs_options="$obfs_options;mptcp"
|
||||
[ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/obfs-local${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
if [ "$obfs_plugin" = "v2ray" ]; then
|
||||
obfs_options="loglevel=default"
|
||||
[ "$obfs_type" = "tls" ] && obfs_options="tls"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;path=$obfs_uri"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/v2ray-plugin${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ss_mkjson_ss_redir_conf() {
|
||||
ss_mkjson_server_conf || return 1
|
||||
[ "$disable_sni" = 0 ] && disable_sni=false || disable_sni=true
|
||||
cat <<-EOF
|
||||
"disable_sni": $disable_sni,
|
||||
EOF
|
||||
[ "$obfs" = 0 ] && obfs=false || obfs=true
|
||||
if $obfs; then
|
||||
if [ "$obfs_plugin" = "obfs" ]; then
|
||||
obfs_options="obfs=$obfs_type"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
[ "$mptcp" = true ] && obfs_options="$obfs_options;mptcp"
|
||||
[ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/obfs-local${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
if [ "$obfs_plugin" = "v2ray" ]; then
|
||||
obfs_options="loglevel=default"
|
||||
[ "$obfs_type" = "tls" ] && obfs_options="tls"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;path=$obfs_uri"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/v2ray-plugin${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
ss_mkjson_server_conf
|
||||
}
|
||||
|
||||
ss_mkjson_ss_server_conf() {
|
||||
ss_mkjson_server_conf_
|
||||
[ "$obfs" = 0 ] && obfs=false || obfs=true
|
||||
if $obfs; then
|
||||
if [ "$obfs_plugin" = "obfs" ]; then
|
||||
obfs_options="obfs=$obfs_type"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
[ "$mptcp" = true ] && obfs_options="$obfs_options;mptcp"
|
||||
[ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/obfs-server${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
if [ "$obfs_plugin" = "v2ray" ]; then
|
||||
obfs_options="server"
|
||||
[ "$obfs_type" = "tls" ] && obfs_options="tls"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/v2ray-plugin${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
ss_mkjson_ss_tunnel_conf() {
|
||||
ss_mkjson_server_conf || return 1
|
||||
[ -n "$tunnel_address" ] || return 1
|
||||
cat <<-EOF
|
||||
${tunnel_address:+${q}tunnel_address${q}: ${q}$tunnel_address${q},}
|
||||
EOF
|
||||
[ "$obfs" = 0 ] && obfs=false || obfs=true
|
||||
if $obfs; then
|
||||
if [ "$obfs_plugin" = "obfs" ]; then
|
||||
obfs_options="obfs=$obfs_type"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;obfs-host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;obfs-uri=$obfs_uri"
|
||||
[ -z "$timeout" ] || obfs_options="$obfs_options;t=$timeout"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/obfs-local${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
if [ "$obfs_plugin" = "v2ray" ]; then
|
||||
obfs_options="loglevel=default"
|
||||
[ "$obfs_type" = "tls" ] && obfs_options="tls"
|
||||
[ -z "$obfs_host" ] || obfs_options="$obfs_options;host=$obfs_host"
|
||||
[ -z "$obfs_uri" ] || obfs_options="$obfs_options;path=$obfs_uri"
|
||||
[ "$fast_open" = true ] && obfs_options="$obfs_options;fast-open"
|
||||
cat <<-EOF
|
||||
${obfs:+${q}plugin${q}: ${q}/usr/bin/v2ray-plugin${q},${q}plugin_opts${q}: ${q}$obfs_options${q},}
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
json_add_string tunnel_address "$tunnel_address"
|
||||
}
|
||||
|
||||
ss_xxx() {
|
||||
|
@ -210,25 +82,33 @@ ss_xxx() {
|
|||
|
||||
[ -x "$bin" ] || return
|
||||
eval "$("validate_${cfgtype}_section" "$cfg" ss_validate_mklocal)"
|
||||
"validate_${cfgtype}_section" "$cfg" || return 1
|
||||
"validate_${cfgtype}_section" "$cfg" || return
|
||||
[ "$disabled" = 0 ] || return
|
||||
|
||||
if ss_mkjson \
|
||||
ss_mkjson_common_conf \
|
||||
ss_mkjson_${cfgtype}_conf \
|
||||
; then
|
||||
json_init
|
||||
ss_mkjson_${cfgtype}_conf || return
|
||||
json_add_boolean use_syslog 1
|
||||
json_add_boolean ipv6_first "$ipv6_first"
|
||||
json_add_boolean fast_open "$fast_open"
|
||||
json_add_boolean reuse_port "$reuse_port"
|
||||
json_add_boolean no_delay "$no_delay"
|
||||
json_add_boolean mptcp "$mptcp"
|
||||
[ -z "$local_address" ] || json_add_string local_address "$local_address"
|
||||
[ -z "$local_port" ] || json_add_int local_port "$local_port"
|
||||
[ -z "$mode" ] || json_add_string mode "$mode"
|
||||
[ -z "$mtu" ] || json_add_int mtu "$mtu"
|
||||
[ -z "$timeout" ] || json_add_int timeout "$timeout"
|
||||
[ -z "$user" ] || json_add_string user "$user"
|
||||
json_dump -i >"$confjson"
|
||||
|
||||
procd_open_instance "$cfgtype.$cfg"
|
||||
procd_set_param command "$bin" -c "$confjson"
|
||||
[ "$verbose" = 0 ] || procd_append_param command -v
|
||||
[ "$no_delay" = 0 ] || procd_append_param command --no-delay
|
||||
[ -z "$bind_address" ] || procd_append_param command -b "$bind_address"
|
||||
[ -z "$manager_address" ] || procd_append_param command --manager-address "$manager_address"
|
||||
procd_set_param file "$confjson"
|
||||
procd_set_param limits nofile="512000 512000"
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
||||
ss_rules_cb
|
||||
fi
|
||||
}
|
||||
|
||||
ss_rules_restart() {
|
||||
|
@ -242,17 +122,16 @@ ss_rules_restart() {
|
|||
|
||||
ss_rules_cb() {
|
||||
local cfgserver server
|
||||
|
||||
if [ "$cfgtype" = ss_redir ]; then
|
||||
config_get cfgserver "$cfg" server
|
||||
config_get server "$cfgserver" server
|
||||
ss_redir_servers="$ss_redir_servers $server"
|
||||
if [ "$mode" = "tcp_only" -o "$mode" = "tcp_and_udp" ]; then
|
||||
if [ "$mode" = tcp_only -o "$mode" = "tcp_and_udp" ]; then
|
||||
eval "ss_rules_redir_tcp_$cfg=$local_port"
|
||||
eval "ss_rules6_redir_tcp_$cfg=$local_port"
|
||||
fi
|
||||
if [ "$mode" = "udp_only" -o "$mode" = "tcp_and_udp" ]; then
|
||||
if [ "$mode" = udp_only -o "$mode" = "tcp_and_udp" ]; then
|
||||
eval "ss_rules_redir_udp_$cfg=$local_port"
|
||||
eval "ss_rules6_redir_udp_$cfg=$local_port"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
@ -263,79 +142,31 @@ ss_rules() {
|
|||
local cfgtype
|
||||
local local_port_tcp local_port_udp
|
||||
local args
|
||||
local ss_redir_servers4 dst_ips_bypass4 dst_ips_forward4 src_ips_bypass4 src_ips_forward4 src_ips_checkdst4
|
||||
|
||||
[ -x "$bin" ] || return 1
|
||||
"$bin" -f
|
||||
"$bin" -6 -f
|
||||
|
||||
config_get cfgtype "$cfg" TYPE
|
||||
[ "$cfgtype" = ss_rules ] || return 1
|
||||
|
||||
eval "$(validate_ss_rules_section "$cfg" ss_validate_mklocal)"
|
||||
validate_ss_rules_section "$cfg" || return 1
|
||||
[ "$disabled" = 0 ] || return 1
|
||||
[ "$disabled" = 0 ] || return 0
|
||||
|
||||
eval local_port_tcp="\$ss_rules_redir_tcp_$redir_tcp"
|
||||
eval local_port_udp="\$ss_rules_redir_udp_$redir_udp"
|
||||
[ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1
|
||||
ss_redir_servers4="$(echo "$ss_redir_servers" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
|
||||
ss_redir_servers="$(echo "$ss_redir_servers" | tr ' ' '\n' | sort -u)"
|
||||
[ "$dst_forward_recentrst" = 0 ] || args="$args --dst-forward-recentrst"
|
||||
|
||||
dst_ips_bypass4="$(echo "$dst_ips_bypass" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
dst_ips_forward4="$(echo "$dst_ips_forward" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
src_ips_bypass4="$(echo "$src_ips_bypass" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
src_ips_forward4="$(echo "$src_ips_forward" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
src_ips_checkdst4="$(echo "$src_ips_checkdst" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort -u)"
|
||||
|
||||
"$bin" \
|
||||
-s "$ss_redir_servers4" \
|
||||
-l "$local_port_tcp" \
|
||||
-L "$local_port_udp" \
|
||||
--src-default "$src_default" \
|
||||
--dst-default "$dst_default" \
|
||||
--local-default "$local_default" \
|
||||
--dst-bypass-file "$dst_ips_bypass_file" \
|
||||
--dst-forward-file "$dst_ips_forward_file" \
|
||||
--dst-bypass "$dst_ips_bypass4" \
|
||||
--dst-forward "$dst_ips_forward4" \
|
||||
--src-bypass "$src_ips_bypass4" \
|
||||
--src-forward "$src_ips_forward4" \
|
||||
--src-checkdst "$src_ips_checkdst4" \
|
||||
--ifnames "$ifnames" \
|
||||
--ipt-extra "$ipt_args" \
|
||||
$args \
|
||||
|| "$bin" -f
|
||||
ss_rules_call
|
||||
ss_rules_call -6
|
||||
}
|
||||
|
||||
ss_rules6() {
|
||||
local cfg="ss_rules"
|
||||
local bin="$ss_bindir/ss-rules6"
|
||||
local cfgtype
|
||||
local local_port_tcp local_port_udp
|
||||
local args
|
||||
local ss_redir_servers6 dst_ips_bypass6 dst_ips_forward6 src_ips_bypass6 src_ips_forward6 src_ips_checkdst6
|
||||
|
||||
[ -x "$bin" ] || return 1
|
||||
config_get cfgtype "$cfg" TYPE
|
||||
[ "$cfgtype" = ss_rules ] || return 1
|
||||
|
||||
eval "$(validate_ss_rules_section "$cfg" ss_validate_mklocal)"
|
||||
validate_ss_rules_section "$cfg" || return 1
|
||||
[ "$disabled" = 0 ] || return 1
|
||||
|
||||
eval local_port_tcp="\$ss_rules6_redir_tcp_$redir_tcp"
|
||||
eval local_port_udp="\$ss_rules6_redir_udp_$redir_udp"
|
||||
[ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1
|
||||
ss_redir_servers6="$(echo "$ss_redir_servers" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
|
||||
[ "$dst_forward_recentrst" = 0 ] || args="$args --dst-forward-recentrst"
|
||||
|
||||
dst_ips_bypass6="$(echo "$dst_ips_bypass" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
dst_ips_forward6="$(echo "$dst_ips_forward" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
src_ips_bypass6="$(echo "$src_ips_bypass" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
src_ips_forward6="$(echo "$src_ips_forward" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
src_ips_checkdst6="$(echo "$src_ips_checkdst" | grep -o '\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}' | sort -u)"
|
||||
|
||||
"$bin" \
|
||||
-s "$ss_redir_servers6" \
|
||||
ss_rules_call() {
|
||||
"$bin" "$@" \
|
||||
-s "$ss_redir_servers" \
|
||||
-l "$local_port_tcp" \
|
||||
-L "$local_port_udp" \
|
||||
--src-default "$src_default" \
|
||||
|
@ -343,15 +174,15 @@ ss_rules6() {
|
|||
--local-default "$local_default" \
|
||||
--dst-bypass-file "$dst_ips_bypass_file" \
|
||||
--dst-forward-file "$dst_ips_forward_file" \
|
||||
--dst-bypass "$dst_ips_bypass6" \
|
||||
--dst-forward "$dst_ips_forward6" \
|
||||
--src-bypass "$src_ips_bypass6" \
|
||||
--src-forward "$src_ips_forward6" \
|
||||
--src-checkdst "$src_ips_checkdst6" \
|
||||
--dst-bypass "$dst_ips_bypass" \
|
||||
--dst-forward "$dst_ips_forward" \
|
||||
--src-bypass "$src_ips_bypass" \
|
||||
--src-forward "$src_ips_forward" \
|
||||
--src-checkdst "$src_ips_checkdst" \
|
||||
--ifnames "$ifnames" \
|
||||
--ipt-extra "$ipt_args" \
|
||||
$args \
|
||||
|| "$bin" -f
|
||||
|| "$bin" "$@" -f
|
||||
}
|
||||
|
||||
start_service() {
|
||||
|
@ -362,19 +193,17 @@ start_service() {
|
|||
for cfgtype in ss_local ss_redir ss_server ss_tunnel; do
|
||||
config_foreach ss_xxx "$cfgtype" "$cfgtype"
|
||||
done
|
||||
rules_up
|
||||
# Add rule to match traffic marked by firewall for bypass
|
||||
ip rule add prio 1 fwmark 0x539 lookup 991337 > /dev/null 2>&1
|
||||
ss_rules
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
rules_down
|
||||
rm -rf "$ss_confdir"
|
||||
}
|
||||
local bin="$ss_bindir/ss-rules"
|
||||
|
||||
reload_service() {
|
||||
stop
|
||||
start
|
||||
[ -x "$bin" ] && {
|
||||
"$bin" -f
|
||||
"$bin" -6 -f
|
||||
}
|
||||
rm -rf "$ss_confdir"
|
||||
}
|
||||
|
||||
rules_exist() {
|
||||
|
@ -407,9 +236,8 @@ rules_down() {
|
|||
[ -x "$bin6" ] && "$bin6" -f >/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_interface_trigger wan*
|
||||
procd_add_reload_interface_trigger wan
|
||||
procd_add_reload_trigger shadowsocks-libev
|
||||
procd_open_validate
|
||||
validate_server_section
|
||||
|
@ -439,7 +267,7 @@ validate_common_server_options_() {
|
|||
local cfgtype="$1"; shift
|
||||
local cfg="$1"; shift
|
||||
local func="$1"; shift
|
||||
local stream_methods='"none", "table", "rc4", "rc4-md5", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", "aes-128-ctr", "aes-192-ctr", "aes-256-ctr", "bf-cfb", "camellia-128-cfb", "camellia-192-cfb", "camellia-256-cfb", "salsa20", "chacha20", "chacha20-ietf"'
|
||||
local stream_methods='"table", "rc4", "rc4-md5", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", "aes-128-ctr", "aes-192-ctr", "aes-256-ctr", "bf-cfb", "camellia-128-cfb", "camellia-192-cfb", "camellia-256-cfb", "salsa20", "chacha20", "chacha20-ietf"'
|
||||
local aead_methods='"aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", "xchacha20-ietf-poly1305"'
|
||||
|
||||
"${func:-ss_validate}" "$cfgtype" "$cfg" "$@" \
|
||||
|
@ -448,7 +276,12 @@ validate_common_server_options_() {
|
|||
'server_port:port' \
|
||||
'password:string' \
|
||||
'key:string' \
|
||||
"method:or($stream_methods, $aead_methods)"
|
||||
"method:or($stream_methods, $aead_methods)" \
|
||||
'plugin:string' \
|
||||
'plugin_opts:string' \
|
||||
'obfs:bool:0' \
|
||||
'obfs_plugin:or("v2ray","obfs-simple"):v2ray' \
|
||||
'obfs_type:or("http","tls"):http'
|
||||
}
|
||||
|
||||
validate_common_client_options_() {
|
||||
|
@ -468,36 +301,25 @@ validate_common_options_() {
|
|||
'fast_open:bool:0' \
|
||||
'ipv6_first:bool:0' \
|
||||
'no_delay:bool:0' \
|
||||
'reuse_port:bool:0' \
|
||||
'mptcp:bool:0' \
|
||||
'ebpf:bool:0' \
|
||||
'reuse_port:bool:0' \
|
||||
'verbose:bool:0' \
|
||||
'mode:or("tcp_only", "udp_only", "tcp_and_udp"):tcp_only' \
|
||||
'mtu:uinteger' \
|
||||
'timeout:uinteger' \
|
||||
'user:string' \
|
||||
'obfs:bool:0' \
|
||||
'obfs_plugin:or("v2ray","obfs-simple"):v2ray' \
|
||||
'obfs_type:or("http","tls"):http'
|
||||
'user:string'
|
||||
}
|
||||
|
||||
validate_server_section() {
|
||||
validate_common_server_options_ server "$1" "${2}"
|
||||
validate_common_server_options_ server "$1" "$2"
|
||||
}
|
||||
|
||||
validate_ss_local_section() {
|
||||
validate_common_client_options_ ss_local "$1" \
|
||||
"${2}" \
|
||||
'obfs_host:string' \
|
||||
'obfs_uri:string'
|
||||
validate_common_client_options_ ss_local "$1" "$2"
|
||||
}
|
||||
|
||||
validate_ss_redir_section() {
|
||||
validate_common_client_options_ ss_redir "$1" \
|
||||
"${2}" \
|
||||
'disable_sni:bool:0' \
|
||||
'obfs_host:string' \
|
||||
'obfs_uri:string'
|
||||
validate_common_client_options_ ss_redir "$1" "$2"
|
||||
}
|
||||
|
||||
validate_ss_rules_section() {
|
||||
|
@ -505,13 +327,13 @@ validate_ss_rules_section() {
|
|||
'disabled:bool:0' \
|
||||
'redir_tcp:uci("shadowsocks-libev", "@ss_redir")' \
|
||||
'redir_udp:uci("shadowsocks-libev", "@ss_redir")' \
|
||||
'src_ips_bypass:or(ip4addr,cidr4,ip6addr,cidr6)' \
|
||||
'src_ips_forward:or(ip4addr,cidr4,ip6addr,cidr6)' \
|
||||
'src_ips_checkdst:or(ip4addr,cidr4,ip6addr,cidr6)' \
|
||||
'src_ips_bypass:or(ipaddr,cidr)' \
|
||||
'src_ips_forward:or(ipaddr,cidr)' \
|
||||
'src_ips_checkdst:or(ipaddr,cidr)' \
|
||||
'dst_ips_bypass_file:file' \
|
||||
'dst_ips_bypass:or(ip4addr,cidr4,ip6addr,cidr6)' \
|
||||
'dst_ips_bypass:or(ipaddr,cidr)' \
|
||||
'dst_ips_forward_file:file' \
|
||||
'dst_ips_forward:or(ip4addr,cidr4,ip6addr,cidr6)' \
|
||||
'dst_ips_forward:or(ipaddr,cidr)' \
|
||||
'src_default:or("bypass", "forward", "checkdst"):checkdst' \
|
||||
'dst_default:or("bypass", "forward"):bypass' \
|
||||
'local_default:or("bypass", "forward", "checkdst"):bypass' \
|
||||
|
@ -523,13 +345,12 @@ validate_ss_rules_section() {
|
|||
validate_ss_server_section() {
|
||||
validate_common_server_options_ ss_server "$1" \
|
||||
validate_common_options_ \
|
||||
"${2}" \
|
||||
'bind_address:ipaddr' \
|
||||
'manager_address:host'
|
||||
"$2" \
|
||||
'bind_address:ipaddr'
|
||||
}
|
||||
|
||||
validate_ss_tunnel_section() {
|
||||
validate_common_client_options_ ss_tunnel "$1" \
|
||||
"${2}" \
|
||||
"$2" \
|
||||
'tunnel_address:regex(".+\:[0-9]+")'
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue