logo NodeSeekbeta

Komari 探针手动安装教程 - 适用于Po0 VPS

Komari 探针手动安装教程 - 适用于端口受限VPS

适用场景:VPS封禁了常用HTTP/HTTPS,导致官方一键安装脚本无法使用

📋 目录


环境要求

  • VPS系统:Debian 12(或其他使用systemd的Linux发行版)
  • 本地环境:能访问GitHub并执行curl/scp命令
  • SSH访问:能通过SSH连接到VPS(通常22端口可用)
  • Komari服务端:已部署并获取Token

问题背景

为什么官方脚本无法使用?

官方一键安装脚本依赖以下端口:

bash <(curl -sL https://raw.githubusercontent.com/.../install.sh) -e https://your-server.com -t YOUR_TOKEN

失败原因:

  1. ❌ VPS封禁了443端口,无法通过HTTPS下载脚本
  2. ❌ 无法通过HTTPS访问GitHub releases下载二进制文件
  3. ❌ 探针无法通过443端口与服务端通信(如果服务端用的是HTTPS)
  4. ❌ 自动更新功能会尝试访问GitHub API(443端口)

安装步骤

步骤1:本地下载二进制文件

您的本地电脑(非VPS)执行:

# 根据VPS架构选择对应版本
# 查看VPS架构:ssh root@YOUR_VPS_IP "uname -m"
# x86_64 → amd64 | aarch64 → arm64

ARCH="amd64"  # 大多数VPS是amd64
OS="linux"

# 下载最新版本(注意文件名会带有OS和架构后缀)
curl -L -o komari-agent-${OS}-${ARCH} \
  "https://github.com/komari-monitor/komari-agent/releases/latest/download/komari-agent-${OS}-${ARCH}"

# 重命名为agent(重要!)
mv komari-agent-${OS}-${ARCH} agent

# 赋予执行权限
chmod +x agent

# 验证下载成功
file agent
# 应输出:agent: ELF 64-bit LSB executable...

步骤2:上传到VPS

使用SCP将文件上传到VPS:

# 替换为您的VPS IP地址
VPS_IP="YOUR_VPS_IP"

# 先在VPS上创建目录
ssh root@$VPS_IP "mkdir -p /opt/komari"

# 上传二进制文件(文件名已经是agent)
scp agent root@$VPS_IP:/opt/komari/agent

# 确保可执行权限
ssh root@$VPS_IP "chmod +x /opt/komari/agent"

# 验证安装
ssh root@$VPS_IP "/opt/komari/agent --help"

步骤3:配置systemd服务

SSH登录VPS后,创建服务文件:

# 登录VPS
ssh root@YOUR_VPS_IP

# 创建systemd服务文件
cat > /etc/systemd/system/komari-agent.service <<'EOF'
[Unit]
Description=Komari Agent Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/komari/agent -e http://YOUR_SERVER_IP:PORT -t YOUR_TOKEN --disable-auto-update
WorkingDirectory=/opt/komari
Restart=always
User=root

[Install]
WantedBy=multi-user.target
EOF

⚠️ 重要配置说明:

参数 说明 示例
-e 服务端地址(必须加http://前缀 http://192.168.1.100:26774
-t 从Komari面板获取的Token abc123xyz456
--disable-auto-update 必须添加,否则会卡在更新检查 -

常见错误:

  • 192.168.1.100:26774 - 缺少协议前缀
  • http://192.168.1.100:26774 - 正确格式

步骤4:启动并验证

# 重新加载systemd配置
systemctl daemon-reload

# 启用开机自启
systemctl enable komari-agent.service

# 启动服务
systemctl start komari-agent.service

# 查看服务状态
systemctl status komari-agent.service

# 查看实时日志
journalctl -u komari-agent -f

✅ 成功标志:

Feb 10 19:00:22 debian agent[18214]: Komari Agent 1.1.41
Feb 10 19:00:22 debian agent[18214]: Using system default DNS resolver
Feb 10 19:00:22 debian agent[18214]: Monitoring Mountpoints: [/ (ext4)]
Feb 10 19:00:22 debian agent[18214]: Monitoring Interfaces: [ens5]
Feb 10 19:00:22 debian agent[18214]: Basic info uploaded successfully
Feb 10 19:00:22 debian agent[18214]: WebSocket connected

刷新Komari面板,服务器应显示在线状态。


常见问题解决

问题1:卡在"Checking update..."

现象:

Feb 10 18:49:47 debian agent[18126]: Checking update...
[卡住1分钟]
Feb 10 18:50:47 debian agent[18126]: [ERROR] failed to check for updates: context deadline exceeded

原因: VPS无法访问GitHub的443端口下载更新。

解决方案: 在启动参数中添加 --disable-auto-update

ExecStart=/opt/komari/agent -e http://... -t ... --disable-auto-update

问题2:endpoint配置错误

现象:

Error: parse "192.168.1.1:26774/api/...": first path segment in URL cannot contain colon
Failed to connect to WebSocket: malformed ws or wss URL

原因: endpoint缺少 http://https:// 前缀。

解决方案:

# ❌ 错误
ExecStart=/opt/komari/agent -e 192.168.1.1:26774 -t ...

# ✅ 正确
ExecStart=/opt/komari/agent -e http://192.168.1.1:26774 -t ...

修改后执行:

systemctl daemon-reload
systemctl restart komari-agent.service

问题3:国旗显示不正确

现象: 探针在线,但显示的国旗不是预期的国家。

原因: Komari通过GeoIP自动识别VPS的真实IP地理位置。如果VPS在海外,会显示该国家的国旗。

解决方案: 使用 --custom-ipv4 参数指定目标国家的公网IP地址,可以帮助实现正确的国旗显示。

操作步骤:

  1. 修改systemd服务文件,添加 --custom-ipv4 参数:
# 停止服务
systemctl stop komari-agent.service

# 编辑服务文件
nano /etc/systemd/system/komari-agent.service
  1. 修改 ExecStart 行,添加自定义IP:
ExecStart=/opt/komari/agent -e http://YOUR_SERVER_IP:PORT -t YOUR_TOKEN --disable-auto-update --custom-ipv4 114.114.114.114
  1. 重启服务:
systemctl daemon-reload
systemctl start komari-agent.service

注意事项:

  1. 需确保Komari面板的GeoIP功能已启用(设置 → 系统设置 → GeoIP配置)
  2. 修改IP后需要等待1-2分钟,刷新面板查看效果
  3. 选择的IP地址应为目标国家的真实公网IP

问题4:服务启动失败 (203/EXEC)

现象:

Feb 10 18:47:37 debian systemd[1]: komari-agent.service: Failed at step EXEC spawning /opt/komari/agent: No such file or directory

原因: 二进制文件不存在或路径错误。

解决方案:

# 检查文件是否存在
ls -lh /opt/komari/agent

# 检查文件权限
chmod +x /opt/komari/agent

# 测试直接运行
/opt/komari/agent --help

完整配置参考

基础配置(推荐)

[Unit]
Description=Komari Agent Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/komari/agent -e http://YOUR_SERVER_IP:PORT -t YOUR_TOKEN --disable-auto-update
WorkingDirectory=/opt/komari
Restart=always
User=root

[Install]
WantedBy=multi-user.target

高级配置(包含自定义IP)

[Unit]
Description=Komari Agent Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/komari/agent -e http://YOUR_SERVER_IP:PORT -t YOUR_TOKEN --disable-auto-update --custom-ipv4 YOUR_PUBLIC_IP
WorkingDirectory=/opt/komari
Restart=always
User=root

[Install]
WantedBy=multi-user.target

2. 修改systemd服务:

[Service]
ExecStart=/opt/komari/agent --config /opt/komari/config.json

环境变量配置(可选)

Komari Agent支持通过环境变量配置,适用于容器化部署:

# 在systemd服务中使用环境变量
[Service]
Environment="AGENT_TOKEN=YOUR_TOKEN"
Environment="AGENT_ENDPOINT=http://YOUR_SERVER_IP:PORT"
Environment="AGENT_DISABLE_AUTO_UPDATE=true"
ExecStart=/opt/komari/agent

支持的环境变量:

环境变量 对应参数 说明
AGENT_TOKEN -t Token
AGENT_ENDPOINT -e 服务端地址
AGENT_DISABLE_AUTO_UPDATE --disable-auto-update 禁用自动更新
AGENT_CUSTOM_IPV4 --custom-ipv4 自定义IPv4
AGENT_INTERVAL -i 数据采集间隔(秒)

验证清单

安装完成后,请逐项检查:

  • [ ] 服务状态为 active (running)
  • [ ] 日志显示 WebSocket connected
  • [ ] 日志显示 Basic info uploaded successfully
  • [ ] Komari面板显示服务器在线
  • [ ] 面板显示正确的系统信息(CPU、内存、磁盘等)
  • [ ] 国旗显示正确(如有需要)

验证命令:

# 查看服务状态
systemctl status komari-agent

# 查看最近50行日志
journalctl -u komari-agent -n 50 --no-pager

# 实时监控日志
journalctl -u komari-agent -f

卸载

如需卸载Komari Agent:

# 停止并禁用服务
systemctl stop komari-agent.service
systemctl disable komari-agent.service

# 删除服务文件
rm /etc/systemd/system/komari-agent.service

# 重新加载systemd
systemctl daemon-reload

# 删除二进制文件
rm -rf /opt/komari

# 在Komari面板删除该服务器记录

更新升级

由于我们禁用了自动更新,需要手动升级:

# 1. 在本地下载最新版本
curl -L -o komari-agent-linux-amd64 \
  "https://github.com/komari-monitor/komari-agent/releases/latest/download/komari-agent-linux-amd64"

# 重命名为agent
mv komari-agent-linux-amd64 agent
chmod +x agent

# 2. 停止服务
ssh root@YOUR_VPS_IP "systemctl stop komari-agent.service"

# 3. 备份旧版本
ssh root@YOUR_VPS_IP "cp /opt/komari/agent /opt/komari/agent.backup"

# 4. 上传新版本
scp agent root@YOUR_VPS_IP:/opt/komari/agent

# 5. 启动服务
ssh root@YOUR_VPS_IP "systemctl start komari-agent.service"

# 6. 验证版本
ssh root@YOUR_VPS_IP "journalctl -u komari-agent -n 5 | grep 'Komari Agent'"

参考资料


贡献与反馈

如果您在使用过程中遇到问题,或有改进建议,欢迎:

  • 在本文评论区留言
  • 在GitHub提交Issue

祝您使用愉快! 🎉

  • 不懂就问,VPS封了80443和访问别的网站有啥关系,访问别的网站是出站,又不用80443端口 ac01

  • @miaowmint #1 双向封禁,脚本中curl和wget完全用不了,所以就手动装了

  • 技术贴

  • @Colmidad #2 那应该是封海外了吧,还没听说过谁家机器连别的机器的443端口都不让连的 ac01

  • 收藏学习,不过Komari用用有些vps就显示掉线,但在线

  • 够细致的

  • 这种方法远端komari面板是不是不能用https 443端口

  • @Colmidad #0

    请问你用的是哪个主题?是修改过的吗?

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有63966位seeker

🎉欢迎新用户🎉