my/frpc.sh

111 lines
2.6 KiB
Bash
Raw Normal View History

2025-02-13 05:25:30 +00:00
#!/bin/bash
# 定义变量
2025-02-13 05:44:42 +00:00
FRPC_VERSION="0.61.1"
2025-02-13 05:25:30 +00:00
INSTALL_DIR="/usr/local/bin"
SERVICE_NAME="frpc"
CONFIG_DIR="/etc/frp"
2025-02-13 05:39:08 +00:00
CONFIG_FILE="$CONFIG_DIR/frpc.toml"
2025-02-13 05:52:49 +00:00
FRPC_BIN="$INSTALL_DIR/frpc"
2025-02-13 05:25:30 +00:00
# 检测系统架构
ARCH=$(uname -m)
case $ARCH in
x86_64)
ARCH="amd64"
;;
aarch64)
ARCH="arm64"
;;
armv7l)
ARCH="arm"
;;
*)
echo "不支持的架构: $ARCH"
exit 1
;;
esac
2025-02-13 05:52:49 +00:00
# 检查 frpc 是否已安装
if [ -f "$FRPC_BIN" ]; then
echo "frpc 已安装,跳过下载步骤。"
else
# 下载 frpc
echo "正在下载 frpc v$FRPC_VERSION ..."
DOWNLOAD_URL="https://ghub.z1.mk/https://github.com/fatedier/frp/releases/download/v${FRPC_VERSION}/frp_${FRPC_VERSION}_linux_${ARCH}.tar.gz"
wget -q --show-progress -O /tmp/frp.tar.gz $DOWNLOAD_URL
fi
2025-02-13 05:25:30 +00:00
# 解压并安装
echo "正在安装 frpc ..."
tar -xzf /tmp/frp.tar.gz -C /tmp
sudo mv /tmp/frp_${FRPC_VERSION}_linux_${ARCH}/frpc $INSTALL_DIR/
sudo chmod +x $INSTALL_DIR/frpc
2025-02-13 05:52:49 +00:00
# 清理临时文件
rm -rf /tmp/frp_${FRPC_VERSION}_linux_${ARCH} /tmp/frp.tar.gz
2025-02-13 05:25:30 +00:00
# 创建配置文件目录
echo "正在创建配置文件目录 ..."
sudo mkdir -p $CONFIG_DIR
2025-02-13 05:52:49 +00:00
# 检查配置文件是否存在
if [ -f "$CONFIG_FILE" ]; then
echo "配置文件已存在,跳过生成步骤。"
else
# 用户输入 frps 服务器地址和端口号
2025-02-13 06:47:55 +00:00
read -p "请输入 frps 服务器地址: " FRPS_SERVER
read -p "请输入 frps 服务器端口号: " FRPS_PORT
2025-02-13 05:25:30 +00:00
2025-02-13 05:52:49 +00:00
# 写入 TOML 配置文件
echo "正在写入 TOML 配置文件 ..."
sudo bash -c "cat > $CONFIG_FILE" <<EOF
2025-02-13 05:25:30 +00:00
[common]
2025-02-13 06:47:55 +00:00
server_addr = $FRPS_SERVER
2025-02-13 05:25:30 +00:00
server_port = $FRPS_PORT
2025-02-13 06:24:26 +00:00
auth.method = "token"
2025-02-13 07:38:25 +00:00
auth.token = swz
2025-02-13 06:24:26 +00:00
[[proxies]]
name = "ssh_random"
type = "tcp"
localIP = "10.105.56.8"
localPort = 1030
remotePort = 1030
2025-02-13 05:25:30 +00:00
EOF
2025-02-13 05:52:49 +00:00
fi
2025-02-13 05:25:30 +00:00
2025-02-13 05:52:49 +00:00
# 检查 Systemd 服务是否已存在
2025-02-13 05:25:30 +00:00
SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME.service"
2025-02-13 05:52:49 +00:00
if [ -f "$SERVICE_FILE" ]; then
echo "Systemd 服务已存在,跳过生成步骤。"
else
# 创建 Systemd 服务
echo "正在创建 Systemd 服务 ..."
sudo bash -c "cat > $SERVICE_FILE" <<EOF
2025-02-13 05:25:30 +00:00
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
ExecStart=$INSTALL_DIR/frpc -c $CONFIG_FILE
Restart=on-failure
User=nobody
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
2025-02-13 05:52:49 +00:00
# 重载 Systemd 并启动服务
sudo systemctl daemon-reload
sudo systemctl enable $SERVICE_NAME
sudo systemctl start $SERVICE_NAME
fi
2025-02-13 05:25:30 +00:00
# 检查服务状态
echo "frpc 安装完成!"
echo "服务状态:"
sudo systemctl status $SERVICE_NAME