commit 3f39e13abf2e5f8187cba0b2a27769898fb1f54f Author: lumos Date: Mon May 26 10:38:07 2025 +0800 first commit diff --git a/frp_one/README.md b/frp_one/README.md new file mode 100644 index 0000000..ccd42c7 --- /dev/null +++ b/frp_one/README.md @@ -0,0 +1,72 @@ +# FRP 一键配置脚本 + +这是一个简化 FRP (Fast Reverse Proxy) 服务器 (frps) 和客户端 (frpc) 配置过程的 Bash 脚本。它自动化了 FRP 的下载、解压、配置文件生成以及 Systemd 服务的创建和启动。 + +--- + +## 功能特性 + +* **交互式选择**:允许用户选择配置 FRP 服务器 (frps) 或客户端 (frpc)。 +* **自定义 FRP 下载**:用户可以提供 FRP 的完整下载链接,脚本会自动下载并解压。 +* **自动配置 frps**: + * 引导用户输入服务器端口和认证 Token。 + * 自动生成 `frps.toml` 配置文件。 + * 创建并启用 `frps.service` Systemd 服务,实现开机自启动和后台运行。 +* **自动配置 frpc**: + * 引导用户输入服务器地址、端口、认证 Token 以及要映射的远程端口。 + * 自动生成 `frpc.toml` 配置文件,并预设了 SSH (22 端口) 的 TCP 转发配置。 + * 创建并启用 `frpc.service` Systemd 服务,实现开机自启动和后台运行。 +* **日志管理**:frps 和 frpc 的日志都将输出到 `/opt/frp.log`,并支持日志按天轮转。 + +--- + +## 如何使用 + +1. **下载脚本**: + 将脚本内容保存为一个 `.sh` 文件,例如 `frp_setup.sh`。 + +2. **赋予执行权限**: + 在终端中运行以下命令为脚本添加执行权限: + ```bash + chmod +x frp_setup.sh + ``` + +3. **运行脚本**: + 使用 `sudo` 权限运行脚本: + ```bash + sudo ./frp_setup.sh + ``` + +4. **根据提示操作**: + 脚本会引导你选择配置服务器或客户端,并要求输入相应的参数(如端口、IP 地址、Token 和 FRP 下载链接)。 + + * **下载链接示例**:你需要提供一个 FRP 发行版的 `.tar.gz` 文件的下载链接,例如: + `https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz` + 请根据你的系统架构 (arm64, amd64 等) 和所需版本选择正确的下载链接。 + +--- + +## 脚本详情 + +* **安装目录**:FRP 可执行文件和配置文件将安装到 `/opt/frp/` 目录下。 +* **配置文件**: + * 服务器配置文件:`/opt/frp/frps.toml` + * 客户端配置文件:`/opt/frp/frpc.toml` +* **日志文件**:`/opt/frp.log` +* **Systemd 服务**: + * 服务器服务:`frps.service` (位于 `/etc/systemd/system/`) + * 客户端服务:`frpc.service` (位于 `/etc/systemd/system/`) +* **服务状态检查**: + * 检查 frps 状态:`sudo systemctl status frps` + * 检查 frpc 状态:`sudo systemctl status frpc` + +--- + +## 注意事项 + +* 运行此脚本需要 `sudo` 权限,因为它涉及到系统文件的修改和服务的管理。 +* 请确保你提供的 FRP 下载链接是有效的 `.tar.gz` 压缩包。 +* 脚本中客户端的 SSH 映射是预设的,如果你有其他端口映射需求,可以手动修改 `/opt/frp/frpc.toml` 文件。 +* 请确保服务器和客户端的认证 Token 保持一致。 + +--- \ No newline at end of file diff --git a/frp_one/frp_one.bash b/frp_one/frp_one.bash new file mode 100644 index 0000000..f266087 --- /dev/null +++ b/frp_one/frp_one.bash @@ -0,0 +1,159 @@ +#!/bin/bash + + +echo "欢迎使用 FRP 一键配置脚本!" +echo "请选择您要配置的 FRP 类型:" +echo "1. 配置 frps (FRP 服务器)" +echo "2. 配置 frpc (FRP 客户端)" +read -p "请输入您的选择 (1 或 2): " CHOICE + +# --- + +# 下载并解压 FRP 的函数 +download_frp() { + read -p "请输入您要下载的 FRP 完整下载链接 : " FRP_DOWNLOAD_URL + + echo "正在下载 FRP 文件..." + # 使用用户提供的链接下载文件,并将其保存到 /tmp/frp_custom_download.tar.gz + wget -q --show-progress "${FRP_DOWNLOAD_URL}" -O /tmp/frp_custom_download.tar.gz + if [ $? -ne 0 ]; then + echo "错误: 下载文件失败。请检查您的网络连接或下载链接是否正确。" + exit 1 + fi + + echo "正在创建安装目录 /opt/frp..." + sudo mkdir -p /opt/frp + if [ $? -ne 0 ]; then + echo "错误: 无法创建 /opt/frp 目录。" + exit 1 + fi + + echo "正在解压 FRP 到 /opt/frp..." + # 解压下载的文件,假设它是 tar.gz 格式,并去除顶层目录 + sudo tar -xzf /tmp/frp_custom_download.tar.gz -C /opt/frp/ --strip-components=1 + if [ $? -ne 0 ]; then + echo "错误: 解压 FRP 失败。请确保您下载的是正确的 .tar.gz 文件。" + exit 1 + fi + + sudo rm /tmp/frp_custom_download.tar.gz + echo "FRP 下载并解压成功到 /opt/frp。" +} + + + + +# --- + +if [ "$CHOICE" == "1" ]; then + echo "---" + echo "您选择了配置 frps (FRP 服务器)。" + echo "---" + + download_frp + + read -p "请输入 frps 的端口 (例如: 7000): " FRPS_PORT + read -p "请输入一个用于认证的 token (例如: your_secret_token): " FRPS_TOKEN + + echo "正在生成 frps.toml 配置文件...日志目录为 /opt/frp.log" + sudo tee /opt/frp/frps.toml > /dev/null < /dev/null < /dev/null < /dev/null <