实时端口监控和发现工具Portracker
简介
什么是 Portracker ?
Portracker是一个自托管的实时端口监控和发现工具,通过自动发现系统上的服务,提供网络的实时、准确的映射。它通过消除手动跟踪,帮助防止因端口冲突导致的部署失败。
主要特点
- 自动端口发现:自动扫描主机系统,发现并显示正在运行的服务及其端口,无需手动输入。
- 平台特定收集器:提供针对
Docker和TrueNAS的专用收集器,收集丰富的上下文信息。 - 轻量且自包含:作为单个进程运行,内置
SQLite数据库,无需外部数据库依赖。 - 对等监控:可以将其他
Portracker实例作为对等体添加,统一管理所有服务器、容器和虚拟机。 - 分层分组:支持将服务器组织成父子结构,便于管理和监控。
- 增强的 TrueNAS 发现:支持通过提供
TrueNAS API密钥发现运行的虚拟机,并获取系统信息。 - 现代响应式用户界面:提供清晰的仪表板界面,支持多种数据视图和主题模式。
应用场景
- 企业网络管理:适用于需要监控和管理多个服务器和服务的企业环境,帮助 IT 部门保持网络运行的稳定性。
- 容器化环境:在使用
Docker的场景中,Portracker能够自动发现容器中的服务,简化管理。 - 虚拟化平台监控:在
TrueNAS等虚拟化平台上使用,提供对虚拟机的监控和管理。 - 开发和测试:开发人员可以使用
Portracker来确保服务运行正常,避免端口冲突,提高开发效率。

Portracker 是一个灵活、功能强大的工具,可以显著提高网络管理的效率和准确性。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 portracker ,选择第一个 mostafawahied/portracker,版本选择 latest。
本文写作时,
latest版本对应为main,比1.0.2要晚几天 ;

docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 portracker 和 子目录 |
| 可变 | 描述 | 默认 |
|---|---|---|
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 文件
1 | services: |
然后执行下面的命令
1 | # 新建文件夹 portracker 和 子目录 |

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

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

下拉可以看到端口信息

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

多服务器
如果你有多台服务器,在安装了 Portracker 之后,可以点左下角的 Add Server 添加进来统一管理
Server Name:用于标识服务器Server URL:服务器地址,例如http://192.168.0.199:4999

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

如果不行,可以尝试让群晖的 docker 服务允许通过 TCP 进行连接。
用 SSH 连到群晖上,编辑文件 /var/packages/Docker/etc/dockerd.json ,并新增一行:
1 | "hosts" : [ "tcp://192.168.0.199:2375", "unix:///var/run/docker.sock" ], |

其中的 IP 需要改成群晖主机的 IP 地址,然后保存。接下来,还需要重启群晖的 docker 服务
1 | # 重启 docker 套件 |
参考文档
Mostafa-Wahied/portracker
地址:https://github.com/mostafa-wahied/portrackerportracker - Ports monitoring & auto discovery dashboard for your homelab : r/selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/1m3k148/portracker_ports_monitoring_auto_discovery/