当前位置: 首页 > news >正文

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

重新启动成功
在这里插入图片描述

相关文章:

  • 乘法逆元:费马小定理(利用快速乘法幂)(JAVA)
  • JAVA批量发送邮件(含excel内容)
  • 在 Excel xll 自动注册操作 中使用东方仙盟软件2————仙盟创梦IDE
  • 算法打卡第三天
  • C#开发利器:SharpBoxesCore全解析
  • 49、c# 能⽤foreach 遍历访问的对象需满足什么条件?
  • Unity3D序列化机制详解
  • CMMI(能力成熟度模型集成)详解及5个级别案例
  • 平衡二叉树的判定:回溯法的深度解析与迭代法拓展
  • 台风灾害下考虑调节特性的多元资源紧急协调调度
  • vue3:十三、分类管理-表格--模糊查询搜索框
  • 腾讯位置服务重构出行行业的技术底层逻辑
  • Java SE 抽象类和接口(下)
  • 【题解-洛谷】B4240 [海淀区小学组 2025] 最短字符串
  • NIFI的处理器:ExecuteGroovyScript 2.4.0
  • C# AI(Trae工具+claude3.5-sonnet) 写前后端
  • A1-A2 英语学习系列 第五集
  • Java枚举详解
  • 抽象:C++命名作用域与函数调用
  • IO pin的transition约束从哪来?
  • 对话生态学者:如果地球重启,人类会被“格式化”吗?|涟漪效应
  • 四川6月龄男婴确诊心衰、重症肺炎:治疗缺钱,母亲发起求助
  • 中国工程院院士范先群获评“上海健康科普特别贡献人物”
  • 中国建设银行原党委委员、副行长章更生被决定逮捕
  • 甘肃白银煤矿透水事故最新进展:3名被困矿工已无生命体征
  • 习近平:推进中国式现代化要继续把制造业搞好