不用公网 IP!在家秒连公司内网 MariaDB!cpolar 内网穿透实验室第 785 个成功挑战

0 阅读14分钟

在这里插入图片描述

软件名称: cpolar(内网穿透工具) MariaDB(开源数据库) mysqld_exporter(数据库监控工具) Prometheus(监控平台)

操作系统支持: cpolar 支持 Linux(Debian/Ubuntu/CentOS 等)、Windows、macOS; MariaDB 适配 Debian 12/11、CentOS、Ubuntu 等主流 Linux 系统

软件介绍

cpolar 是一款轻量又安全的内网穿透工具,不用折腾公网 IP、不用开放防火墙端口,一条命令就能把内网的 MariaDB、NAS、服务器等服务映射到公网; MariaDB 是媲美 MySQL 的开源数据库,稳定又免费,是中小企业和开发者的首选;搭配 mysqld_exporter+Prometheus,还能实时监控 MariaDB 的性能、连接数、慢查询,数据库出问题早知道。

在这里插入图片描述

cpolar 的出色功能

cpolar 最绝的地方,就像给你的内网 MariaDB 开了一扇 “加密后门”—— 不用撬墙(改防火墙)、不用找钥匙(申请公网 IP),只有你能打开!

  • 免公网 IP 穿透:不管是公司内网的 Debian 12 服务器,还是家里的 NAS,没有公网 IP 也能让外网访问,相当于给内网服务办了 “全球通行证”;
  • 固定 TCP 地址:随机端口怕记不住?cpolar 能保留固定 TCP 地址,连 MariaDB 的地址永远不变,不用每次都查新地址,比记自家 WiFi 密码还简单;
  • 加密传输:数据传输全程加密,就像给数据库访问加了 “保险箱”,比咖啡店里连公共 WiFi 还安全,不怕数据泄露;
  • 跨系统适配:Linux/Windows/macOS 通吃,装在 Debian 12 上配 MariaDB,装在 Windows 上连内网打印机,一个工具搞定所有内网穿透需求。

在这里插入图片描述

实用场景

场景 1:运维居家处理内网 MariaDB 故障(痛点→爽点)
  • 痛点:半夜公司 MariaDB 数据库连接数爆了,运维得从被窝爬起来去公司,路上堵车 1 小时,到公司还得找运维同事开门禁,折腾半天才能登录服务器;
  • 爽点:用 cpolar 提前配置好 MariaDB 的内网穿透,在家打开电脑,输入mysql -h 8.tcp.cpolar.top -P 11849 -u remote_user -p,30 秒连进内网数据库,改完连接数限制,躺回被窝继续睡,全程不用出门。
场景 2:开发出差调试内网 MariaDB 数据(痛点→爽点)
  • 痛点:出差在外,客户要验证新功能的数据库数据,本地开发环境在内网,只能让同事截图、导数据,沟通半天还搞错,客户催着要结果,急得直冒汗;
  • 爽点:用 cpolar 把内网 MariaDB 映射到公网,高铁上用笔记本连 cpolar 的固定地址,直接操作内网数据库,改数据、查日志一气呵成,客户当场说 “就选你们家的方案”,出差还能顺便摸鱼看风景。

在这里插入图片描述

cpolar 内网穿透技术带来的便利

用 cpolar 搞定 MariaDB 的远程访问,便利程度堪比 “外卖送到家”—— 不用自己做饭(折腾公网 IP / 防火墙),不用出门取餐(去公司操作),想吃就吃(想连就连)!

  1. 零网络改造:不用找网管改防火墙规则,不用向运营商申请公网 IP,哪怕是租房的宽带、公司的内网,一条sudo curl https://get.cpolar.sh | sh命令就能装完 cpolar,5 分钟配置好 MariaDB 穿透,小白也能上手;
  2. 全场景适配:不管是在咖啡馆连 WiFi,还是在高铁上用 4G,甚至在国外出差,只要能上网,就能连内网 MariaDB,就像数据库装在自己口袋里,走到哪用到哪;
  3. 低成本高效率:cpolar 有免费版够用,付费版也比申请公网 IP、买 VPN 便宜 N 倍,中小企业一年省下来的钱能多买好几台服务器;而且不用专人维护,配置好就不用管,运维不用再当 “救火队员”,开发不用再等同事传数据,效率直接翻倍;
  4. 监控 + 穿透双保险:搭配 mysqld_exporter 和 Prometheus,既能远程连 MariaDB,又能实时看数据库监控,比如连接数高了、慢查询多了,手机就能收到告警,提前处理故障,不用等客户投诉才发现问题;
  5. 多设备兼容:电脑、手机、平板都能连,用手机端的 MySQL 客户端,躺沙发上也能查内网 MariaDB 的数据,不用总守着电脑,灵活度拉满。

