OpenClash: sync with upstream source

This commit is contained in:
CN_SZTL 2020-07-24 19:49:05 +08:00
parent cef6808d80
commit 9e60b57dec
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
6 changed files with 145 additions and 10 deletions

View File

@ -21,7 +21,7 @@ config openclash 'config'
option disable_masq_cache '0'
option servers_update '0'
option log_level 'silent'
option proxy_mode 'Rule'
option proxy_mode 'rule'
option intranet_allowed '0'
option enable_udp_proxy '1'
option lan_ac_mode '0'

View File

@ -42,11 +42,42 @@ local encrypt_methods_ss = {
"xchacha20-ietf-poly1305",
}
local encrypt_methods_ssr = {
"rc4-md5",
"aes-128-cfb",
"aes-192-cfb",
"aes-256-cfb",
"aes-128-ctr",
"aes-192-ctr",
"aes-256-ctr",
"chacha20-ietf",
"xchacha20",
}
local securitys = {
"auto",
"none",
"aes-128-gcm",
"chacha20-poly1305"
"auto",
"none",
"aes-128-gcm",
"chacha20-poly1305"
}
local protocols = {
"origin",
"auth_sha1_v4",
"auth_aes128_md5",
"auth_aes128_sha1",
"auth_chain_a",
"auth_chain_b",
}
local obfs = {
"plain",
"http_simple",
"http_post",
"random_head",
"tls1.2_ticket_auth",
"tls1.2_ticket_fastauth",
}
m = Map(openclash, translate("Edit Server"))
@ -79,6 +110,7 @@ end
o = s:option(ListValue, "type", translate("Server Node Type"))
o:value("ss", translate("Shadowsocks"))
o:value("ssr", translate("ShadowsocksR"))
o:value("vmess", translate("Vmess"))
o:value("trojan", translate("trojan"))
o:value("snell", translate("Snell"))
@ -102,6 +134,7 @@ o = s:option(Value, "password", translate("Password"))
o.password = true
o.rmempty = false
o:depends("type", "ss")
o:depends("type", "ssr")
o:depends("type", "trojan")
o = s:option(Value, "psk", translate("Psk"))
@ -113,11 +146,32 @@ for _, v in ipairs(encrypt_methods_ss) do o:value(v) end
o.rmempty = true
o:depends("type", "ss")
o = s:option(ListValue, "cipher_ssr", translate("Encrypt Method"))
for _, v in ipairs(encrypt_methods_ssr) do o:value(v) end
o.rmempty = true
o:depends("type", "ssr")
o = s:option(ListValue, "protocol", translate("Protocol"))
for _, v in ipairs(protocols) do o:value(v) end
o.rmempty = true
o:depends("type", "ssr")
o = s:option(Value, "protocol_param", translate("Protocol param(optional)"))
o:depends("type", "ssr")
o = s:option(ListValue, "securitys", translate("Encrypt Method"))
for _, v in ipairs(securitys) do o:value(v) end
o.rmempty = true
o:depends("type", "vmess")
o = s:option(ListValue, "obfs_ssr", translate("Obfs"))
for _, v in ipairs(obfs) do o:value(v) end
o.rmempty = true
o:depends("type", "ssr")
o = s:option(Value, "obfs_param", translate("Obfs param(optional)"))
o:depends("type", "ssr")
-- AlterId
o = s:option(Value, "alterId", translate("AlterId"))
o.datatype = "port"
@ -137,6 +191,7 @@ o.default = "false"
o:value("true")
o:value("false")
o:depends("type", "ss")
o:depends("type", "ssr")
o:depends("type", "vmess")
o:depends("type", "socks5")
o:depends("type", "trojan")

View File

@ -539,6 +539,21 @@ do
obfs_host="$(cfg_get "obfs-host:" "$single_server")"
fi
if [ "$server_type" = "ssr" ]; then
#cipher
cipher="$(cfg_get "cipher:" "$single_server")"
#password
password="$(cfg_get "password:" "$single_server")"
#obfs:
obfs="$(cfg_get "obfs:" "$single_server")"
#protocol:
protocol="$(cfg_get "protocol:" "$single_server")"
#obfs-param:
obfs_param="$(cfg_get "obfs-param:" "$single_server")"
#protocol-param:
protocol_param="$(cfg_get "protocol-param:" "$single_server")"
fi
if [ "$server_type" = "vmess" ]; then
#uuid:
uuid="$(cfg_get "uuid:" "$single_server")"
@ -608,6 +623,7 @@ do
if [ "$server_type" = "ss" ]; then
${uci_set}cipher="$cipher"
${uci_set}password="$password"
${uci_set}obfs="$obfs"
${uci_set}host="$obfs_host"
${uci_set}path="$path"
@ -618,6 +634,16 @@ do
fi
[ -z "$obfs_host" ] && ${uci_set}host="$host"
if [ "$server_type" = "ssr" ]; then
${uci_set}cipher_ssr="$cipher"
${uci_set}password="$password"
${uci_set}obfs_ssr="$obfs"
${uci_set}obfs_param="$obfs_param"
${uci_set}protocol="$protocol"
${uci_set}protocol_param="$protocol_param"
fi
if [ "$server_type" = "snell" ]; then
${uci_set}obfs_snell="$mode"
[ -z "$mode" ] && ${uci_set}obfs_snell="none"
@ -692,6 +718,7 @@ do
if [ "$server_type" = "ss" ]; then
${uci_set}cipher="$cipher"
${uci_set}password="$password"
${uci_set}obfs="$obfs"
${uci_set}host="$obfs_host"
${uci_set}path="$path"
@ -702,6 +729,16 @@ do
fi
[ -z "$obfs_host" ] && ${uci_set}host="$host"
if [ "$server_type" = "ssr" ]; then
${uci_set}cipher_ssr="$cipher"
${uci_set}password="$password"
${uci_set}obfs_ssr="$obfs"
${uci_set}obfs_param="$obfs_param"
${uci_set}protocol="$protocol"
${uci_set}protocol_param="$protocol_param"
fi
if [ "$server_type" = "snell" ]; then
${uci_set}obfs_snell="$mode"
[ -z "$mode" ] && ${uci_set}obfs_snell="none"

