mirror of
https://github.com/monlor/MIXBOX-ARCHIVE.git
synced 2026-03-10 23:41:27 +00:00
moxbox init
This commit is contained in:
BIN
apps/frpc/bin/frpc_darwin_x86_64
Normal file
BIN
apps/frpc/bin/frpc_darwin_x86_64
Normal file
Binary file not shown.
BIN
apps/frpc/bin/frpc_linux_arm
Normal file
BIN
apps/frpc/bin/frpc_linux_arm
Normal file
Binary file not shown.
BIN
apps/frpc/bin/frpc_linux_mips
Normal file
BIN
apps/frpc/bin/frpc_linux_mips
Normal file
Binary file not shown.
BIN
apps/frpc/bin/frpc_linux_x86_64
Normal file
BIN
apps/frpc/bin/frpc_linux_x86_64
Normal file
Binary file not shown.
7
apps/frpc/config/frpc.uci
Normal file
7
apps/frpc/config/frpc.uci
Normal file
@@ -0,0 +1,7 @@
|
||||
service=Frpc
|
||||
appname="frpc"
|
||||
needver="0.0.1"
|
||||
supports="linux_arm,linux_mips,linux_x86_64,darwin_x86_64"
|
||||
appinfo="内网穿透工具,相对于ngrok资源占用较多"
|
||||
newinfo="修复自定义域名配置错误"
|
||||
version="0.0.5"
|
||||
97
apps/frpc/config/mixbox.conf
Normal file
97
apps/frpc/config/mixbox.conf
Normal file
@@ -0,0 +1,97 @@
|
||||
#------------------【Frpc】--------------------
|
||||
frpcAdd() {
|
||||
read -p "请输入${appname}名称:" name
|
||||
[ -z "$name" ] && return
|
||||
read -p "请输入${appname}类型(1.http 2.tcp):" type
|
||||
read -p "请输入${appname}本地ip(回车默认$lanip):" local_ip
|
||||
read -p "请输入${appname}本地端口:" local_port
|
||||
remote_port="" && domain=""
|
||||
[ "$type" == '2' ] && read -p "请输入${appname}远程访问端口:" remote_port
|
||||
[ "$type" == '1' ] && read -p "请输入${appname}域名(自动识别子域名或自定义域名):" domain
|
||||
if [ ! -z $name ]; then
|
||||
[ -z $local_ip ] && local_ip=$lanip
|
||||
if [ "$type" == '1' ]; then
|
||||
type=http
|
||||
elif [ "$type" == '2' ]; then
|
||||
type=tcp
|
||||
else
|
||||
type="输入有误"
|
||||
fi
|
||||
read -p "确定要添加配置:$name,$type,$local_ip,$local_port,$remote_port,$domain?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
mbdb set $appname.info.$name="$type,$local_ip,$local_port,$remote_port,$domain"
|
||||
fi
|
||||
fi
|
||||
read -p "添加完成,再添加一个?[1/0] " res
|
||||
if checkread $res; then
|
||||
[ "$res" == '1' ] && frpcAdd
|
||||
fi
|
||||
}
|
||||
|
||||
frpcDel() {
|
||||
|
||||
frpclist=$(mbdb keys $appname.info)
|
||||
echo "${appname}穿透配置[`echo $frpclist`]"
|
||||
read -p "请输入要删除的配置名:" res
|
||||
[ ! -z "$res" ] && mbdb del $appname.info.$res
|
||||
read -p "删除完成,继续删除?[1/0] " res
|
||||
if checkread $res; then
|
||||
[ "$res" == '1' ] && frpcDel
|
||||
fi
|
||||
}
|
||||
|
||||
frpc() {
|
||||
|
||||
eval `mbdb export frpc`
|
||||
source /etc/mixbox/bin/base
|
||||
echo "********* $service ***********"
|
||||
echo "[${appinfo}]"
|
||||
readsh "启动${appname}服务[1/0] " "enable" "1"
|
||||
if [ "$enable" == '1' ]; then
|
||||
echo "1.[0.9.3] 2.[0.17.0] 3.[0.20.0]"
|
||||
read -p "请选择${appname}运行版本(回车不修改,默认最新):" res
|
||||
case "$res" in
|
||||
1) res="0.9.3" ;;
|
||||
2) res="0.17.0" ;;
|
||||
3) res="0.20.0" ;;
|
||||
*) res="" ;;
|
||||
esac
|
||||
[ -z "$res" ] && [ -z "$runver" ] && res="0.20.0"
|
||||
[ -n "$res" ] && mbdb set $appname.main.runver="$res"
|
||||
|
||||
[ -z "$server" ] && server="空"
|
||||
[ -z "$server_port" ] && server_port="空"
|
||||
[ -z "$token" ] && token="空"
|
||||
read -p "修改${appname}服务器($server, $server_port, $token)?[1/0] " res
|
||||
if [ "$res" == '1' ]; then
|
||||
read -p "请输入${appname}服务器:" res
|
||||
[ ! -z "$res" ] && mbdb set $appname.main.server="$res"
|
||||
read -p "请输入${appname}服务器端口:" res
|
||||
[ ! -z "$res" ] && mbdb set $appname.main.server_port="$res"
|
||||
read -p "请输入${appname}服务器秘钥:" res
|
||||
[ ! -z "$res" ] && mbdb set $appname.main.token="$res"
|
||||
if [ "$(mbdb get ${appname}.main.runver)" != "0.9.3" ]; then
|
||||
read -p "请输入${appname}的tcp_mux配置(true/false):" res
|
||||
[ -n "$res" ] && mbdb set $appname.main.tcp_mux="$res"
|
||||
read -p "请输入${appname}的user配置:" res
|
||||
[ -n "$res" ] && mbdb set $appname.main.user="$res"
|
||||
read -p "请输入${appname}的协议配置protocol:" res
|
||||
[ -n "$res" ] && mbdb set $appname.main.protocol="$res"
|
||||
|
||||
fi
|
||||
fi
|
||||
frpclist=$(mbdb keys $appname.info)
|
||||
[ -z "$frpclist" ] && frpclist="空"
|
||||
echo "${appname}穿透配置[`echo $frpclist`]"
|
||||
read -p "添加${appname}穿透配置?[1/0] " res
|
||||
[ "$res" == '1' ] && frpcAdd
|
||||
read -p "删除${appname}穿透配置?[1/0] " res
|
||||
[ "$res" == '1' ] && frpcDel
|
||||
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh restart
|
||||
else
|
||||
${mbroot}/apps/${appname}/scripts/${appname}.sh stop
|
||||
fi
|
||||
|
||||
}
|
||||
#------------------【Frpc】--------------------
|
||||
133
apps/frpc/scripts/frpc.sh
Normal file
133
apps/frpc/scripts/frpc.sh
Normal file
@@ -0,0 +1,133 @@
|
||||
#!/bin/sh
|
||||
source /etc/mixbox/bin/base
|
||||
eval `mbdb export frpc`
|
||||
|
||||
# port=
|
||||
[ -z "$tcp_mux" ] && tcp_mux="true"
|
||||
[ -z "$user" ] && user="mixbox"
|
||||
[ -z "$protocol" ] && protocol="tcp"
|
||||
[ -z "$runver" ] && runver=`${mbroot}/apps/${appname}/bin/${appname} -v`
|
||||
|
||||
set_config() {
|
||||
|
||||
logsh "【$service】" "生成${appname}配置文件"
|
||||
result=$(mbdb show ${appname}.main | grep server | wc -l)
|
||||
if [ "$result" == '0' ]; then
|
||||
logsh "【$service】" "${appname}配置出现问题!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$(${mbroot}/apps/${appname}/bin/${appname} -v)" != "$runver" ]; then
|
||||
logsh "【$service】" "检测到版本号更换,重新下载${appname}程序..."
|
||||
wgetsh "${mbroot}/apps/${appname}/bin/${appname}" "$mburl/appsbin/frp-bin/$runver/frpc_${model}"
|
||||
[ "$?" -ne 0 ] && logsh "【$service】" "下载${appname}程序失败!" && exit 1
|
||||
fi
|
||||
|
||||
token=$(mbdb get ${appname}.main.token)
|
||||
cat > ${mbroot}/apps/${appname}/config/${appname}.conf <<-EOF
|
||||
[common]
|
||||
server_addr = $server
|
||||
server_port = $server_port
|
||||
log_file = ${mbroot}/var/log/${appname}.log
|
||||
log_level = info
|
||||
log_max_days = 1
|
||||
EOF
|
||||
if [ "$runver" != "0.9.3" ]; then
|
||||
echo "token = $token" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
echo "tcp_mux = $tcp_mux" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
echo "user = $user" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
echo "protocol = $protocol" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
else
|
||||
echo "privilege_token = $token" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
fi
|
||||
mbdb show ${appname}.info | while read line
|
||||
do
|
||||
[ -z "${line}" ] || [ ${line:0:1} == "#" ] && continue
|
||||
echo >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
name="$(echo ${line} | cut -d'=' -f1)"
|
||||
info="$(echo ${line} | cut -d'=' -f2)"
|
||||
echo "[$name]" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
type=`cutsh $info 1`
|
||||
[ "$type" != "http" -a "$type" != "tcp" ] && logsh "【$service】" "节点$name类型设置错误!" && exit
|
||||
echo "type = $type" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
echo "local_ip = `cutsh $info 2`" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
echo "local_port = `cutsh $info 3`" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
if [ "$type" == "tcp" -o "$type" == "udp" ]; then
|
||||
echo "remote_port = `cutsh $info 4`" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
logsh "【$service】" "加载${appname}配置:【$name】启动为tcp/udp模式,端口号:[`cutsh ${line} 4`]"
|
||||
fi
|
||||
if [ "$type" == "http" -o "$type" == "https" ]; then
|
||||
domain=`cutsh $info 5`
|
||||
if [ `echo $domain | grep "\." | wc -l` -eq 0 ]; then
|
||||
echo "subdomain = $domain" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
logsh "【$service】" "加载${appname}配置:【$name】启动为http/https子域名模式,域名:[$domain]"
|
||||
else
|
||||
echo "custom_domains = $domain" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
logsh "【$service】" "加载${appname}配置:【$name】启动为http/https自定义域名模式,域名:[$domain]"
|
||||
fi
|
||||
fi
|
||||
echo "use_encryption = true" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
echo "use_gzip = false" >> ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
start () {
|
||||
|
||||
result=$(ps | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -v grep | wc -l)
|
||||
if [ "$result" != '0' ];then
|
||||
logsh "【$service】" "${appname}已经在运行!"
|
||||
exit 1
|
||||
fi
|
||||
logsh "【$service】" "正在启动${appname}服务... "
|
||||
cru a "${appname}" "0 6 * * * ${mbroot}/apps/${appname}/scripts/${appname}.sh restart"
|
||||
set_config
|
||||
|
||||
# open_port
|
||||
# write_firewall_start
|
||||
daemon ${mbroot}/apps/${appname}/bin/${appname} -c ${mbroot}/apps/${appname}/config/${appname}.conf
|
||||
if [ $? -ne 0 ]; then
|
||||
logsh "【$service】" "启动${appname}服务失败!"
|
||||
else
|
||||
logsh "【$service】" "启动${appname}服务完成!"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
stop () {
|
||||
|
||||
logsh "【$service】" "正在停止${appname}服务... "
|
||||
|
||||
killall -9 ${appname} &> /dev/null
|
||||
#
|
||||
rm -rf ${mbroot}/apps/${appname}/config/${appname}.conf > /dev/null 2>&1
|
||||
[ "$enable" == '0' ] && destroy
|
||||
|
||||
}
|
||||
|
||||
destroy() {
|
||||
|
||||
cru d "${appname}"
|
||||
|
||||
}
|
||||
|
||||
|
||||
status() {
|
||||
|
||||
result=$(pssh | grep ${mbroot}/apps/${appname}/bin/${appname} | grep -v grep | wc -l)
|
||||
if [ "$result" == '0' ]; then
|
||||
status="未运行|0"
|
||||
else
|
||||
status="运行服务器: $server:$server_port|1"
|
||||
fi
|
||||
mbdb set $appname.main.status="$status"
|
||||
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) stop; start ;;
|
||||
reload) stop; start ;;
|
||||
status) status ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user