From 2ff488071046c06be2dc6907755cbae4b8da42e9 Mon Sep 17 00:00:00 2001 From: Stille Date: Mon, 31 May 2021 12:36:40 +0800 Subject: [PATCH] Update optimize shell script for Linux X86 and ARM --- README.md | 25 +++++---- frpc_linux_install.sh | 121 +++++++++++++++++++++++++++++++--------- frpc_linux_uninstall.sh | 37 +++++++++--- 3 files changed, 135 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 2164ff4..8369929 100644 --- a/README.md +++ b/README.md @@ -7,25 +7,25 @@ > *docker image support for X86 and ARM* ## 更新 +**2021-05-31** 更新国内镜像方便使用 +**2021-05-31** 目前 X86 群晖 DMS 7.0 可直接使用 Linux 版本脚本,已实测.由于没有 ARM 版可尝试,请自行尝试. +**2021-05-31** 更新 Linux 一键安装脚本同时支持 X86 和 ARM **2021-05-29** 更新从`0.36.2`版本起 docker 镜像同时支持 X86 和 ARM ## 使用说明 以下分为四种部署方法,请根据实际情况自行选择: -- 群晖NAS docker 安装 **[支持 docker 的群晖机型首选]** -- 群晖NAS 一键脚本安装 **[不支持 docker 的群晖机型]** +- 群晖 NAS docker 安装 **[支持 docker 的群晖机型首选]** [点击查看教程](https://www.ioiox.com/archives/26.html) +- 群晖 NAS 一键脚本安装 **[不支持 docker 的群晖机型]** [点击查看教程](https://www.ioiox.com/archives/6.html) - Linux 服务器 一键脚本安装 **[内网 Linux 服务器或虚拟机]** - Linux 服务器 docker 安装 **[内网 Linux 服务器或虚拟机]** -### 群晖NAS docker 安装 -[群晖NAS使用Docker安装配置frpc内网穿透教程](https://www.ioiox.com/archives/26.html) - -### 群晖NAS 一键脚本安装 -[群晖NAS安装配置免费frp内网穿透教程](https://www.ioiox.com/archives/6.html) - ### Linux 服务器 一键脚本安装 +> *本脚本目前同时支持 Linux X86 和 ARM 架构* + 安装 ```shell -wget https://raw.githubusercontent.com/stilleshan/frpc/master/frpc_linux_install.sh && chmod +x frpc_linux_install.sh && ./frpc_linux_install.sh +# 国内 gitee 镜像 +wget https://gitee.com/stilleshan/frpc/raw/master/frpc_linux_install.sh && chmod +x frpc_linux_install.sh && ./frpc_linux_install.sh ``` 使用 @@ -38,7 +38,8 @@ sudo systemctl restart frpc 卸载 ```shell -wget https://raw.githubusercontent.com/stilleshan/frpc/master/frpc_linux_uninstall.sh && chmod +x frpc_linux_uninstall.sh && ./frpc_linux_uninstall.sh +# 国内 gitee 镜像 +wget https://gitee.com/stilleshan/frpc/raw/master/frpc_linux_uninstall.sh && chmod +x frpc_linux_uninstall.sh && ./frpc_linux_uninstall.sh ``` ### Linux 服务器 docker 安装 @@ -46,8 +47,8 @@ wget https://raw.githubusercontent.com/stilleshan/frpc/master/frpc_linux_uninsta 先 **git clone** 本仓库,并正确配置 **frpc.ini** 文件. ```shell -git clone https://github.com/stilleshan/frpc.git -# git clone 本仓库 +git clone https://gitee.com/stilleshan/frpc.git +# git clone 本仓库 gitee 镜像 vi /root/frpc/frpc.ini # 配置 frpc.ini 文件 ``` diff --git a/frpc_linux_install.sh b/frpc_linux_install.sh index 13e796a..3589ccc 100644 --- a/frpc_linux_install.sh +++ b/frpc_linux_install.sh @@ -1,28 +1,95 @@ -#!/bin/sh -FRP_VERSION="0.36.2" -REPO="stilleshan/frpc" -WORK_PATH=$(dirname $(readlink -f $0)) +#!/usr/bin/env bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH -# 创建frp文件夹 -mkdir -p /usr/local/frp && \ -# 下载并移动frpc文件 -wget -P ${WORK_PATH} https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz && \ -tar -zxvf frp_${FRP_VERSION}_linux_amd64.tar.gz && \ -cd frp_${FRP_VERSION}_linux_amd64 && \ -mv frpc /usr/local/frp && \ -# 下载frpc.in和frpc.service -wget -P /usr/local/frp https://raw.githubusercontent.com/${REPO}/master/frpc.ini && \ -wget -P /lib/systemd/system https://raw.githubusercontent.com/${REPO}/master/frpc.service && \ -systemctl daemon-reload && \ -# 启动frpc -sudo systemctl start frpc && \ -sudo systemctl enable frpc && \ -# 删除多余文件 -cd ${WORK_PATH} && \ -rm -rf frp_${FRP_VERSION}_linux_amd64 frp_${FRP_VERSION}_linux_amd64.tar.gz frpc_linux_install.sh -echo "=======================================================" &&\ -echo -e "\033[32m安装成功,请先修改 frpc.ini 文件,确保格式及配置正确无误!\033[0m" && \ -echo -e "\033[31mvi /usr/local/frp/frpc.ini \033[0m" && \ -echo -e "\033[32m修改完毕后执行以下命令重启服务:\033[0m" && \ -echo -e "\033[31msudo systemctl restart frpc\033[0m" && \ -echo "=======================================================" \ No newline at end of file +# fonts color +Green="\033[32m" +Red="\033[31m" +Yellow="\033[33m" +GreenBG="\033[42;37m" +RedBG="\033[41;37m" +Font="\033[0m" +# fonts color + +# variable +WORK_PATH=$(dirname $(readlink -f $0)) +FRP_NAME=frpc +FRP_VERSION=0.36.2 +FRP_PATH=/usr/local/frp + +if [ $(uname -m) = "x86_64" ]; then + export PLATFORM=amd64 +else if [ $(uname -m) = "aarch64" ]; then + export PLATFORM=arm64 +fi +fi + +FILE_NAME=frp_${FRP_VERSION}_linux_${PLATFORM} + + +# 判断是否安装 frpc +if [ -f "/usr/local/frp/${FRP_NAME}" ] || [ -f "/usr/local/frp/${FRP_NAME}.ini" ] || [ -f "/lib/systemd/system/${FRP_NAME}.service" ];then + echo -e "${Green}=========================================================================${Font}" + echo -e "${RedBG}当前已退出脚本.${Font}" + echo -e "${Green}检查到服务器已安装${Font} ${Red}${FRP_NAME}${Font}" + echo -e "${Green}请手动确认和删除${Font} ${Red}/usr/local/frp/${Font} ${Green}目录下的${Font} ${Red}${FRP_NAME}${Font} ${Green}和${Font} ${Red}/${FRP_NAME}.ini${Font} ${Green}文件以及${Font} ${Red}/lib/systemd/system/${FRP_NAME}.service${Font} ${Green}文件,再次执行本脚本.${Font}" + echo -e "${Green}参考命令如下:${Font}" + echo -e "${Red}rm -rf /usr/local/frp/${FRP_NAME}${Font}" + echo -e "${Red}rm -rf /usr/local/frp/${FRP_NAME}.ini${Font}" + echo -e "${Red}rm -rf /lib/systemd/system/${FRP_NAME}.service${Font}" + echo -e "${Green}=========================================================================${Font}" + exit 2 +fi + + +# 判断 frpc 进程并 kill +while ! test -z "$(ps -A | grep -w ${FRP_NAME})"; do + FRPCPID=$(ps -A | grep -w ${FRP_NAME} | awk 'NR==1 {print $1}') + kill -9 $FRPCPID +done + +mkdir -p ${FRP_PATH} +wget -P ${WORK_PATH} https://ghproxy.com/https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/${FILE_NAME}.tar.gz -O ${FILE_NAME}.tar.gz && \ +tar -zxvf ${FILE_NAME}.tar.gz && \ +mv ${FILE_NAME}/${FRP_NAME} ${FRP_PATH} + +cat >${FRP_PATH}/${FRP_NAME}.ini </lib/systemd/system/${FRP_NAME}.service <