Docker 部署 FRP 客户端避坑指南
适用于: Linux (Ubuntu/CentOS) + Docker 环境,目标是穿透本地 SSH 或其他服务。
核心结论
不要使用 Docker 默认的网络模式,直接使用 Host 模式 + 强制指定 DNS。
这将解决:容器内网不通、DNS 解析失败、路由器重启导致 IP 变动失效等所有常见问题。
1. 部署命令 (模版)
直接复制替换参数,一步到位:
|
|
本地地址 (Local IP): 填 127.0.0.1
原因: 配合 Host 模式,127.0.0.1 永远指向本机。即使路由器分配的局域网 IP 变了(如 .12 变 .13),配置依然有效。
本地端口 (Local Port): 填 22 (SSH) 或其他真实端口
远程端口 (Remote Port): 填公网服务器已放行的端口 (如 8080, 2222 等)
3. 故障排查速查表
如果状态不是 Online,按以下顺序检查:
看日志 (唯一真理):
|
|
常见报错及对策:
dns lookup error/i/o timeout: 没加--dns参数,容器断网了。connect to server failed: 公网服务器挂了,或参数填错。connect to 127.0.0.1:22 connection refused: 没加--network host参数,容器里找不到 SSH 服务。remote port is already in use: 公网端口被占,去网页换个远程端口。
一句话总结:
Docker 跑 FRP,认准 --network host 和 --dns,内网 IP 填 127.0.0.1,永远不掉线。