first commit

This commit is contained in:
lumos 2025-05-26 10:38:07 +08:00
commit 3f39e13abf
4 changed files with 235 additions and 0 deletions

72
frp_one/README.md Normal file
View File

@ -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 保持一致。
---

159
frp_one/frp_one.bash Normal file
View File

@ -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 <<EOF
bindPort = ${FRPS_PORT}
auth.method = "token"
auth.token = "${FRPS_TOKEN}"
log.to = "/opt/frp.log"
log.level = "info"
log.maxDays = 3
EOF
echo "正在为 frps 创建 systemd 服务..."
sudo tee /etc/systemd/system/frps.service > /dev/null <<EOF
[Unit]
Description = FRP Server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /opt/frp/frps -c /opt/frp/frps.toml
Restart = on-failure
RestartSec = 10s
User = root
[Install]
WantedBy = multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
echo "---"
echo "frps 设置完成!"
echo "您可以使用以下命令检查其状态: sudo systemctl status frps"
echo "---"
elif [ "$CHOICE" == "2" ]; then
echo "---"
echo "您选择了配置 frpc (FRP 客户端)。"
echo "---"
download_frp
read -p "请输入 frps 服务器的 IP 地址/主机名: " FRPS_SERVER_ADDR
read -p "请输入 frps 服务器的端口 (例如: 7000): " FRPS_SERVER_PORT
read -p "请输入服务器上使用的认证 token: " FRPC_TOKEN
read -p "请输入要映射的远程端口: " REMOTE_PORT
echo "正在生成 frpc.toml 配置文件...日志目录为 /opt/frp.log"
sudo tee /opt/frp/frpc.toml > /dev/null <<EOF
serverAddr = "${FRPS_SERVER_ADDR}"
serverPort = ${FRPS_SERVER_PORT}
auth.method = "token"
auth.token = "${FRPC_TOKEN}"
log.to = "/opt/frp.log"
log.level = "info"
log.maxDays = 3
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = ${REMOTE_PORT}
EOF
echo "正在为 frpc 创建 systemd 服务..."
sudo tee /etc/systemd/system/frpc.service > /dev/null <<EOF
[Unit]
Description = FRP Client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /opt/frp/frpc -c /opt/frp/frpc.toml
Restart = on-failure
RestartSec = 10s
User = root
[Install]
WantedBy = multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable frpc
sudo systemctl start frpc
echo "---"
echo "frpc 设置完成!"
echo "您可以使用以下命令检查其状态: sudo systemctl status frpc"
echo "---"
else
echo "无效的选择。请重新运行脚本并输入 1 或 2。"
exit 1
fi
echo "脚本执行完毕。"

View File

@ -0,0 +1,2 @@
# 开启Mware虚拟机与主机的共享文件夹
`Linux`下即使安装了`VMware Tools`也无法直接拖动文件从主机传递到虚拟机,在开启了虚拟机共享文件夹后,还需要运行本脚本,挂在相关目录才能在`/mnt/hgfs`下看到该目录

View File

@ -0,0 +1,2 @@
sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other