在这里插入图片描述

总结

MariaDB 本身就是中小企业和开发者的 “性价比之王”,稳定又免费,再搭配 cpolar 这款 “内网穿透神器”,直接打破了 “内网服务只能本地用” 的魔咒 —— 不用公网 IP、不用改防火墙、不用高成本运维,就能安全、便捷地远程访问 MariaDB。不管是运维应急处理故障,还是开发异地调试代码,又或是小企业实现全员远程办公,cpolar+MariaDB 的组合都能一站式搞定,就像给你的数据库装了 “远程翅膀”,想飞哪就飞哪!

本文将带你从零开始,在Debian 12系统上完整搭建一套生产级MariaDB服务,并同步实现两大关键能力:

实时监控:通过mysqld_exporter+Prometheus 构建可观测性体系,让数据库性能、连接状态、慢查询等指标一目了然;

安全远程访问:借助Cpolar内网穿透工具,无需改动防火墙、无需申请公网 IP,即可从家中、咖啡馆甚至高铁上,安全连接到公司内网的MariaDB实例。

整套方案全部基于开源工具,部署简单、成本为零,且严格遵循最小权限原则,兼顾功能性与安全性。无论你是系统管理员、开发工程师,还是正在学习数据库运维的学生,都能通过本文快速掌握这一实用技能。准备好了吗?让我们一起打通“最后一公里”,让内网数据库真正为你所用!

image-20260130162504654

1.配置前提条件

在正式开始安装和配置MariaDB之前,请确保您已做好以下准备工作,以保障后续操作顺利进行:

  • 一台运行Debian 12的操作系统环境:该服务器应已成功安装并正常启动,且能够稳定接入互联网,以便下载官方软件包及依赖项。
  • 具备管理员权限的用户账户:您需要拥有一个具有sudo权限的非root用户账户。
  • 可交互的命令行终端:无论是通过SSH远程连接,还是在物理机/虚拟机上本地登录,您都需要打开一个终端窗口,用于执行后续的命令行操作。
  • 一款熟悉的文本编辑器:在配置MariaDB的过程中,您可能需要编辑配置文件(如 /etc/mysql/mariadb.conf.d/50-server.cnf)。请确保系统中已安装并熟悉至少一种命令行文本编辑器,例如轻量级的nano、功能强大的vim,或其他您习惯使用的编辑工具。

小贴士:建议在操作前更新系统软件包列表(sudo apt update),以确保安装的是最新稳定版本的MariaDB,并减少潜在的兼容性问题。

image-20260130104050955

完成以上准备后,您就已为MariaDB的安装、安全加固与初始化配置打下了坚实基础。

2.安装MariaDB

2.1系统升级

始终建议在安装之前安装最新的系统软件包以避免依赖性问题。运行以下命令:

sudo apt update && sudo apt upgrade -y

image-20260130104419390

2.2 安装所需的软件包

接下来,安装必要的软件包,如下所示:

sudo apt install curl software-properties-common dirmngr -y

image-20260130104636334

2.3 添加MariaDB APT存储库

分别运行以下命令导入MariaDB签名密钥并添加MariaDB APT存储库:

curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
sudo bash mariadb_repo_setup --mariadb-server-version=10.6

2.4 在Debian上安装MariaDB

接下来,更新软件包并安装MariaDB服务器

sudo apt update
sudo apt install mariadb-server mariadb-client

image-20260130105000355

2.5 启动并启用MariaDB

现在运行以下命令来启动 MariaDB 并使其在系统重新启动时自动启动:

sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb

image-20260130105140346

2.6 安全的MariaDB安装

成功安装MariaDB后,请按如下所示继续保护它:

image-20260130105344610

2.7 检查MariaDB版本

要检查MariaDB版本,我们需要登录MariaDB,如下所示。如果您设置了root密码,请使用 -p

mysql -u root -p

image-20260130105515707

然后运行以下MySQL命令来检查MariaDB版本:

SELECT VERSION();

image-20260130105541118

2.8 MariaDB基本命令

MariaDB创建数据库:

CREATE DATABASE shan;

image-20260130105718074

MariaDB添加用户并授予权限:

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'localhost'; 
 
FLUSH privileges;
 
SHOW GRANTS FOR 'myuser'@'locahost';

image-20260130110051977

创建表并添加数据MariaDB: 创建数据库后,您可以创建表并向其中添加数据。

CREATE TABLE shan (id INT, name VARCHAR(20), email VARCHAR(20));
INSERT INTO shan (id,name,email) VALUES(01,"lorna","[email]");

image-20260130110840322

MariaDB清理: 要完全删除MariaDB,请运行以下命令。

sudo apt purge mariadb-server
sudo rm -rf /var/lib/mysql/

3.使用mysql_exporter监控MariaDB

3.1 为什么用mysqld_exporter监控MariaDB?

因为它是“用一套工具,监控两个世界”的典范。

  • 兼容性好:MariaDB ≈ MySQL协议
  • 功能全面:覆盖性能、连接、复制、资源等核心维度
  • 生态成熟:Prometheus + Grafana开箱即用
  • 官方认可:MariaDB社区明确推荐

因此,无需寻找“MariaDB Exporter”——直接使用mysqld_exporter就是最优解。

3.2 安装mysql_exporter

在prometheus的官网下载对应的mysql_exporter的linux版本:Download | Prometheus

image-20251124150101916

下载完成后上传到/app目录下:

image-20251124150459790

也可以使用这个命令一键安装(可自定义版本):

wget
https://github.com/prometheus/mysqld_exporter/releases/download/v0.18.0/mysqld_exporter-0.18.0.linux-amd64.tar.gz

解压mysql_exporter压缩文件:

tar -zxvf mysqld_exporter-0.18.0.linux-amd64.tar.gz

image-20251124150544662

修改mysql_exporter文件名:

mv mysqld_exporter-0.18.0.linux-amd64/ mysqld_exporter

image-20251124152121251

3.3 启动mysql_exporter

创建mysql用户与权限,在MySQL数据库中创建一个专门用于监控的用户,并赋予其足够的权限来查询所需的信息:

GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqld_exporter'@'localhost' identified by '12345678';
GRANT SELECT ON performance_schema.* TO 'mysqld_exporter'@'localhost';
flush privileges;

image-20260130145658494

创建一个文件,输入我们刚创建好的用户名及密码:

vi localhost_db.cnf
[client]
user=exporter
password=12345678

image-20260130145823202

创建mysql_exporter服务:

vi /etc/systemd/system/mysqld_exporter.service
[Unit]
Description=exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/app/mysqld_exporter/mysqld_exporter --config.my-cnf=/app/mysqld_exporter/localhost_db.cnf --web.listen-address=:9105
Restart=on-failure
[Install]
WantedBy=multi-user.target

image-20260130151127283

添加prometheus用户,并修改对应权限:

sudo useradd --system --no-create-home --shell /sbin/nologin prometheus
sudo chown -R prometheus:prometheus /app/mysqld_exporter/
sudo chmod 600 /app/mysqld_exporter/localhost_db.cnf

启动服务并设置开机自启动:

sudo systemctl daemon-reload
sudo systemctl start mysqld_exporter
sudo systemctl status mysqld_exporter  # 查看是否成功
sudo systemctl enable mysqld_exporter  # 设置开机自启(可选)

image-20260130154546123

4.配置prometheus监控mysql_exporter

没有prometheus的小伙伴可以参考这篇文章:监控不再局域网!Cpolar 让 Prometheus 走出内网限制! - cpolar 极点云官网

找到prometheus的配置文件,编辑添加如下内容:

