当前位置: 首页 > 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

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

http://www.xdnf.cn/news/574813.html

相关文章:

  • C#中Task.Run的线程管理最佳实践与并发控制
  • FPGA设计需要学什么?
  • Shell入门篇二
  • Seata1.8.0安装部署流程linux
  • 动态规划2
  • 编程技能:字符串函数09,strncmp
  • 阿里云数据盘级别
  • C++ for QWidget:正则表达式和QRegExp
  • 六:操作系统虚拟内存之页替换算法
  • 101个α因子#12
  • nmtui工具使用教程
  • Halcon数据类型
  • RUP的9个核心工作流在电商平台项目中的拆解
  • 操作系统理解(xv6)
  • java进阶 1.0.2
  • ai建模平台:AnKo革新智能创作体验新纪元!
  • 以加减法计算器为例,了解C++命名作用域与函数调用
  • Vue3使用DataV报错无法使用的解决方案
  • 使用allure生成自动化测试报告
  • 通过TDE透明加密实现SQL Server数据库免改造加密
  • 反弹shell
  • MySQL临时表和内存表
  • C11 日期时间处理案例
  • AtCoder 第406场初级竞赛 A~E题解
  • 学习黑客了解密码学
  • Coze工作流-变量以及变量的类型讲解
  • 最新版Chrome浏览器调用ActiveX控件之eDrawings Viewer专用包v2.0.42版本发布
  • 【AI流程应用】智能知识库搭建与实战应用
  • RK3588 RKNN ResNet50推理测试
  • Spring 定时器和异步线程池 实践指南