VPS 使用 Docker 快速部署 Frp 实现内网穿透¶
Frp 简介¶
Frp (Fast Reverse Proxy) 是一个专注于内网穿透的高性能反向代理应用。它可以帮助您轻松地将内网服务暴露到公网。 项目地址:https://github.com/fatedier/frp
环境要求¶
- 一台具有公网 IP 的服务器(VPS)作为 Frp 服务端
- 一台内网设备作为 Frp 客户端
- 两台设备都需要安装 Docker
服务端 Frp 部署¶
更新系统,并安装 curl 以及 Docker
1. 创建配置目录¶
2. 创建配置文件¶
创建 frps.yaml
配置文件,以下是基础配置说明:
# frp 服务端配置
bindAddr = "0.0.0.0" # 监听所有网卡
bindPort = 7000 # frp 通信端口
# 安全认证配置
auth.method = "token"
auth.token = "token123456" # 请修改为复杂的随机字符串
# Web 管理面板配置
webServer.addr = "0.0.0.0" # 面板监听地址
webServer.port = 7500 # 面板访问端口
webServer.user = "admin" # 面板登录用户名
webServer.password = "admin" # 面板登录密码
3. 创建 Docker Compose 配置¶
创建 docker-compose.yml
文件:
version: "3"
services:
frps:
image: snowdreamtech/frps:0.61.0
container_name: frps
restart: always
network_mode: host
volumes:
- ./frps.yaml:/etc/frp/frps.yaml
4. 启动服务¶
服务启动后,可通过 http://<服务器IP>:7500
访问管理页面。
客户端 Frp 配置¶
同样,需要安装 Docker 以及 curl
创建配置目录
创建配置文件 frpc.yaml
,配置说明如下:
# frp 服务端连接信息
serverAddr = "x.x.x.x" # 替换为你的服务器公网 IP
serverPort = 7000 # 与服务端配置保持一致
# 安全认证配置
auth.method = "token"
auth.token = "token123456" # 与服务端配置保持一致
# SSH 服务穿透配置示例
[[proxies]]
name = "ssh" # 代理服务名称
type = "tcp" # 协议类型
localIP = "127.0.0.1" # 本地服务 IP
localPort = 22 # 本地服务端口
remotePort = 6000 # 映射到服务器的端口
2. 创建 Docker Compose 配置¶
创建 docker-compose.yml
文件:
version: "3"
services:
frpc:
image: snowdreamtech/frpc:0.61.0
container_name: frpc
restart: always
network_mode: host
volumes:
- ./frpc.yaml:/etc/frp/frpc.yaml
3. 启动服务¶
服务端一键部署脚本¶
将以下内容保存为 install_frps.sh
:
#!/bin/bash
# 更新系统并安装必要组件
sudo apt update && sudo apt install -y curl
# 安装Docker
curl -fsSL https://get.docker.com | sh
# 创建frps目录
mkdir -p frps && cd frps
# 创建配置文件
cat > frps.yaml << EOF
bindAddr = "0.0.0.0"
bindPort = 7000
auth.method = "token"
auth.token = "token123456"
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
EOF
# 创建docker-compose配置
cat > docker-compose.yml << EOF
version: "3"
services:
frps:
image: snowdreamtech/frps:0.61.0
container_name: frps
restart: always
network_mode: host
volumes:
- ./frps.yaml:/etc/frp/frps.yaml
EOF
# 启动服务
docker compose up -d
echo "Frp服务端部署完成!"
echo "请访问 http://服务器IP:7500 进入管理界面"
使用方法:
客户端一键部署脚本¶
将以下内容保存为 install_frpc.sh
:
#!/bin/bash
# 更新系统并安装必要组件
sudo apt update && sudo apt install -y curl
# 安装Docker
curl -fsSL https://get.docker.com | sh
# 创建frpc目录
mkdir -p frpc && cd frpc
# 创建配置文件
# 修改以下配置 serverAddr 为服务端地址,serverPort 为服务端端口,auth.token 为服务端认证token
cat > frpc.yaml << EOF
serverAddr = "0.0.0.0"
serverPort = 7000
auth.method = "token"
auth.token = "token123456"
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
EOF
# 创建docker-compose配置
cat > docker-compose.yml << EOF
version: "3"
services:
frpc:
image: snowdreamtech/frpc:0.61.0
container_name: frpc
restart: always
network_mode: host
volumes:
- ./frpc.yaml:/etc/frp/frpc.yaml
EOF
# 启动服务
docker compose up -d
echo "Frp客户端部署完成!"
echo "请访问 http://localhost:40001 进入管理界面"
使用方法:
重要安全提示¶
- 务必修改默认的
auth.token
,建议使用随机字符串生成器生成 - 更改管理面板的默认用户名和密码
- 建议配置防火墙,只开放必要的端口
- 定期检查并更新 frp 版本以修复潜在的安全问题
常见问题排查¶
- 确保服务器防火墙已开放 7000(frp 通信端口)和 7500(管理面板端口)
- 检查客户端配置中的
serverAddr
是否正确填写了服务器公网 IP - 验证服务端和客户端的
auth.token
是否一致
监控和维护¶
1. 日志查看¶
2. 服务状态检查¶
本文阅读量 次本站总访问量 次