Compare commits
8 Commits
Author | SHA1 | Date |
---|---|---|
justice2001 | e27a3b04d0 | |
LebsChen | b57f0f1e26 | |
zhengyi | a0ca334c4c | |
zhengyi | 9926eb54ea | |
zhengyi | 93b5a38bd3 | |
zhengyi | b7c5709e92 | |
zhengyi | 34f80e478a | |
zhengyi | ac64474c13 |
|
@ -0,0 +1,11 @@
|
|||
# v1.0.0
|
||||
|
||||
* 支持多个服务器同时连接
|
||||
* 支持显示多个服务器的连接日志
|
||||
* 支持插件日志
|
||||
|
||||
# v1.0.1
|
||||
|
||||
* 修复客户端日志白屏问题
|
||||
* 修复插件无视总启用选项的问题
|
||||
* 修复服务器无视独立启用选项的问题
|
2
Makefile
2
Makefile
|
@ -11,7 +11,7 @@ LUCI_DEPENDS:=+wget +frpc
|
|||
LUCI_PKGARCH:=all
|
||||
|
||||
PKG_NAME:=luci-app-multi-frpc
|
||||
PKG_VERSION:=1.0
|
||||
PKG_VERSION:=1.0.1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
|
34
README.md
34
README.md
|
@ -1,5 +1,35 @@
|
|||
# LUCI-APP-MULTI-FRPC
|
||||
|
||||
一款支持多服务端的frp Client Openwrt插件
|
||||
> 这是我第一次开发Openwrt插件,也是我开源的第三个项目,可能会有些Bug,欢迎ISSUE!
|
||||
|
||||
修改自Lean源码
|
||||
一款支持多服务端的frp Client Openwrt插件,修改自Lean源码
|
||||
|
||||
## ✨ 特性
|
||||
|
||||
* 支持多个服务器同时连接
|
||||
* 支持显示多个服务器的连接日志
|
||||
* 拆分插件日志
|
||||
|
||||
## 🖊️ 使用
|
||||
|
||||
您可以在下列地址下载到ipk文件:
|
||||
|
||||
* [GitHub Releases](https://github.com/justice2001/luci-app-multi-frpc/releases)
|
||||
* Gitee Releases - 等待...
|
||||
|
||||
您可以使用Openwrt的包管理器的`上传软件包`进行安装,或者将ipk文件上传至openwrt使用`opkg install <package>`安装。
|
||||
|
||||
## ℹ️ 信息
|
||||
|
||||
项目开发的需求会同步到[Gitea](https://git.mczhengyi.top/zhengyi/luci-app-multi-frpc/issues),包括我自己提的一些事项都会在这里展示,您可以浏览这里来获取开发动向。
|
||||
|
||||
## 🎉 鸣谢
|
||||
|
||||
- 该项目基于[luci-app-frpc](https://github.com/coolsnowwolf/luci/tree/master/applications/luci-app-frpc)修改
|
||||
- 部分代码参考自[luci-app-adguardhome](https://github.com/rufengsuixing/luci-app-adguardhome)
|
||||
|
||||
## 🧑💻 碎碎念(开发历程和原因)
|
||||
|
||||
> 这段只是介绍我的开发原因与经历,可能比较长
|
||||
|
||||
我的个人一些服务和网站都是运行在一个内网的服务器中的,由于家用宽带并不允许运行一些应用,因此我采用的是内网穿透的方案来运行对外服务,而我还有一个VPN来访问家中的网路,碍于国内运营商的贷款费用巨贵,因此我选择了Vultr作为中转,虽然延迟很高,但对于在公网看个电影之类的应用也够用,无非就是连接建立比较慢,一旦播放起来就完全没有感受了。既然服务器都买了,带宽也还有很大的富裕,我就想着搭一个frp服务器节点吧,使用DNS把国外的流量导入到这个服务器上。现在我有两个frp服务端,但是Openwrt的插件却只支持单个服务端,找遍了GitHub也没有找到支持多个服务端的frp插件(可能我这种要求比较奇葩吧)。于是,做为一个开发者,我决定自己动手,丰衣足食。开发一款支持多个服务端同时映射的插件,但这是我第一次摸Openwrt的插件开发。网上的文档似乎也不算多,从零开始开发好像也不现实,因此我找出了Lean的luci-app-frpc的源码,分析使用的API,查找API文档,同时也从luci-app-adguardhome中学习到了一些知识。最终搓出了这个插件。
|
|
@ -28,8 +28,9 @@ end
|
|||
|
||||
function get_server()
|
||||
local ret = {}
|
||||
uci.foreach("frp", "server", function (s)
|
||||
ret[#ret + 1] = s["name"]
|
||||
uci:load("frp")
|
||||
uci:foreach("frp", "server", function (s)
|
||||
table.insert(ret, s["name"])
|
||||
end)
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(ret)
|
||||
|
|
|
@ -171,7 +171,7 @@ e.width = "15%"
|
|||
e = t:option(DummyValue, "user", translate("Server User"))
|
||||
e.width = "15%"
|
||||
|
||||
e = t:option(Flag, "enable", translate("Enable State"))
|
||||
e = t:option(Flag, "enabled", translate("Enable State"))
|
||||
e.width = "10%"
|
||||
e.rmempty = false
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ t.dynamic = false
|
|||
|
||||
t:tab("base", translate("Basic Settings"))
|
||||
|
||||
e = t:taboption("base", ListValue, "enable", translate("Enable State"))
|
||||
e = t:taboption("base", ListValue, "enabled", translate("Enable State"))
|
||||
e.default = "1"
|
||||
e.rmempty = false
|
||||
e:value("1", translate("Enable"))
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<form>
|
||||
<div style="padding: 20px 20px 5px;">
|
||||
<label for="server-list"><%:Choose a server%>:
|
||||
<select name="server" id="server-list"></select>
|
||||
<select class="cbi-input-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>
|
||||
<textarea class="cbi-input-textarea" readonly id="content" style="width: 100%; min-height: 800px!important;"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
|
|
@ -329,7 +329,7 @@ msgid "Server List"
|
|||
msgstr "服务器列表"
|
||||
|
||||
msgid "Server Remark Name"
|
||||
msgstr "服务器备注“
|
||||
msgstr "服务器备注"
|
||||
|
||||
msgid "Server User"
|
||||
msgstr "登陆用户"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
config frp 'common'
|
||||
option enable '0'
|
||||
option enabled '0'
|
||||
option log_max_days '3'
|
||||
option login_fail_exit '0'
|
||||
option enable_cpool '0'
|
||||
|
|
|
@ -139,12 +139,18 @@ conf_proxy_add() {
|
|||
config_server_add() {
|
||||
local cfg="$1"
|
||||
local servicecfg="$3"
|
||||
local server_addr server_port token user server_name
|
||||
local server_addr server_port token user server_name enabled
|
||||
|
||||
config_get server_name "$cfg" name
|
||||
config_get_bool enabled "$cfg" enabled 0
|
||||
|
||||
[ $server_name != "" ] || return 1
|
||||
if [ "$enabled" -lt 1 ]; then
|
||||
echo_date "服务端 $server_name 被禁用"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo_date "正在创建 $server_name 的配置文件"
|
||||
config_get server_addr "$cfg" server_addr
|
||||
config_get server_port "$cfg" server_port
|
||||
config_get token "$cfg" token
|
||||
|
@ -246,6 +252,9 @@ start() {
|
|||
local tmpconf="/var/etc/frp"
|
||||
local service_conf="/var/etc/frp/service.conf"
|
||||
|
||||
# Clean File
|
||||
rm $tmpconf/*.conf
|
||||
|
||||
# Load Service Config
|
||||
echo "log_level=${log_level}" > $service_conf
|
||||
echo "log_max_days=${log_max_days}" >>$service_conf
|
||||
|
@ -269,6 +278,8 @@ start() {
|
|||
|
||||
# 检查服务
|
||||
|
||||
[ "$(find $tmpconf -name "frpc-*.conf")" != "" ] || (echo_date "frp服务启动失败,没有配置可用服务端" && exit 0)
|
||||
|
||||
[ "$(cat "$service_conf" | grep -c "type=")" -gt 0 ] || (echo_date "frp服务启动失败,请首先添加服务列表!" && exit 0)
|
||||
|
||||
config_foreach start_service server "$tmpconf"
|
||||
|
@ -286,6 +297,7 @@ start_service() {
|
|||
config_get server_name "$config" name
|
||||
|
||||
[ "$server_name" != "" ] || return 1
|
||||
[ -f "$2/frpc-$server_name.conf" ] || return 1
|
||||
|
||||
logger -t FRPC "Starting frp service $server_name"
|
||||
echo_date "正在启动Frp客户端: $server_name"
|
||||
|
@ -302,10 +314,5 @@ stop() {
|
|||
echo_date "停止所有Frp客户端!"
|
||||
|
||||
kill $(pidof frpc)
|
||||
|
||||
# if [ -n "`pidof frpc`" ]; then
|
||||
# service_stop /usr/bin/frpc
|
||||
# # Reduce_Log $LOGFILE
|
||||
# fi
|
||||
return 0
|
||||
}
|
Loading…
Reference in New Issue