🚀 FRP 内网穿透极简教程 (Docker + TOML 版)
⚠️ 重要提示 / Important Note
本教程采用 Host Network(主机网络模式)部署。
适用系统:仅限 Linux 服务器(CentOS、Ubuntu、Debian 等)。
不适用:Windows 或 macOS 的 Docker Desktop 环境(这些系统需使用 Bridge 模式并手动映射端口)。
通过本教程,您将使用 Docker 快速搭建 FRP 服务,实现外网访问内网的 SSH 或其他服务。
🛠️ 前置准备 (Prerequisites)
- 服务端 (Server):一台拥有公网 IP 的 Linux 云服务器。
- 客户端 (Client):需要被访问的内网 Linux 设备(如 NAS、树莓派、Linux 开发机)。
- Docker:确保两端均已安装 Docker。
- 防火墙 / 安全组:这是最容易出错的一步!请务必在云服务器后台放行以下端口(TCP):
7000(FRP 通信端口)7500(仪表盘端口)8022(本次示例的 SSH 映射端口)
1️⃣ 服务端部署 (Server Side)
操作位置:公网 Linux 服务器
1.1 创建配置文件
创建存放配置的文件夹,并新建 frps.toml 文件:
mkdir -p /root/frp
vim /root/frp/frps.toml
1.2 写入配置内容
复制以下内容(按需修改密码):
[common]
# 监听端口 (Bind Port)
bind_port = 7000
# 面板端口 (Dashboard)
dashboard_port = 7500
# 登录面板账号设置
dashboard_user = "admin"
dashboard_pwd = "sb10086"
# HTTP/HTTPS 协议下代理端口(非重要,不做 Web 穿透可忽略)
vhost_http_port = 7080
vhost_https_port = 7081
# 身份验证 Token(重要)
token = "sb10086"
1.3 启动 Docker 容器
使用 host 模式启动,无需手动映射端口:
docker run -d \
--name frps \
--restart=always \
--network host \
-v /root/frp/frps.toml:/etc/frp/frps.toml \
snowdreamtech/frps
2️⃣ 客户端部署 (Client Side)
操作位置:内网 Linux 机器
2.1 创建配置文件
创建文件夹并新建 frpc.toml:
mkdir -p /root/frp
vim /root/frp/frpc.toml
2.2 写入配置内容
注意:将 x.x.x.x 替换为您服务器的真实公网 IP。
[common]
# 服务器 IP 地址 (Server Address)
server_addr = "x.x.x.x"
# 服务器监听端口
server_port = 7000
# 身份验证 Token(必须与服务端一致)
token = "sb10086"
# --- 映射规则区域 ---
[ssh]
# 连接类型
type = "tcp"
# 目标 IP(本机)
local_ip = "127.0.0.1"
# 目标端口(SSH 默认端口)
local_port = 22
# 远程端口(Remote Port):外网访问时使用的端口
remote_port = 8022
2.3 启动 Docker 容器
docker run -d \
--name frpc \
--restart=always \
--network host \
-v /root/frp/frpc.toml:/etc/frp/frpc.toml \
snowdreamtech/frpc
3️⃣ 验证与使用 (Verification)
3.1 检查运行状态
在服务端运行以下命令,确保容器状态为 Up:
docker ps
或访问仪表盘:
👉 http://服务器IP:7500
- 账号:
admin - 密码:
sb10086
3.2 进行连接测试
现在,您可以在任何地方通过公网连接回家了:
# 注意使用 -p 指定我们在配置文件中设置的 remote_port
ssh -p 8022 [email protected]
✅ 连接成功即表示 FRP 配置生效,内网服务已成功穿透至外网。