skip to content
Logo hxjx blog

在NAT VPS上从零开始部署 Komari 面板并实现公网访问

/ 7 min read

一、准备工作

  1. 一台 NAT VPS:确保您可以通过 SSH 正常登录
  2. 一个域名:并且必须将这个域名的 DNS 管理权交给 Cloudflare

二、安装 Docker 和 Docker Compose (运行环境)

在安装面板之前,我们需要先在您的 NAT VPS 上安装 Docker 运行环境

  1. SSH 登录到您的 NAT VPS
  2. 安装 nano 对于 Debian / Ubuntu 系统 (最常见),只需要执行一行命令来安装它:
Terminal window
apt-get update && apt-get install -y nano
  1. 执行 Docker 官方一键安装脚本:
Terminal window
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

这个脚本会自动检测您的系统,并安装最新版本的 Docker Engine 和 Docker Compose 插件。

  1. 验证安装:
    安装完成后,执行
Terminal window
docker version
Terminal window
docker compose version

如果您能看到版本号输出而没有报错,说明安装成功

三、安装并配置 Komari 面板

  1. 一键生成 docker-compose.yml 文件: 为了避免任何格式错误,请完整复制下面这个灰色代码框里的所有内容,将您的个人信息替换进去,然后一次性粘贴到您的SSH终端中,按回车键。
Terminal window
cat > docker-compose.yml <<EOF
version: '3'
services:
dashboard:
image: ghcr.io/komari-monitor/komari:latest
container_name: komari-dashboard
restart: always
volumes:
- ./data:/app/data
ports:
- "8008:25774"
environment:
- TZ=Asia/Shanghai
- ADMIN_USERNAME=用户名
- ADMIN_PASSWORD=密码
EOF
  1. 启动面板
Terminal window
docker compose up -d

阶段性检查点:此时,您的 Komari 面板已经在您的 NAT VPS 上成功运行了,但外界还无法访问。

四、部署 Cloudflare Tunnel (建立通道)

  1. 修复软件包管理器
Terminal window
sudo dpkg --configure -a
  1. 在 NAT VPS 上安装 cloudflared:
Terminal window
sudo apt-get update && sudo apt-get install curl -y
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo gpg --yes --dearmor --output /usr/share/keyrings/cloudflare-main.gpg
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt-get update && sudo apt-get install cloudflared -y
  1. 授权 cloudflared:
Terminal window
cloudflared tunnel login

复制命令行中出现的那个 https://dash.cloudflare.com/… 链接,在您的本地电脑浏览器中打开,登录并授权您的域名。

  1. 创建隧道: 给隧道起个名字,例如 komari-nat
Terminal window
cloudflared tunnel create komari-nat

记下命令行输出的隧道 UUID 和 credentials 文件路径。

  1. 创建配置文件: 一键生成 config.yml 文件: 同样,为了避免格式错误,请使用以下命令一键生成。请替换为您自己的信息后,再完整复制并执行
Terminal window
mkdir -p /etc/cloudflared/
cat > /etc/cloudflared/config.yml <<EOF
tunnel: 粘贴您上一步获得的隧道UUID
credentials-file: 粘贴您上一步获得的.json文件完整路径
ingress:
- hostname: komari.yourdomain.com # 替换域名
service: http://localhost:8008
- service: http_status:404
EOF
  1. 将域名指向隧道:
Terminal window
cloudflared tunnel route dns komari-nat komari.yourdomain.com # 替换域名
  1. 运行隧道:
Terminal window
cloudflared tunnel run komari-nat

现在,不要关闭这个终端,您的隧道已经临时运行起来了。请立刻打开浏览器,通过 https://komari.yourdomain.com 访问,看看是否能看到面板登录页面。如果成功,我们再进行最后一步。(如果确定上面没问题这第7步可以不做)

五、将隧道设为系统服务 (永久运行)

确认临时运行成功后,按 Ctrl + C 停止它。然后执行以下命令,让隧道在后台永久运行并开机自启。

Terminal window
sudo cloudflared service install
sudo systemctl start cloudflared

现在,您的 Komari 面板已经通过 Cloudflare Tunnel 永久、安全地部署在您的 NAT VPS 上了。您可以随时通过您的域名 https://komari.yourdomain.com 进行访问。

附录更新面板的详细步骤

因为我们使用了 Docker Compose 来部署,将来更新面板的操作会变得非常简单和安全。

您所有的数据(服务器、设置、历史记录等)都保存在 data 文件夹里,更新过程只会替换程序本身,不会触碰您的数据。

  1. 通过 SSH 登录到您安装 Komari 面板的那台 NAT VPS 使用 cd 命令,进入到存放 docker-compose.yml 文件的那个目录。如果您是按照我们的指南操作的,它应该就在您的主目录(~)下,所以您可能登录后就直接在那个目录里了。

  2. 拉取最新的面板镜像 执行以下命令:

Terminal window
docker compose pull

作用:这个命令会连接到 Docker 仓库,检查 ghcr.io/komari-monitor/komari:latest 这个镜像有没有新版本。如果有,它就会在后台下载最新版本的程序文件。这个过程不会影响您当前正在运行的面板。

  1. 使用新镜像重新创建并启动面板

当上一步的下载完成后,执行以下命令:

Terminal window
docker compose up -d

作用:这是最关键的一步。docker compose 非常智能,它会:

比较当前正在运行的容器和您刚刚下载的新镜像。

发现版本不一致,于是它会自动停止并移除旧的面板容器。

然后,用您刚刚下载的最新镜像,重新创建一个新的容器并启动它。

由于 docker-compose.yml 文件中 volumes 的设置,新容器会自动加载您原来的 data 文件夹,所以您的所有配置和数据都会被完美继承,不会有任何丢失。

  1. 清理旧的镜像 更新完成后,旧版本的镜像文件还留在您的服务器上,会占用一些磁盘空间。您可以执行以下命令来安全地清理它们:
Terminal window
docker image prune -f

作用:这个命令会自动删除所有不再被任何容器使用的旧镜像文件,帮您的服务器瘦身。 总结一下,更新过程就是两句话:pull 拉新版,up 换新版。 非常简单!

  1. VPS 上查看密码
Terminal window
docker logs komari-dashboard

在命令输出的日志中,仔细向上查找,您就会找到生成密码的那一行关键信息