Compare commits
11 Commits
3b6038b1ca
...
cdb69f7919
Author | SHA1 | Date |
---|---|---|
zhengyi | cdb69f7919 | |
zhengyi | 6f59534ffa | |
zhengyi | 4251559d0a | |
zhengyi | 2d254823cc | |
zhengyi | 124d8fe5d1 | |
zhengyi | e063bc9d5c | |
zhengyi | d833cc8c0e | |
zhengyi | a1728228a8 | |
zhengyi | 3a661a7a21 | |
zhengyi | 083d81c7e5 | |
zhengyi | fb528ff9c3 |
|
@ -1,14 +1,21 @@
|
|||
module("luci.controller.frp", package.seeall)
|
||||
local uci=require"luci.model.uci".cursor()
|
||||
local fs = require "nixio.fs"
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/frp") then
|
||||
return
|
||||
end
|
||||
|
||||
entry({"admin", "services", "frp"}, cbi("frp/basic"), _("Frp Setting"), 100).dependent = true
|
||||
entry({"admin", "services", "frp"}, alias("admin", "services", "frp", "base"), _("Multi Frpc"), 100).dependent = true
|
||||
entry({"admin", "services", "frp", "base"}, cbi("frp/basic"), _("Frp Setting"), 1).leaf = true
|
||||
entry({"admin", "services", "frp", "service_log"}, cbi("frp/log"), _("Plugin Log"), 2).leaf = true
|
||||
entry({"admin", "services", "frp", "client_log"}, cbi("frp/client_log"), _("Client Log"), 3).leaf = true
|
||||
entry({"admin", "services", "frp", "config"}, cbi("frp/config")).leaf = true
|
||||
entry({"admin", "services", "frp", "server"}, cbi("frp/server")).leaf = true
|
||||
entry({"admin", "services", "frp", "status"}, call("act_status")).leaf = true
|
||||
entry({"admin", "services", "frp", "server_list"}, call("get_server")).leaf = true
|
||||
entry({"admin", "services", "frp", "get_log"}, call("get_log")).leaf = true
|
||||
end
|
||||
|
||||
function act_status()
|
||||
|
@ -18,3 +25,18 @@ function act_status()
|
|||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(e)
|
||||
end
|
||||
|
||||
function get_server()
|
||||
local ret = {}
|
||||
uci.foreach("frp", "server", function (s)
|
||||
ret[#ret + 1] = s["name"]
|
||||
end)
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(ret)
|
||||
end
|
||||
|
||||
function get_log()
|
||||
local name = luci.http.formvalue("name")
|
||||
local log = fs.readfile(string.format("/var/etc/frp/frpc-%s.log", name))or"NOT FOUND"
|
||||
luci.http.write(log)
|
||||
end
|
|
@ -18,7 +18,6 @@ t.addremove = false
|
|||
|
||||
t:tab("base", translate("Basic Settings"))
|
||||
t:tab("other", translate("Other Settings"))
|
||||
t:tab("log", translate("Kernal Log"))
|
||||
|
||||
e = t:taboption("base", Flag, "enabled", translate("Enabled"))
|
||||
e.rmempty = false
|
||||
|
@ -141,17 +140,6 @@ e.default = "admin"
|
|||
e.password = true
|
||||
e:depends("admin_enable", 1)
|
||||
|
||||
-- LOG
|
||||
|
||||
e = t:taboption("log", TextValue, "log")
|
||||
e.rows = 26
|
||||
e.wrap = "off"
|
||||
e.readonly = true
|
||||
e.cfgvalue = function(t,t)
|
||||
return s.readfile("/var/etc/frp/frpc.log")or""
|
||||
end
|
||||
e.write = function(e,e,e)
|
||||
end
|
||||
|
||||
-- Server List
|
||||
|
||||
|
@ -173,16 +161,19 @@ function t.remove(e,t)
|
|||
end
|
||||
|
||||
e = t:option(DummyValue, "name", translate("Server Remark Name"))
|
||||
e.width = "10%"
|
||||
|
||||
e = t:option(DummyValue, "server_addr", translate("Server Address"))
|
||||
e.width = "10%"
|
||||
e.width = "30%"
|
||||
|
||||
e = t:option(DummyValue, "server_port", translate("Server Port"))
|
||||
e.width = "10%"
|
||||
e.width = "15%"
|
||||
|
||||
e = t:option(DummyValue, "user", translate("Server User"))
|
||||
e.width = "15%"
|
||||
|
||||
e = t:option(Flag, "enable", translate("Enable State"))
|
||||
e.width = "10%"
|
||||
e.rmempty = false
|
||||
|
||||
-- Service Lists
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
local fs=require"nixio.fs"
|
||||
local uci=require"luci.model.uci".cursor()
|
||||
local f,t
|
||||
f=SimpleForm("logview")
|
||||
f.reset = false
|
||||
f.submit = false
|
||||
t=f:field(TextValue,"conf")
|
||||
t.rmempty=true
|
||||
t.rows=20
|
||||
t.template="frp/client_log"
|
||||
t.readonly="readonly"
|
||||
return f
|
|
@ -0,0 +1,17 @@
|
|||
local fs = require "nixio.fs"
|
||||
local uci = luci.model.uci.cursor()
|
||||
|
||||
f = SimpleForm("log view")
|
||||
f.reset = false
|
||||
f.submit = false
|
||||
|
||||
t=f:field(TextValue,"conf")
|
||||
t.rows=26
|
||||
t.readonly="readonly"
|
||||
t.wrap = "off"
|
||||
t.cfgvalue = function(t,t)
|
||||
return fs.readfile("/var/etc/frp/frp.log")or""
|
||||
end
|
||||
t.write = function(e,e,e)
|
||||
end
|
||||
return f
|
|
@ -7,7 +7,7 @@ local a, t, e
|
|||
arg[1] = arg[1]or""
|
||||
|
||||
a = Map("frp")
|
||||
a.title = translate("Frp Domain Config")
|
||||
a.title = translate("Frp Server Config")
|
||||
a.redirect = i.build_url("admin", "services", "frp")
|
||||
|
||||
t = a:section(NamedSection, arg[1], "frp")
|
||||
|
@ -23,6 +23,11 @@ e.rmempty = false
|
|||
e:value("1", translate("Enable"))
|
||||
e:value("0", translate("Disable"))
|
||||
|
||||
|
||||
e = t:taboption("base", Value, "name", translate("Server Name"))
|
||||
e.optional = false
|
||||
e.rmempty = false
|
||||
|
||||
e = t:taboption("base", Value, "server_addr", translate("Server"))
|
||||
e.optional = false
|
||||
e.rmempty = false
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
<form>
|
||||
<div style="padding: 20px 20px 5px;">
|
||||
<label for="server-list"><%:Choose a server%>:
|
||||
<select name="server" id="server-list"></select>
|
||||
</label>
|
||||
<input class="cbi-button cbi-button-apply" type="button" id="reload" value="<%:Reload%>" />
|
||||
</div>
|
||||
<div style="padding: 5px 20px 20px;">
|
||||
<textarea readonly id="content" style="width: 100%; min-height: 800px!important;"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
var tb = document.getElementById('server-list');
|
||||
let current = ""
|
||||
tb.addEventListener("change", e => {
|
||||
const vl = e.currentTarget.value
|
||||
current = vl
|
||||
startRecieveLog(vl)
|
||||
})
|
||||
document.getElementById("reload").addEventListener("click", () => {
|
||||
startRecieveLog(current)
|
||||
})
|
||||
XHR.get('<%=url([[admin]], [[services]], [[frp]], [[server_list]])%>', null, function(x, data) {
|
||||
const dt = Array.from(data)
|
||||
dt.forEach(node => {
|
||||
tb.innerHTML += `<option value="${node}">${node}</option>`
|
||||
})
|
||||
if (dt.length > 0) {
|
||||
tb.value = dt[0]
|
||||
current = dt[0]
|
||||
startRecieveLog(dt[0])
|
||||
}
|
||||
})
|
||||
function startRecieveLog(log) {
|
||||
XHR.get('<%=url([[admin]], [[services]], [[frp]], [[get_log]])%>', {name: log},
|
||||
function(x, data) {
|
||||
var tb = document.getElementById('content');
|
||||
tb.value = x.responseText
|
||||
}
|
||||
);
|
||||
}
|
||||
</script>
|
|
@ -321,3 +321,27 @@ msgstr "插件 Host Header 重写"
|
|||
|
||||
msgid "plugin_header_X-From-Where"
|
||||
msgstr "插件X-From-Where请求头"
|
||||
|
||||
msgid "Multi Frpc"
|
||||
msgstr "Frpc内网穿透"
|
||||
|
||||
msgid "Server List"
|
||||
msgstr "服务器列表"
|
||||
|
||||
msgid "Server Remark Name"
|
||||
msgstr "服务器备注“
|
||||
|
||||
msgid "Server User"
|
||||
msgstr "登陆用户"
|
||||
|
||||
msgid "Plugin Log"
|
||||
msgstr "插件日志"
|
||||
|
||||
msgid "Client Log"
|
||||
msgstr "客户端日志"
|
||||
|
||||
msgid "Choose a server"
|
||||
msgstr "选择一个配置"
|
||||
|
||||
msgid "Reload"
|
||||
msgstr "刷新"
|
||||
|
|
|
@ -240,7 +240,8 @@ start() {
|
|||
[ ! -f "$LOGFILE" ] && touch $LOGFILE
|
||||
|
||||
[ ! -f "/usr/bin/frpc" ] && download_binary
|
||||
[ ! -f "/usr/bin/frpc" ] && logger -t Frp 'Download frpc failed, please retry.' && exit 0
|
||||
[ ! -f "/usr/bin/frpc" ] && logger -t Frp 'Download frpc failed, please retry.'
|
||||
[ ! -f "/usr/bin/frpc" ] && echo_date "Frp客户端下载失败, 请重试!" && exit 0
|
||||
|
||||
local tmpconf="/var/etc/frp"
|
||||
local service_conf="/var/etc/frp/service.conf"
|
||||
|
@ -287,6 +288,8 @@ start_service() {
|
|||
[ "$server_name" != "" ] || return 1
|
||||
|
||||
logger -t FRPC "Starting frp service $server_name"
|
||||
echo_date "正在启动Frp客户端: $server_name"
|
||||
|
||||
SERVICE_DAEMONIZE=1 \
|
||||
"/usr/bin/frpc" -c "$2/frpc-$server_name.conf" &
|
||||
}
|
||||
|
@ -294,11 +297,13 @@ start_service() {
|
|||
stop() {
|
||||
frp_del_cru
|
||||
[ "$(pidof frpc)" != "" ] || return 1
|
||||
echo_date "frpc shutting down service!"
|
||||
|
||||
logger -t FRPC 'Shutting down frp service'
|
||||
echo_date "停止所有Frp客户端!"
|
||||
|
||||
kill $(pidof frpc)
|
||||
|
||||
# if [ -n "`pidof frpc`" ]; then
|
||||
# logger -t FRPC 'Shutting down frp service'
|
||||
# service_stop /usr/bin/frpc
|
||||
# # Reduce_Log $LOGFILE
|
||||
# fi
|
||||
|
|
Loading…
Reference in New Issue