Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
tbblgm119
lede
提交
cec0ab41
L
lede
项目概览
tbblgm119
/
lede
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
lede
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cec0ab41
编写于
1月 06, 2020
作者:
W
William Chan
提交者:
coolsnowwolf
1月 06, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
luci-app-ssr-plus: added try count (#2706)
有时候只不过是短暂性的无法访问, 多尝试一次就可以. 所以增加尝试次数, 默认每秒钟检查一次.
上级
aeceaafa
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
47 addition
and
30 deletion
+47
-30
package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
...i-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
+9
-4
package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po
package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po
+3
-0
package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr
package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr
+1
-0
package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch
package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch
+34
-26
未找到文件。
package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
浏览文件 @
cec0ab41
...
...
@@ -10,10 +10,10 @@ uci:foreach(shadowsocksr, "servers", function(s)
end
end
)
local
key_table
=
{}
for
key
,
_
in
pairs
(
server_table
)
do
table.insert
(
key_table
,
key
)
end
local
key_table
=
{}
for
key
,
_
in
pairs
(
server_table
)
do
table.insert
(
key_table
,
key
)
end
table.sort
(
key_table
)
...
...
@@ -38,6 +38,11 @@ o.datatype = "uinteger"
o
:
depends
(
"enable_switch"
,
"1"
)
o
.
default
=
5
o
=
s
:
option
(
Value
,
"switch_try_count"
,
translate
(
"Check Try Count"
))
o
.
datatype
=
"uinteger"
o
:
depends
(
"enable_switch"
,
"1"
)
o
.
default
=
3
-- [[ SOCKS5 Proxy ]]--
if
nixio
.
fs
.
access
(
"/usr/bin/ssr-local"
)
then
s
=
m
:
section
(
TypedSection
,
"socks5_proxy"
,
translate
(
"SOCKS5 Proxy"
))
...
...
package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po
浏览文件 @
cec0ab41
...
...
@@ -320,6 +320,9 @@ msgstr "自动切换检查周期(秒)"
msgid "Check timout(second)"
msgstr "切换检查超时时间(秒)"
msgid "Check Try Count"
msgstr "切换检查重试次数"
msgid "Enable Process Deamon"
msgstr "启用进程自动守护"
...
...
package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr
浏览文件 @
cec0ab41
...
...
@@ -9,6 +9,7 @@ config global
option enable_switch '1'
option switch_timeout '5'
option switch_time '667'
option switch_try_count '3'
config socks5_proxy
option server 'nil'
...
...
package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch
浏览文件 @
cec0ab41
...
...
@@ -35,31 +35,39 @@ CURRENT_SERVER=$DEFAULT_SERVER
#判断代理是否正常
check_proxy
()
{
/usr/bin/ssr-check www.google.com 80
$switch_time
1
if
[
"
$?
"
==
"0"
]
;
then
return
0
else
/usr/bin/ssr-check www.baidu.com 80
$switch_time
1
if
[
"
$?
"
==
"0"
]
;
then
#goole不通baidu通则不正常
return
1
else
return
2
fi
fi
return
0
local
result
=
0
local
try_count
=
$(
uci_get_by_type global switch_try_count 3
)
for
i
in
$(
seq
1
$try_count
)
do
/usr/bin/ssr-check www.google.com 80
$switch_time
1
if
[
"
$?
"
==
"0"
]
;
then
# echo "$(date "+%Y-%m-%d %H:%M:%S") Check Google Proxy Success, count=$i" >> /tmp/ssrplus.log
result
=
0
break
else
# echo "$(date "+%Y-%m-%d %H:%M:%S") Check Google Proxy Fail, count=$i" >> /tmp/ssrplus.log
/usr/bin/ssr-check www.baidu.com 80
$switch_time
1
if
[
"
$?
"
==
"0"
]
;
then
result
=
1
else
result
=
2
fi
fi
sleep
1
;
done
return
$result
;
}
test_proxy
()
{
local
servername
=
$(
uci_get_by_name
$1
server
)
local
serverport
=
$(
uci_get_by_name
$1
server_port
)
ret
=
$(
ping
-c
3
$servername
|
grep
'loss'
|
awk
-F
','
'{ print $3 }'
|
awk
-F
"%"
'{ print $1 }'
)
ret
=
$(
ping
-c
3
$servername
|
grep
'loss'
|
awk
-F
','
'{ print $3 }'
|
awk
-F
"%"
'{ print $1 }'
)
[
-z
"
$ret
"
]
&&
return
1
[
"
$ret
"
-gt
"50"
]
&&
return
1
ipset add ss_spec_wan_ac
$servername
2>/dev/null
ret
=
$?
/usr/bin/ssr-check
$servername
$serverport
$switch_time
/usr/bin/ssr-check
$servername
$serverport
$switch_time
local
ret2
=
$?
if
[
"
$ret
"
=
"0"
]
;
then
ipset del ss_spec_wan_ac
$servername
2>/dev/null
...
...
@@ -81,7 +89,7 @@ local servername=$(uci_get_by_name $1 server)
local
serverport
=
$(
uci_get_by_name
$1
server_port
)
ipset add ss_spec_wan_ac
$servername
2>/dev/null
ret
=
$?
/usr/bin/ssr-check
$servername
$serverport
$switch_time
/usr/bin/ssr-check
$servername
$serverport
$switch_time
local
ret2
=
$?
if
[
"
$ret
"
=
"0"
]
;
then
ipset del ss_spec_wan_ac
$servername
2>/dev/null
...
...
@@ -117,12 +125,12 @@ start() {
[
$(
uci_get_by_name
$DEFAULT_SERVER
kcp_enable
)
=
"1"
]
&&
return
1
while
[
"1"
=
"1"
]
#死循环
do
do
sleep
$cycle_time
LOGTIME
=
$(
date
"+%Y-%m-%d %H:%M:%S"
)
#判断当前代理是否为缺省服务器
if
[
"
$CURRENT_SERVER
"
!=
"
$DEFAULT_SERVER
"
]
;
then
#echo "not default proxy"
...
...
@@ -134,7 +142,7 @@ do
echo
"
$(
date
"+%Y-%m-%d %H:%M:%S"
)
Main server is avilable."
>>
/tmp/ssrplus.log
#缺省服务器正常,切换回来
CURRENT_SERVER
=
$DEFAULT_SERVER
switch_proxy
$CURRENT_SERVER
switch_proxy
$CURRENT_SERVER
echo
"
$(
date
"+%Y-%m-%d %H:%M:%S"
)
switch to default ["
$(
uci_get_by_name
$CURRENT_SERVER
server
)
"] proxy!"
>>
/tmp/ssrplus.log
continue
else
...
...
@@ -143,14 +151,14 @@ do
fi
#判断当前代理是否正常
check_proxy
check_proxy
current_ret
=
$?
if
[
"
$current_ret
"
=
"1"
]
;
then
#当前代理错误,判断有无可用的服务器
#echo "current error"
echo
"
$(
date
"+%Y-%m-%d %H:%M:%S"
)
Current server error, try to switch another server."
>>
/tmp/ssrplus.log
select_proxy
if
[
"
$ENABLE_SERVER
"
!=
nil
]
;
then
#有其他服务器可用,进行切换
...
...
@@ -162,11 +170,11 @@ do
echo
"
$(
date
"+%Y-%m-%d %H:%M:%S"
)
ShadowsocksR server switch OK"
>>
/tmp/ssrplus.log
else
switch_proxy
$CURRENT_SERVER
normal_flag
=
1
normal_flag
=
1
echo
"
$(
date
"+%Y-%m-%d %H:%M:%S"
)
Try restart current server."
>>
/tmp/ssrplus.log
fi
else
normal_flag
=
0
normal_flag
=
0
echo
"
$(
date
"+%Y-%m-%d %H:%M:%S"
)
ShadowsocksR No Problem."
>>
/tmp/ssrplus.log
fi
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录