
使用 Docker / Podman 部署 Frpc 内网穿透客户端
📌 背景
上一篇文章介绍了如何在 Docker / Podman 中搭建 frps 内网穿透服务器,对于 frpc 客户端,同样可以通过 Docker / Podman 来进行部署。
什么是 frp?
frp 是一款 Go 语言编写的,高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。frp 采用 C/S 模式,服务端部署在公网服务器上,客户端连接服务端并配置端口和协议,然后就可以通过公网服务器的对应端口连接客户端服务了。
🌐 环境要求
组件 | 要求 |
---|---|
网络 | 能访问服务端 |
系统 | Linux |
软件 | Docker / Podman 容器 |
🛠️ 准备工作
安装容器运行时
如果你尚未安装容器运行时,请先安装。Docker 或 Podman 均可。
相比 Docker,Podman 有许多优势。我推荐使用 Podman。
Docker
建议参考官方文档安装。
输入以下命令安装 Docker 和 Docker Compose:
1 | # 安装 Docker |
Podman
根据系统类型,选择正确的命令安装 Podman:
1 | # Debian / Ubuntu |
1 | # Fedora / CentOS / RHEL |
🖊️ 创建 frpc 配置文件
frpc 支持 TOML / YAML / JSON 格式的文件。旧版本的 ini 配置格式已经弃用。
具体的配置可以参考官方文档。这里给出一些常用的配置示例以及解释:
1 | # 服务端地址,在双引号内填写 |
填写完成后保存为 frpc.toml
文件。
📦 使用 Docker Compose 部署 frpc
创建容器
这里推荐使用 Docker Compose / Podman Compose 来进行部署。frp 官方未提供 Docker 镜像,这里我们使用用户构建的 frpc 镜像:snowdreamtech/frpc
。
以下为我的 YAML 配置文件:
1 | services: |
解释
网络模式
network_mode
:使用主机网络模式host
。frpc 将直接使用主机的 IP 地址和端口。这里必须指定为host
,否则无法穿透。挂载卷
volumes
:将frpc.toml
文件挂载到容器中。冒号前面的路径请修改为宿主机实际的配置文件路径,冒号后面的路径不可更改。
将上述配置文件代码复制下来,修改好后保存到服务器上,并运行以下命令:
Docker
1 | docker-compose -f 配置文件名 up -d |
Podman
1 | podman-compose -f 配置文件名 up -d |
验证服务是否正常运行
1 | docker logs -f frpc |
如果看到如下输出,则表示服务已经正常运行:
1 | 2025-09-23 07:27:40.113 [I] [sub/root.go:149] start frpc service for config file [/etc/frp/frpc.toml] |
然后就可以尝试通过公网对应端口连接内网服务了!
- 标题: 使用 Docker / Podman 部署 Frpc 内网穿透客户端
- 作者: GT610
- 创建于 : 2025-09-24 09:32:22
- 更新于 : 2025-09-24 09:34:55
- 链接: https://gt-610.dpdns.org/2025/09/24/docker-frpc/
- 版权声明: 本文章采用 CC BY 4.0 进行许可。