一个便捷的 frp 隧道管理命令行工具,支持动态创建、管理和监控 frp 代理隧道。
frp-tunnel-cli 是一个基于 bash 的 frp 隧道管理工具,旨在简化 frp 客户端的使用。通过简单的命令行操作,你可以快速创建、管理和监控 TCP 和 HTTP 代理隧道,无需手动编辑配置文件。
主要针对 TCP、HTTP 转发场景,特别适合开发者和系统管理员使用。
你可以修改成任何名称去执行脚本,个人喜欢 tun
- ✅ 动态创建隧道 - 支持 TCP 和 HTTP 代理类型
- ✅ 智能端口管理 - 自动在 7010-7020 范围内分配可用端口
- ✅ 自动服务管理 - 创建隧道后自动重启 frpc 服务
- ✅ 配置文件管理 - 明确指定配置文件路径
- ✅ 状态监控 - 实时查看隧道和服务状态
- ✅ 彩色输出 - 友好的用户界面和错误提示
- 已安装 frp 客户端
- bash 4.0+
- macOS/Linux 系统
# macOS (使用 Homebrew)
brew install frp
# Ubuntu/Debian
sudo apt update
sudo apt install frp
# CentOS/RHEL
sudo yum install frp
# 或
sudo dnf install frp- 克隆项目:
git clone [email protected]:openapphub/frpc-cli.git
cd frpc-cli- 安装脚本:
# 复制脚本到系统目录
sudo cp tun /usr/local/bin/tun
sudo chmod +x /usr/local/bin/tun
# 或者创建符号链接到你的 PATH 目录
ln -s $(pwd)/tun ~/bin/tun- 确保脚本在 PATH 中:
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc
source ~/.zshrctun <local_port> [name] [type]local_port: 本地端口号 (必需)name: 隧道名称 (可选,默认为端口号)type: 代理类型 (可选,默认为 tcp,支持 tcp/http)
# 创建名为 8080 的 TCP 隧道
tun 8080
# 创建名为 my-app 的 TCP 隧道,本地端口 3000
tun 3000 my-app
# 创建名为 api-server 的 TCP 隧道,本地端口 5000
tun 5000 api-server tcp# 创建名为 web-server 的 HTTP 隧道
tun 8080 web-server http
# 创建名为 blog 的 HTTP 隧道,本地端口 4000
tun 4000 blog httptun list输出示例:
[INFO] 当前隧道列表:
名称: 8080
类型: tcp
本地端口: 8080
远程端口: 7010
访问地址: xx.x.xxx.xxx:7010
名称: web-server
类型: http
本地端口: 8080
访问地址: http://web-server.[subDomain]
tun stop <name>示例:
tun stop my-app
tun stop 8080tun restarttun status输出示例:
[INFO] frpc 服务状态:
[SUCCESS] frpc 服务正在运行
进程信息:
jinxm 39655 0.0 0.1 411323344 10688 s040 S+ 4:04下午 0:00.02 frpc -c /opt/homebrew/etc/frp/frpc.toml
[INFO] 配置文件: /opt/homebrew/etc/frp/frpc.toml
tun help
# 或
tun -h
# 或
tun --help在使用 tun 之前,你需要先配置 frp 客户端:
- 创建配置目录:
mkdir -p ~/.frp/confd- 创建主配置文件
~/.frp/frpc.toml:
# 基础连接配置
serverAddr = "your-server-ip"
serverPort = 7000
auth.method = "token"
auth.token = "your-token"
# 客户端标识(每个客户端必须唯一)
user = "your-client-name"
metadatas = { location = "YourLocation", env = "production" }
# 日志配置
log.to = "/tmp/frpc.log"
log.level = "info"
log.maxDays = 7
# 包含其他配置文件
includes = [
"./confd/*.toml"
]- 修改脚本配置:
编辑
tun脚本,更新以下变量:
CONFD_DIR="$HOME/.frp/confd"
FRPC_CONFIG="$HOME/.frp/frpc.toml"
REMOTE_HOST="your-server-ip"
PORT_RANGE_START=7010
PORT_RANGE_END=7020~/.frp/
├── frpc.toml # 主配置文件
├── confd/ # 隧道配置目录
│ ├── *.toml # 各个隧道的配置文件
│ ├── tcp_proxy.toml # 示例 TCP 配置
│ └── http_proxy.toml # 示例 HTTP 配置
└── tun # 管理脚本
[[proxies]]
name = "my-app"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3000
remotePort = 7013[[proxies]]
name = "web-server"
type = "http"
localPort = 8080
subDomain = "web-server"脚本使用不同颜色显示不同类型的信息:
- 🔵 蓝色 [INFO]: 一般信息提示
- 🟢 绿色 [SUCCESS]: 操作成功
- 🟡 黄色 [WARNING]: 警告信息
- 🔴 红色 [ERROR]: 错误信息
[ERROR] 隧道名称 '8080' 已存在,请使用其他名称
解决方案: 使用不同的隧道名称或端口号
[ERROR] 端口范围 7010-7020 已满,无法分配新端口
解决方案: 停止一些不用的隧道或修改端口范围
[ERROR] 未找到 frpc 命令,请确保 frp 已正确安装
解决方案: 安装 frp
brew install frp[ERROR] 配置文件不存在: /opt/homebrew/etc/frp/frpc.toml
解决方案: 检查配置文件路径是否正确
如果脚本无法自动重启服务,可以手动操作:
# 停止 frpc 进程
pkill -f "frpc.*frpc.toml"
# 启动 frpc 服务
nohup frpc -c /opt/homebrew/etc/frp/frpc.toml > /dev/null 2>&1 &frpc 日志文件位置:/frp/logs/frpc.log
查看日志:
tail -f /frp/logs/frpc.log- ✅ 初始版本发布
- ✅ 支持 TCP 和 HTTP 隧道创建
- ✅ 自动端口管理和服务重启
- ✅ 完整的命令行界面
我们欢迎任何形式的贡献!如果你想要贡献代码、报告问题或提出建议,请:
- Fork 这个项目
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
- 确保代码符合 bash 最佳实践
- 添加适当的错误处理
- 更新相关文档
- 测试你的更改
如果你发现了 bug 或有功能请求,请:
- 检查 Issues 是否已经存在
- 如果没有,请创建新的 issue
- 提供详细的错误信息和复现步骤
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- frp - 强大的内网穿透工具
- 所有贡献者和用户
如有问题或建议,请检查:
- frp 是否正确安装
- 配置文件是否存在且格式正确
- 网络连接是否正常
- 端口是否被占用
注意: 使用前请确保 frp 服务端已正确配置并运行。