剪藏#剪藏#各种折腾

实时端口监控和发现工具Portracker

2025 年 7 月 28 日1 分钟
分享Twitter / XTelegram微博

简介

什么是 Portracker ?

Portracker 是一个自托管的实时端口监控和发现工具,通过自动发现系统上的服务,提供网络的实时、准确的映射。它通过消除手动跟踪,帮助防止因端口冲突导致的部署失败。

主要特点

  1. 自动端口发现:自动扫描主机系统,发现并显示正在运行的服务及其端口,无需手动输入。

  2. 平台特定收集器:提供针对 DockerTrueNAS 的专用收集器,收集丰富的上下文信息。

  3. 轻量且自包含:作为单个进程运行,内置 SQLite 数据库,无需外部数据库依赖。

  4. 对等监控:可以将其他 Portracker 实例作为对等体添加,统一管理所有服务器、容器和虚拟机。

  5. 分层分组:支持将服务器组织成父子结构,便于管理和监控。

  6. 增强的 TrueNAS 发现:支持通过提供 TrueNAS API 密钥发现运行的虚拟机,并获取系统信息。

  7. 现代响应式用户界面:提供清晰的仪表板界面,支持多种数据视图和主题模式。

应用场景

  • 企业网络管理:适用于需要监控和管理多个服务器和服务的企业环境,帮助 IT 部门保持网络运行的稳定性。

  • 容器化环境:在使用 Docker 的场景中,Portracker 能够自动发现容器中的服务,简化管理。

  • 虚拟化平台监控:在 TrueNAS 等虚拟化平台上使用,提供对虚拟机的监控和管理。

  • 开发和测试:开发人员可以使用 Portracker 来确保服务运行正常,避免端口冲突,提高开发效率。

Notion image

Portracker 是一个灵活、功能强大的工具,可以显著提高网络管理的效率和准确性。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 portracker ,选择第一个 mostafawahied/portracker,版本选择 latest

本文写作时, latest 版本对应为 main,比 1.0.2 要晚几天 ;

Notion image

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

JAVASCRIPT
# 新建文件夹 portracker 和 子目录
mkdir -p /volume1/docker/portracker/data

# 进入 portracker 目录
cd /volume1/docker/portracker

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name portracker \
   --network host \
   -v $(pwd)/data:/data \
   -v /var/run/docker.sock:/var/run/docker.sock:ro \
   -e DATABASE_PATH=/data/portracker.db \
   -e PORT=4999 \
   mostafawahied/portracker:latest

PORT* Web 应用程序将在其上运行的端口。 4999
DATABASE_PATH* 容器内 SQLite 数据库文件的路径。 /data/portracker.db
TRUENAS_API_KEY 用于增强 TrueNAS 数据收集的可选 API 密钥。
CACHE_TIMEOUT_MS 缓存扫描结果的持续时间(以毫秒为单位)。 60000
DISABLE_CACHE 设置为true以禁用所有缓存。 false
INCLUDE_UDP 设置为true在扫描中包含 UDP 端口。 false
DEBUG 设置true为详细的应用程序日志记录。 false

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

JAVASCRIPT
services:
  portracker:
    image:mostafawahied/portracker:latest
    container_name:portracker
    restart:unless-stopped
    network_mode:"host"
    volumes:
      -./data:/data
      -/var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      -DATABASE_PATH=/data/portracker.db
      -PORT=4999
      # Optional: For enhanced TrueNAS features
      # - TRUENAS_API_KEY=your-api-key-here

然后执行下面的命令

JAVASCRIPT
# 新建文件夹 portracker 和 子目录
mkdir -p /volume1/docker/portracker/data

# 进入 portracker 目录
cd /volume1/docker/portracker

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -

Notion image

运行

在浏览器中输入 http://群晖IP:4999 就能看到主界面

Notion image

如果容器越多,花的时间的会越久

Notion image

下拉可以看到端口信息

Notion image

可以为端口增加备注,方便记忆

Notion image

多服务器

如果你有多台服务器,在安装了 Portracker 之后,可以点左下角的 Add Server 添加进来统一管理

  • Server Name:用于标识服务器

  • Server URL:服务器地址,例如 http://192.168.0.199:4999

Notion image

设置没问题的话,就可以看到另一台主机的信息了

Notion image

如果不行,可以尝试让群晖的 docker 服务允许通过 TCP 进行连接。

SSH 连到群晖上,编辑文件 /var/packages/Docker/etc/dockerd.json ,并新增一行:

JAVASCRIPT
"hosts" : [ "tcp://192.168.0.199:2375""unix:///var/run/docker.sock" ],

Notion image

其中的 IP 需要改成群晖主机的 IP 地址,然后保存。接下来,还需要重启群晖的 docker 服务

JAVASCRIPT
# 重启 docker 套件
synoservice --restart pkgctl-Docker

参考文档

Mostafa-Wahied/portracker 地址:https://github.com/mostafa-wahied/portracker

portracker - Ports monitoring & auto discovery dashboard for your homelab : r/selfhosted 地址:https://www.reddit.com/r/selfhosted/comments/1m3k148/portracker_ports_monitoring_auto_discovery/

@所有人:写文不易,如果你都看到了这里,请点个在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。

原文地址: https://mp.weixin.qq.com/s?__biz=MzI1NTQxMzc3MA==&mid=2247509883&idx=1&sn=deea77b2337a7598f7cf19c05b5f9436&chksm=eb80f4949eb3a010d4269b8381a263765416ad4415027f2acbea50e16540926731fdd7fe64af&mpshare=1&scene=1&srcid=0728XZBHW6CVVGKpW4rXO2gm&sharer_shareinfo=c7fad2010063f5665588f0e985451e2e&sharer_shareinfo_first=c7fad2010063f5665588f0e985451e2e#rd

相关文章