vi prometheus.yml
      - targets: ["ip:9105"]
        labels:
          app: "mysqld_exporter"

image-20260130154907261

重启prometheus服务:

systemctl restart prometheus

使用浏览器Ip+9090打开promethues的页面:

image-20251125103926501

我们可以看到成功的检测到了mysql_exporter服务啦!

image-20260130155155698

现在,我们已经成功完成了MariaDB的安装,并通过mysqld_exporter与Prometheus构建了一套完整的数据库监控体系,能够实时掌握连接数、查询性能、主从状态等关键指标。然而,在实际工作中,我们常常面临一个现实需求:如何从外部网络(比如家里、出差途中)安全地连接到公司内网的MariaDB数据库?由于公司服务器通常部署在私有网络中,没有公网IP,且出于安全考虑,防火墙不会直接开放3306端口给互联网——这就导致传统的远程连接方式行不通。这时候,就轮到Cpolar闪亮登场了!借助Cpolar的内网穿透能力,我们可以在不改动现有网络架构、无需申请公网IP、不必开放防火墙端口的前提下,建立一条加密、可靠、带身份认证的隧道,将公司内网的MariaDB服务安全地映射到一个公网可访问的地址。这样一来,无论你身处何地,只要拥有授权,就能像访问本地服务一样,安全连接到公司的数据库——真正实现“内网数据库,远程随心连”。接下来,我们就来演示如何用Cpolar安全打通这条连接通道。

5.安装cpolar实现随时随地开发

5.1 什么是cpolar?

cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。

5.2 部署cpolar

cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。

❤️以下是安装cpolar步骤:

使用一键脚本安装命令:

sudo curl https://get.cpolar.sh | sh

image-20250725104019896

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

22e5adfaf290a17fc3384bb296055259

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

8a6698b1bf26d64ba3645827fbfb1c29

6.配置公网地址

通过配置,你可以在本地WSL或Linux系统上运行SSH服务,并通过Cpolar将其映射到公网,从而实现从任意设备远程连接开发环境的目的。

  • 隧道名称:可自定义,本例使用了:MariaDB,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:3306
  • 端口类型:随机临时TCP端口
  • 地区:China Top

image-20260130160538501

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用任意一个地址在终端中访问即可。

  • tcp 表示使用的协议类型

  • 2.tcp.cpolar.top是Cpolar提供的域名

  • 15969是随机分配的公网端口号

image-20260130160625731

通过Cpolar提供的公网地址和端口,MariaDB就可以从任意一台主机连接到啦!

mysql -h 2.tcp.cpolar.top -P 15969 -u remote_user -p

image-20260130161238064

7.保留固定TCP公网地址

使用cpolar为其配置TCP地址,该地址为固定地址,不会随机变化。

选择区域和描述:有一个下拉菜单,当前选择的是“China Top”。 右侧输入框,用于填写描述信息。 保留按钮:在右侧有一个橙色的“保留”按钮,点击该按钮可以保留所选的TCP地址。 列表中显示了一条已保留的TCP地址记录。

  • 地区:显示为“China Top”。

  • 地址:显示为“8.tcp.cpolar.top:11849”。

image-20260130161554736

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道mysql,点击右侧的编辑

image-20260130161631132

修改隧道信息,将保留成功的TCP端口配置到隧道中。

  • 端口类型:选择固定TCP端口
  • 预留的TCP地址:填写保留成功的TCP地址

点击更新

image-20260130161706892

创建完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的TCP地址。

image-20260130161724047

最后测试一下固定的地址是否好用,测试命令:

mysql -h 8.tcp.cpolar.top -P 11849 -u remote_user -p

image-20260130161810132

这样,我们成功打破了“没有公网IP就无法远程访问数据库”的固有认知。

总结

本文完整演示了如何在Debian 12上从零部署MariaDB,通过mysqld_exporter与Prometheus实现专业级监控,并借助Cpolar内网穿透技术,安全实现“在家连接公司数据库”的远程访问需求。整套方案无需公网IP、不开放防火墙端口,兼顾安全性、可观测性与实用性,为开发者和运维人员提供了一套轻量、可靠、开箱即用的数据库远程运维解决方案。