文章详情

返回首页

Nat小鸡一键安装komari面板

分享文章 作者: Ws01 创建时间: 2026-03-03 📝 字数: 5,458 字 👁️ 阅读: 2 次

Nat小鸡一键安装komari面板
采用二进制+cloudflared的方式,直接内网穿透无需端口映射
步骤如下:
1.创建一条cloudflare的隧道,拿到里的token,修改端口为localhost:25774
2.复制下方代码,务必修改第一行的 CF_TOKEN 为你自己的。
3.将整段代码粘贴到 SSH 终端中,回车执行。
脚本运行完成后,打开隧道绑定的域名就可以直接访问komari面板了,就是这么简单,就是这么方便

脚本完成后按回车根据提示输入代码即可查看密码

#!/bin/sh

================= 配置区域 =================

export CF_TOKEN="eyJhIjoi..." # <--- 请在这里填入 Tunnel Token

===========================================

echo "⏳ 正在开始部署 (日志版)..."

--- 1. 环境准备 ---

if [ -x "$(command -v apk)" ]; then
apk add --no-cache curl wget
elif [ -x "$(command -v apt-get)" ]; then
apt-get update && apt-get install -y curl wget
elif [ -x "$(command -v yum)" ]; then
yum install -y curl wget
fi

--- 2. 下载与清理 ---

ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
mkdir -p /opt/komari

停止旧进程

pkill -f komari

⚠️ 关键:删除旧数据,强制重置密码

rm -rf /opt/komari/data

echo "⬇️ 正在下载组件..."
wget -qO /opt/komari/komari "https://github.com/komari-monitor/komari/releases/latest/download/komari-linux-${ARCH}"
chmod +x /opt/komari/komari
wget -qO /usr/local/bin/cloudflared "https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-${ARCH}"
chmod +x /usr/local/bin/cloudflared

--- 3. 配置服务 (开启日志记录) ---

if pidof systemd >/dev/null 2>&1 || [ -d /run/systemd/system ]; then
# Systemd: 使用 sh -c 重定向日志到文件
cat > /etc/systemd/system/komari.service <<EOF
[Unit]
Description=Komari Monitor
After=network.target
[Service]
Type=simple
ExecStart=/bin/sh -c '/opt/komari/komari server > /var/log/komari.log 2>&1'
WorkingDirectory=/opt/komari
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
# Cloudflared 不需要看日志,依然静默
cat > /etc/systemd/system/cloudflared.service <<EOF
[Unit]
Description=Cloudflare Tunnel
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/cloudflared tunnel run --token ${CF_TOKEN}
Restart=always
RestartSec=5
StandardOutput=null
StandardError=null
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now komari cloudflared

elif [ -f /sbin/openrc-run ]; then
# OpenRC: 原生支持日志文件配置
cat > /etc/init.d/komari <<EOF
#!/sbin/openrc-run
name="komari"
command="/opt/komari/komari"
command_args="server"
command_user="root"
directory="/opt/komari"
pidfile="/run/komari.pid"
command_background="yes"
output_log="/var/log/komari.log"
error_log="/var/log/komari.log"
respawn_delay=5
depend() { need net; }
EOF
cat > /etc/init.d/cloudflared <<EOF
#!/sbin/openrc-run
name="cloudflared"
command="/usr/local/bin/cloudflared"
commandargs="tunnel run --token ${CFTOKEN}"
command_user="root"
pidfile="/run/cloudflared.pid"
command_background="yes"
output_log="/dev/null"
error_log="/dev/null"
respawn_delay=5
depend() { need net; use dns; }
EOF
chmod +x /etc/init.d/komari /etc/init.d/cloudflared
rc-update add komari default
rc-update add cloudflared default
service komari restart
service cloudflared restart
fi

--- 4. 结果提示 ---

echo "================================================"
echo "✅ 部署已完成!"
echo ""
echo "🔍 查看初始密码,请执行以下命令:"
echo " grep -E 'Password|User' /var/log/komari.log"
echo ""

卸载脚本

#!/bin/sh

echo "⚠️ 正在开始卸载 Komari 和 Cloudflared..."

--- 1. 停止服务并清理启动项 ---

if pidof systemd >/dev/null 2>&1 || [ -d /run/systemd/system ]; then
echo "⚙️ 检测到 Systemd,正在停止并移除服务..."
# 忽略错误输出,防止服务本身没运行导致脚本中断
systemctl stop komari cloudflared 2>/dev/null
systemctl disable komari cloudflared 2>/dev/null
rm -f /etc/systemd/system/komari.service
rm -f /etc/systemd/system/cloudflared.service
systemctl daemon-reload

elif [ -f /sbin/openrc-run ]; then
echo "⚙️ 检测到 OpenRC (Alpine),正在停止并移除服务..."
service komari stop 2>/dev/null
service cloudflared stop 2>/dev/null
rc-update del komari default 2>/dev/null
rc-update del cloudflared default 2>/dev/null
rm -f /etc/init.d/komari
rm -f /etc/init.d/cloudflared
fi

--- 2. 删除文件和目录 ---

echo "🗑️ 正在清理文件..."

删除 Komari 主程序和配置目录

rm -rf /opt/komari

删除 Cloudflared 二进制文件

注意:如果你这台机器上还运行着其他非本次安装的 Tunnel,请注释掉下面这一行

rm -f /usr/local/bin/cloudflared

清理 PID 文件

rm -f /run/komari.pid /run/cloudflared.pid

echo "------------------------------------------------"
echo "✅ 卸载完成!所有相关服务和文件已清除。"
echo "------------------------------------------------"

更新

#!/bin/sh

echo "⏳ 正在开始升级 Komari..."

1. 停止服务 (防止文件被占用)

if pidof systemd >/dev/null 2>&1 || [ -d /run/systemd/system ]; then
systemctl stop komari
elif [ -f /etc/init.d/komari ]; then
service komari stop
fi

2. 简单的备份 (以防万一)

这一步会把数据库备份一份到 /opt/komari/data_backup 目录

if [ -d "/opt/komari/data" ]; then
cp -r /opt/komari/data /opt/komari/databackup$(date +%Y%m%d)
echo "✅ 数据已备份"
fi

3. 下载最新版覆盖旧文件

ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
echo "⬇️ 正在下载最新版本..."
wget -qO /opt/komari/komari "https://github.com/komari-monitor/komari/releases/latest/download/komari-linux-${ARCH}"
chmod +x /opt/komari/komari

4. 重启服务

if pidof systemd >/dev/null 2>&1 || [ -d /run/systemd/system ]; then
systemctl start komari
elif [ -f /etc/init.d/komari ]; then
service komari start
fi

echo "================================================"
echo "✅ 升级完成!请刷新网页查看版本号。"
echo "================================================"