网络连接实时可视化利器TapMap
简介什么是 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 databasesdocker cli 安装如果你熟悉命令行可能用docker cli更快捷# 新建文件夹 tapmap 和 子目录mkdir-p/volume1/docker/tapmap/data# 进入 tapmap 目录cd/volume1/docker/tapmap# 运行容器dockerrun-d\--networkhost\--pidhost\--nametapmap\-v$(pwd)/data:/data\-eTAPMAP_IN_DOCKER1\-eTAPMAP_PORT8060\olalie/tapmap:latest卷文件夹装载路径说明docker/tapmap/data/data存放GeoIP数据库和活动数据端口TapMap使用host网络模式直接绑定到宿主机网络端口映射独立设置。参数值默认端口8050可通过环境变量修改TAPMAP_PORT环境可变值TAPMAP_IN_DOCKER1TAPMAP_DATA_DIR/dataTAPMAP_PORT8050环境变量说明TAPMAP_IN_DOCKER启用Docker运行模式TAPMAP_DATA_DIR指定数据目录路径默认为/dataTAPMAP_PORT指定服务端口默认为8050docker-compose 安装也可以用docker-compose安装将下面的内容保存为docker-compose.yml文件version:3.8services:tapmap:image:olalie/tapmap:latestcontainer_name:tapmaprestart:unless-stoppednetwork_mode:host# 必须使用宿主机网络栈pid:host# 必须读取宿主机进程信息volumes:-./data:/data# 存放 GeoIP 数据库和活动数据environment:-TAPMAP_IN_DOCKER1# 启用 Docker 模式-TAPMAP_DATA_DIR/data# 数据目录-TAPMAP_PORT8060# 可选修改默认端口# - TAPMAP_HOST0.0.0.0 # 可选绑定地址注意network_mode: host是必须的因为TapMap需要读取宿主机真实的网络套接字数据。这也意味着端口映射直接在宿主机上生效无需ports配置。然后通过SSH登录到您的群晖执行下面的命令# 新建文件夹 tapmap 和 子目录mkdir-p/volume1/docker/tapmap/data# 进入 tapmap 目录cd/volume1/docker/tapmap# 将 docker-compose.yml 放入当前目录# 一键启动docker-composeup-d要启用进程名可见性Linux上可以添加以下配置cap_add:-SYS_PTRACEsecurity_opt:-apparmorunconfined运行在浏览器中访问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权限和apparmorunconfined改善定期更新数据库建议每月更新一次GeoLite2数据库文件以获得准确的地理定位信息数据持久化所有历史活动数据存储在数据卷中建议定期备份参考文档olalie/tapmap: Watch your computer connect across the internet in real time. Discover the world behind your apps.地址https://github.com/olalie/tapmapolalie/tapmap - Docker Hub地址https://hub.docker.com/r/olalie/tapmapTapMap 官方文档地址https://olalie.github.io/tapmap/MaxMind GeoLite2 Free Geolocation Data地址https://dev.maxmind.com/geoip/geolite2-free-geolocation-data