
简介
什么是 TapMap ?
TapMap是一个开源的实时网络连接可视化工具,它通过读取本机网络套接字数据,结合IP地理定位,在交互式世界地图上动态展示你的计算机正在与全球哪些地方建立连接。它帮助你发现那些平时完全看不见的网络活动------哪些服务在联网、连到了哪里、哪些是新出现的。
主要特点
- 实时世界地图可视化 :基于
Dash和Plotly构建的交互式地图,连接点动态展示在全球地图上,支持悬停查看和点击获取详细信息 - 30 天活动洞察 :自动构建滚动
30天历史记录,识别新出现的应用、ASN提供商、国家和端口,区分常规连接和异常活动 - 每日活动报告:生成应用连接模式分析(一次性、偶尔、重复、稳定)、提供商集中度、国家活动时间线等综合报告
- 多维度展示 :不仅显示互联网连接,还展示内网(
LAN/LOCAL)服务和本地开放端口(TCP LISTEN/UDP bound) - 键盘快捷操作 :支持
D(每日报告)、I(洞察面板)、U(未映射服务)、L(内网服务)、O(开放端口)等快捷键 - 隐私安全:所有数据本地处理,不发送任何连接数据到外部服务,无需注册或账户
- 开源免费 :基于
MIT协议开源,可免费使用和修改
应用场景
- 个人网络透明度:了解自己电脑上哪些应用在联网、连到了哪里,发现意想不到的后台连接
- 安全异常检测:当有新应用、新国家或新端口出现时及时察觉,可能意味着配置错误、后台服务或潜在的恶意软件
- 网络行为分析 :通过
30天历史数据洞察网络活动模式,区分日常连接和异常行为 - 开发测试环境:开发人员可以快速了解应用的网络行为,验证网络请求的目标地址是否符合预期

TapMap 是一个帮助你看清电脑网络连接全貌的轻量级工具,让不可见的网络活动变得一目了然。
安装
在群晖上以 Docker 方式安装。
TapMap本身支持主流操作系统平台,

Docker 版需要读取宿主机网络栈和进程信息,必须以 host 网络模式和 pid 模式运行。
准备工作
使用 TapMap 需要准备 MaxMind GeoLite2 地理定位数据库文件:
- 访问 MaxMind 官网 免费注册账号

- 下载
GeoLite2-City.mmdb和GeoLite2-ASN.mmdb两个文件 - 将这两个文件放到数据卷映射目录中
如果这一步没做,打开首界面会提示 Missing GeoIP databases

docker cli 安装
如果你熟悉命令行,可能用 docker cli 更快捷
bash
# 新建文件夹 tapmap 和 子目录
mkdir -p /volume1/docker/tapmap/data
# 进入 tapmap 目录
cd /volume1/docker/tapmap
# 运行容器
docker run -d \
--network host \
--pid host \
--name tapmap \
-v $(pwd)/data:/data \
-e TAPMAP_IN_DOCKER=1 \
-e TAPMAP_PORT="8060" \
olalie/tapmap:latest
卷
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/tapmap/data |
/data |
存放 GeoIP 数据库和活动数据 |
端口
TapMap 使用 host 网络模式,直接绑定到宿主机网络,端口映射独立设置。
| 参数 | 值 |
|---|---|
| 默认端口 | 8050 |
| 可通过环境变量修改 | TAPMAP_PORT |
环境
| 可变 | 值 |
|---|---|
TAPMAP_IN_DOCKER |
1 |
TAPMAP_DATA_DIR |
/data |
TAPMAP_PORT |
8050 |
环境变量说明:
TAPMAP_IN_DOCKER启用Docker运行模式TAPMAP_DATA_DIR指定数据目录路径,默认为/dataTAPMAP_PORT指定服务端口,默认为8050
docker-compose 安装
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
yaml
version: '3.8'
services:
tapmap:
image: olalie/tapmap:latest
container_name: tapmap
restart: unless-stopped
network_mode: host # 必须:使用宿主机网络栈
pid: host # 必须:读取宿主机进程信息
volumes:
- ./data:/data # 存放 GeoIP 数据库和活动数据
environment:
- TAPMAP_IN_DOCKER=1 # 启用 Docker 模式
- TAPMAP_DATA_DIR=/data # 数据目录
- TAPMAP_PORT=8060 # 可选:修改默认端口
# - TAPMAP_HOST=0.0.0.0 # 可选:绑定地址
注意 :
network_mode: host是必须的,因为TapMap需要读取宿主机真实的网络套接字数据。这也意味着端口映射直接在宿主机上生效,无需ports配置。
然后通过 SSH 登录到您的群晖,执行下面的命令:
bash
# 新建文件夹 tapmap 和 子目录
mkdir -p /volume1/docker/tapmap/data
# 进入 tapmap 目录
cd /volume1/docker/tapmap
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
要启用进程名可见性(Linux 上),可以添加以下配置:
yaml
cap_add:
- SYS_PTRACE
security_opt:
- apparmor=unconfined
运行
在浏览器中访问 http://<群晖IP>:8060 即可进入 TapMap 交互式世界地图界面。
首次使用需要:
- 启动后
TapMap会自动打开数据目录设置向导 - 将下载好的
GeoLite2-City.mmdb和GeoLite2-ASN.mmdb两个文件复制到数据目录 - 点击 Recheck GeoIP databases 按钮确认数据库加载成功

启用后,地图上会实时显示你的电脑当前建立的网络连接位置

快捷键操作:
D--- 打开每日活动报告I--- 切换洞察面板U--- 查看未映射的公共服务L--- 查看内网/本地服务O--- 查看开放端口R--- 重新检查GeoIP数据库ESC--- 关闭当前窗口

注意事项
- 仅支持 Linux 宿主机 :
TapMap的Docker模式需要--network host和--pid host,不支持Docker Desktop for Windows/macOS。群晖DSM基于Linux,可以正常使用 - GeoIP 数据库必需 :没有
GeoLite2数据库文件,地图上将不显示任何连接位置信息,需要免费注册MaxMind账号下载 - 进程可见性 :
Docker模式下进程名可能不可见,取决于宿主机安全策略。可通过SYS_PTRACE权限和apparmor=unconfined改善 - 定期更新数据库 :建议每月更新一次
GeoLite2数据库文件,以获得准确的地理定位信息 - 数据持久化:所有历史活动数据存储在数据卷中,建议定期备份
参考文档
olalie/tapmap: Watch your computer connect across the internet in real time. Discover the world behind your apps.
地址:https://github.com/olalie/tapmap
olalie/tapmap - Docker Hub地址:https://hub.docker.com/r/olalie/tapmap
TapMap 官方文档地址:https://olalie.github.io/tapmap/
MaxMind GeoLite2 Free Geolocation Data地址:https://dev.maxmind.com/geoip/geolite2-free-geolocation-data