Files
docker-files/frp/README.md
2026-01-22 16:17:14 +08:00

118 lines
2.0 KiB
Markdown

# FRP (Fast Reverse Proxy)
FRP 内网穿透工具镜像,支持服务端 (frps) 和客户端 (frpc)。
## 基础镜像
- `debian:latest`
## 包含组件
| 组件 | 版本 |
|------|------|
| frps | 0.66.0 |
| frpc | 0.66.0 |
## 构建
```bash
# 默认构建
./rebuild.sh frp
# 指定版本
docker build --build-arg FRP_VERSION=0.66.0 -t timi/frp:latest ./frp
# 通过代理下载
docker build --build-arg PROXY=http://proxy:8080 -t timi/frp:latest ./frp
```
## 构建参数
| 参数 | 默认值 | 说明 |
|------|--------|------|
| `FRP_VERSION` | 0.66.0 | FRP 版本号 |
| `PROXY` | (空) | 下载时使用的代理地址 |
## 暴露端口
| 端口 | 说明 |
|------|------|
| 7000 | frps 服务端口 |
| 7500 | frps Dashboard |
| 7400 | frps KCPTUN |
## 使用
### 作为服务端 (frps)
```bash
# 创建配置文件
cat > frps.toml << 'EOF'
bindPort = 7000
webServer.addr = "0.0.0.0"
webServer.port = 7500
EOF
# 运行服务端
docker run -d --name frps \
-p 7000:7000 \
-p 7500:7500 \
-v $(pwd)/frps.toml:/etc/frp/frps.toml \
timi/frp:latest
```
### 作为客户端 (frpc)
```bash
# 创建配置文件
cat > frpc.toml << 'EOF'
serverAddr = "your-server.com"
serverPort = 7000
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["example.com"]
EOF
# 运行客户端
docker run -d --name frpc \
-v $(pwd)/frpc.toml:/etc/frp/frpc.toml \
--entrypoint /usr/local/bin/frpc \
timi/frp:latest -c /etc/frp/frpc.toml
```
### Docker Compose 示例
#### 服务端
```yaml
services:
frps:
image: timi/frp:latest
ports:
- "7000:7000"
- "7500:7500"
volumes:
- ./frps.toml:/etc/frp/frps.toml
restart: unless-stopped
```
#### 客户端
```yaml
services:
frpc:
image: timi/frp:latest
entrypoint: /usr/local/bin/frpc
command: ["-c", "/etc/frp/frpc.toml"]
volumes:
- ./frpc.toml:/etc/frp/frpc.toml
restart: unless-stopped
```
## 配置文件参考
FRP 官方文档: https://gofrp.org/zh-cn/docs/