Frp Dockr Mysql内网映射
用 FRP 远程暴露 Mac mini 上的 Docker-MySQL(含 Ubuntu frps 安装和 macOS 客户端配置)
一、环境说明
- 服务器(公网):Ubuntu 22.04 + frps
- 内网设备:macOS (Mac mini) + frpc + Docker MySQL
- 目标:公网通过
<服务器公网IP>:13306
访问内网 Docker 中的 MySQL 服务。 - 官方文档:https://gofrp.org/zh-cn/docs
二、服务器端配置(Ubuntu)
1. 安装并配置 frps:
# 创建专用 frp 用户并下载安装 frps 到 /opt/frp
sudo useradd --system --no-create-home --shell /usr/sbin/nologin frp
curl -L https://github.com/fatedier/frp/releases/download/v0.60.1/frp_0.60.1_linux_amd64.tar.gz | sudo tar -xz -C /tmp
sudo mv /tmp/frp_0.60.1_linux_amd64 /opt/frp
sudo chown -R frp:frp /opt/frp
2. 配置 /opt/frp/frps.toml:
# 监听 7000 等待客户端连入(默认 TCP,QUIC/KCP 可选)
bindAddr = "0.0.0.0"
bindPort = 7000# 可选:仪表盘 http://<IP>:7500
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "changeme"# 令牌认证,务必与 frpc 保持一致
auth.method = "token"
auth.token = "Token2025"# 只允许映射端口 13306,避免误开放其他端口
allowPorts = [{ single = 13306 }]log.to = "./frps.log"
log.level = "info"
三、客户端配置(Mac mini)
使用 Homebrew 安装 frpc:
brew install frpc
2. 配置 frpc(/opt/homebrew/etc/frp/frpc.toml)
# 指向公网服务器
serverAddr = "<公网服务器IP>"
serverPort = 7000auth.method = "token"
auth.token = "Token2025"# 只要 mysql 容器在宿主机暴露 3306,就用 127.0.0.1
[[proxies]]
name = "mysql"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306 # 容器已通过 -p 3306:3306 映射到宿主
remotePort = 13306 # 暴露到公网的端口,可自定义
transport.useEncryption = true # 流量 TLS,加密
transport.useCompression = true # 传输压缩
3.启动 frpc 并设置开机自启
brew services start frpc
brew services list
tail -f /opt/homebrew/var/log/frpc.log
四、遇到的问题
1、第一次在公网root根目录启动失败,后来新建frp用户,把文件放到/opt/目录下启动成功。
2、toml文件配置有问题,刚开始查的教程是老版本的ini文件配置,后来看官网使用toml文件配置。
3、brew services启动失败,使用清华源配置环境变量后:
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_INSTALL_FROM_API=1source ~/.zshrc
重新启动成功