Grafana 远程访问实战:本地 3000 端口跑通后,再配置固定公网入口
前言
我对监控系统有一个很固定的习惯:先确认本地看板是真的正常,再去碰网络。
因为很多远程访问问题,最后查半天才发现不是隧道坏了,而是 Grafana 自己就没启动、端口没开,或者页面本地都打不开。对我来说,这种"把两层问题混在一起查"最浪费时间。
所以这篇不从"全球访问"这种大词开始,而是按一条更稳的顺序来:
先在虚拟机里装好 Grafana → 浏览器确认 3000 页面能打开 → 再安装cpolar→ 用随机公网地址验证 → 最后再换成固定二级子域名。
原文没有真实记录"某次出差突然要看大盘"的具体经历,所以我不会硬编。但它明确提到办公室、家里、旅途中远程查看数据看板,这类场景很适合代入:
如果本地 Grafana 已经跑得好好的,真正麻烦的往往只是------人离开了这个局域网。
这篇的人物性格会一直保持一致:偏谨慎、喜欢分层排查、不爱一上来就改一堆网络配置。
1. 先把 Grafana 在虚拟机里跑起来
原文第一步是在 CentOS 环境里关闭防火墙和 SELinux。
下面命令属于源文技术步骤,本版不擅自修改:
shell
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
接着安装 Grafana。
原文同时列出了多种 Linux 发行版的安装方式。
Ubuntu / Debian 64 位
shell
sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_12.1.0_amd64.deb
sudo dpkg -i grafana-enterprise_12.1.0_amd64.deb
Standalone Linux Binaries 64 位
shell
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-12.1.0.linux-amd64.tar.gz
Red Hat / CentOS / RHEL / Fedora 64 位
shell
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0-1.x86_64.rpm
OpenSUSE / SUSE 64 位
shell
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0-1.x86_64.rpm
sudo rpm -Uvh grafana-enterprise-12.1.0-1.x86_64.rpm
实际演示环境是 CentOS 7,所以正文真正执行的是:
shell
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-12.1.0-1.x86_64.rpm

安装完成后启动 Grafana,并设置开机自启:
shell
systemctl restart grafana-server
systemctl enable grafana-server
再查看已经安装的 Grafana 版本:
shell
grafana-cli -version

然后浏览器打开服务器的 3000 端口。
原文示例地址是:
http://192.168.42.101:3000/
并保留了下面这个写法:
shell
ip:3000

到这里,如果页面能正常打开,我才会认为Grafana 本地链路已经成立。
这一点看似普通,但很重要。后面做公网访问时,如果本地 3000 本身都不通,就没必要先怀疑 cpolar。
2. 为什么本地正常以后,还要再做一层公网访问?
Grafana 本身已经能在局域网里工作,问题只在于访问范围。
可以把场景想得很具体:
办公室里大屏一直挂着 Grafana,白天看没问题。晚上回家后突然想确认一眼某个趋势,如果没有公网入口,就只能等回到同一个网络再看。
这里需要解决的是"能不能从外面打开页面",不是 Grafana 的监控功能。
所以从这一节开始,cpolar 只承担一个职责:
把已经存在的 Grafana Web 页面从局域网提供到公网。
3. 安装 cpolar
原文使用下面的一键安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后,查看 cpolar 服务状态:
shell
sudo systemctl status cpolar

服务启动后,原文写的是通过虚拟机主机 IP + 9200 端口进入 cpolar Web UI。
源文显示文本为:
http://192.168.42.101:9200
但它的 Markdown 链接实际指向:
http://localhost:9200/
这两个写法在源文里并不一致。本版不擅自替它统一,只把这个差异明确说明。

登录后即可进入 cpolar Web 配置界面。
4. 先创建随机公网地址做连通性验证
登录 cpolar Web UI 后,进入【隧道管理 → 创建隧道】。
原文正文中明确写出的参数只有:
- 隧道名称:
grafana - 名称不要与已有隧道重复
其余配置内容主要体现在原截图里,源文文字没有完整逐项写出。因此这一版不会根据 Grafana 的 3000 端口去擅自补全隧道字段,而是继续按原文图片操作。

创建成功后,进入在线隧道列表,可以看到新生成的公网地址。

接着换到其他电脑或移动设备访问。

页面能打开,说明这一步最关键的事情已经完成:
Grafana 的本地页面已经能通过公网地址访问。
我会先停在这里确认,而不是立刻去配固定域名。因为随机地址已经足够证明"远程链路是通的"。
5. 长期使用时,再配置固定二级子域名
如果只是临时查看,随机地址已经可以使用。
如果准备长期保存 Grafana 的远程入口,再继续配置固定二级子域名。
原文进入 cpolar 的预留功能:

地区选择:
china top
原文示例二级子域名名称为:
grafana3

接着回到 cpolar Web UI,在隧道列表中找到 grafana,点击编辑。

将保留好的二级子域名配置到隧道:
- 域名类型:二级子域名
Sub Domain:填写保留成功的二级子域名- 地区:
China Top
点击更新。

更新完成后,在线隧道列表中的地址会切换成固定二级子域名。

最后再使用固定公网地址打开 Grafana 页面。

能够正常访问,说明固定远程入口已经跑通。
总结
这篇真正完成的事情其实很简单,但逻辑要分清:
Grafana 负责可视化,cpolar 负责远程访问。
原文实际跑通了这条链:
- CentOS 7 环境安装 Grafana Enterprise
12.1.0 - 启动
grafana-server - 设置开机自启
- 使用
grafana-cli -version查看版本 - 浏览器访问
http://192.168.42.101:3000/ - 本地 Grafana 页面正常打开
- 安装cpolar
- 使用
9200进入 cpolar Web UI - 创建名为
grafana的隧道 - 随机公网地址先完成远程访问验证
- 预留
grafana3二级子域名 Sub Domain回填到隧道- 固定公网地址再次访问成功
这篇的人物性格也一直没变:
我不喜欢把本地服务问题和公网访问问题混在一起查。先证明
3000能开,再证明公网能开,最后才固定地址。
原文结尾提到远程协作、物联网大屏、个人数据大屏等更多使用方向,但正文没有逐项搭建这些场景,因此新版没有把它们写成本文已经完成的结果。
同样,原文用了"全球访问""安全、稳定公网隧道"等较大的判断,但正文实际验证的是页面从其他设备能打开、固定地址能再次打开。所以这一版把结论收回到真正能确认的范围。
对我来说,这套组合最实用的地方不是"让 Grafana 变成云服务",而是:
本地看板已经好用,就别为了远程查看再重做一套系统,只把访问范围扩出去就够了。