Docker部署frp教程指南

为什么选择Docker部署frp

frp 是目前最流行的内网穿透工具之一,而 Docker 能帮我们免去手动编译、依赖安装的麻烦。
Docker 部署 frp 只需拉取官方镜像,挂载一个配置文件就能启动,升级或回退版本也只需更换镜像标签。
下面我按零基础能直接跟着做的顺序,把从准备到验证的完整流程拆开讲清楚。

第一步:准备服务器与安装Docker

你需要一台有公网 IP 的云服务器(用作服务端)和一台内网机器(用于客户端)。
服务端推荐 1 核 1G 以上配置,操作系统不限,但本文以 Ubuntu 22.04 为例。

先确认 Docker 已安装:

sudo docker --version

如果没有输出版本号,请执行安装命令:

curl -fsSL https://get.docker.com | sudo sh

安装完成后把当前用户加入 docker 组(避免每次加 sudo):

sudo usermod -aG docker $USER
newgrp docker

第二步:编写frp配置文件

Docker 容器内使用配置文件的方式是挂载本地目录。
建议在服务端和客户端分别创建 frp 工作目录。

服务端配置(frps.ini)

在服务端执行:

mkdir -p ~/frp-server && cd ~/frp-server
vim frps.ini

写入以下内容(端口根据需求调整):

[common]
bind_port = 7000
bind_addr = 0.0.0.0
vhost_http_port = 8080

token = your-secure-token-123

保存后退出。
其中 token 是连接密码,客户端必须一致。

客户端配置(frpc.ini)

在需要穿透的内网机器上执行:

mkdir -p ~/frp-client && cd ~/frp-client
vim frpc.ini

写入示例:

[common]
server_addr = 你的服务端公网IP
server_port = 7000
token = your-secure-token-123

[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
remote_port = 8080

这个配置将内网机器上 8080 端口的 web 服务暴露到服务端的 8080 端口。

第三步:启动frp容器

启动服务端

docker run -d --name frps --restart=always \
  -p 7000:7000 -p 8080:8080 \
  -v ~/frp-server/frps.ini:/etc/frp/frps.ini \
  snowdreamtech/frps:latest
注意:-p 参数要把配置文件中使用的端口都映射出来(bind_port、vhost_http_port 等)。

启动客户端

docker run -d --name frpc --restart=always \
  --network host \
  -v ~/frp-client/frpc.ini:/etc/frp/frpc.ini \
  snowdreamtech/frpc:latest

--network host 让客户端直接使用宿主机网络,避免端口映射冲突(尤其在内网机器上)。

第四步:验证穿透是否生效

先在服务端检查 frps 日志:

docker logs frps --tail 20

看到类似 start frps successbind on port 7000 说明启动正常。
再查看客户端 frpc 日志:

docker logs frpc --tail 20

如果出现 login to server success 并且 start proxy success,说明连接成功。
此时在浏览器访问 http://服务端公网IP:8080,应该能看到内网机器上的 web 服务页面。

避坑与高频问题解答

Q:客户端一直报 login error?

  • 检查服务端防火墙是否放行了 7000 端口(以及你配置的其他端口)。
  • 确认 frps.ini 和 frpc.ini 中的 token 完全一致,无多余空格。

Q:服务端端口被占用怎么办?

  • 修改 frps.ini 中的 bind_port 为其他值,比如 7001。注意同时修改 -p 参数和客户端 server_port。

Q:容器启动后立刻退出?

  • docker logs 容器名 查看错误信息,通常是配置文件格式错误或路径挂载不对。检查 frp.ini 是否为纯文本、无 BOM 头。

Q:穿透后访问很慢?

  • 内网穿透速度受限于服务端带宽,建议在服务端开启 frps Dashboard 监控流量,或改用 TCP 模式减少协议开销。

总结

通过 Docker 部署 frp 确实能大幅降低门槛。
你只需要准备两个配置文件,执行两段 docker run 命令,就能在内网和外网之间架起一座隧道。
建议在正式使用前先做一次完整的 Docker 部署 frp 流程验证,确保 token 和端口无误后再投入生产。
如果在操作中遇到其他报错,优先检查防火墙和日志输出,这俩能解决 90% 的问题。

分享到:
上一篇
Linux服务器网络故障排查工具:零基础也能用的诊断指南
下一篇
服务器内网穿透教程:零基础实现服务器内网穿透
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意