first commit
This commit is contained in:
commit
3f39e13abf
72
frp_one/README.md
Normal file
72
frp_one/README.md
Normal 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
159
frp_one/frp_one.bash
Normal 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 "脚本执行完毕。"
|
||||
2
mnt_share_folder/README.md
Normal file
2
mnt_share_folder/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
# 开启Mware虚拟机与主机的共享文件夹
|
||||
`Linux`下即使安装了`VMware Tools`也无法直接拖动文件从主机传递到虚拟机,在开启了虚拟机共享文件夹后,还需要运行本脚本,挂在相关目录才能在`/mnt/hgfs`下看到该目录
|
||||
2
mnt_share_folder/mntShare.sh
Normal file
2
mnt_share_folder/mntShare.sh
Normal file
@ -0,0 +1,2 @@
|
||||
sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
|
||||
|
||||
Loading…
Reference in New Issue
Block a user