View File

@ -133,11 +133,16 @@ yml_servers_set()
config_get "server" "$section" "server" ""
config_get "port" "$section" "port" ""
config_get "cipher" "$section" "cipher" ""
config_get "cipher_ssr" "$section" "cipher_ssr" ""
config_get "password" "$section" "password" ""
config_get "securitys" "$section" "securitys" ""
config_get "udp" "$section" "udp" ""
config_get "obfs" "$section" "obfs" ""
config_get "obfs_ssr" "$section" "obfs_ssr" ""
config_get "obfs_param" "$section" "obfs_param" ""
config_get "obfs_vmess" "$section" "obfs_vmess" ""
config_get "protocol" "$section" "protocol" ""
config_get "protocol_param" "$section" "protocol_param" ""
config_get "host" "$section" "host" ""
config_get "mux" "$section" "mux" ""
config_get "custom" "$section" "custom" ""
@ -185,7 +190,7 @@ yml_servers_set()
fi
if [ -z "$password" ]; then
if [ "$type" = "ss" ] || [ "$type" = "trojan" ]; then
if [ "$type" = "ss" ] || [ "$type" = "trojan" ] || [ "$type" = "ssr" ]; then
return
fi
fi
@ -278,6 +283,35 @@ EOF
fi
fi
fi
#ssr
if [ "$type" = "ssr" ]; then
cat >> "$SERVER_FILE" <<-EOF
- name: "$name"
type: $type
server: $server
port: $port
cipher: $cipher_ssr
password: "$password"
obfs: "$obfs_ssr"
protocol: "$protocol"
EOF
if [ ! -z "$obfs_param" ]; then
cat >> "$SERVER_FILE" <<-EOF
obfs-param: $obfs_param
EOF
fi
if [ ! -z "$protocol_param" ]; then
cat >> "$SERVER_FILE" <<-EOF
protocol-param: $protocol_param
EOF
fi
if [ ! -z "$udp" ]; then
cat >> "$SERVER_FILE" <<-EOF
udp: $udp
EOF
fi
fi
#vmess
if [ "$type" = "vmess" ]; then

View File

@ -24,9 +24,6 @@ yml_other_set()
if [ -z "$(grep '^- IP-CIDR,198.18.0.1/16,REJECT,no-resolve' "$4")" ]; then
sed -i '1,/^ \{0,\}- MATCH/{/^ \{0,\}- MATCH/s/^ \{0,\}- MATCH/- IP-CIDR,198.18.0.1\/16,REJECT,no-resolve\n&/}' "$4" 2>/dev/null
fi
if [ -z "$(grep '^- IP-CIDR,198.18.0.1/16,REJECT,no-resolve' "$4")" ]; then
sed -i '1,/^ \{0,\}- FINAL/{/^ \{0,\}- FINAL/s/^ \{0,\}- FINAL/- IP-CIDR,198.18.0.1\/16,REJECT,no-resolve\n&/}' "$4" 2>/dev/null
fi
fi
fi

View File

@ -6,7 +6,7 @@ msgid "OpenClash"
msgstr "OpenClash"
msgid "A Clash Client For OpenWrt"
msgstr "一个运行在OpenWrt上的Clash客户端兼容Shadowsocks、Vmess、Trojan、Snell等协议根据灵活的规则配置实现策略代理"
msgstr "一个运行在OpenWrt上的Clash客户端兼容Shadowsocks、ShadowsocksR、Vmess、Trojan、Snell等协议根据灵活的规则配置实现策略代理"
msgid "Global Settings(Will Modify The Config File Or Subscribe According To The Settings On This Page)"
msgstr "全局设置(将按照本页设置自动修改配置文件和获取订阅)"
@ -633,6 +633,18 @@ msgstr "密码"
msgid "Encrypt Method"
msgstr "加密方式"
msgid "Protocol"
msgstr "协议"
msgid "Protocol param(optional)"
msgstr "传输协议参数(可选)"
msgid "Obfs"
msgstr "混淆插件"
msgid "Obfs param(optional)"
msgstr "混淆参数(可选)"
msgid "UDP Enable"
msgstr "UDP支持"