文章详情

返回首页

Nat小鸡一键安装komari面板

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

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"
command_args="tunnel run --token ${CF_TOKEN}"
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/data_backup_$(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 "================================================"

留言

暂无留言

0 / 100