指南 › TrafficWatch
其他语言 English · 日本語 · 한국어 · 简体中文
TrafficWatch
按设备查看自己网络的 DNS 活动 — 1.1.8
本版本的变化
- Linux:
.deb现包含面向无桌面服务器的 headless 模式 — 在浏览器中使用同样的界面,并附带 systemd unit。见第 5 节。 - 删除数据文件夹不再会让 30 天试用重新开始。试用开始时间也记录在数据文件夹之外,并以最早的记录为准。检查只在本机进行。
- Windows 安装程序已进行 Authenticode 签名并带时间戳。
1. 安装
选择与安装机器相符的版本。下面都是当前版本;旧版本列在发布说明页面。
- macOS · Apple silicon TrafficWatch-1.1.8-arm64.dmg
- Windows installer TrafficWatch-1.1.8-win-setup.exe
- Windows portable ZIP TrafficWatch-1.1.8-win.zip
- Linux · Debian/Ubuntu TrafficWatch-1.1.8-linux-amd64.deb
- Linux · AppImage TrafficWatch-1.1.8-linux-x86_64.AppImage
请校验下载的文件。公布的校验和在这里: TrafficWatch-SHA256SUMS.txt
macOS 与 Linux:
shasum -a 256 TrafficWatch-1.1.8-arm64.dmg
Windows:
Get-FileHash -Algorithm SHA256 TrafficWatch-1.1.8-win.zip
macOS 版本已通过 Apple 公证,打开时不会有警告。Windows 安装程序已进行 Authenticode 签名并带有时间戳。由于证书是新的,在积累信誉之前 SmartScreen 仍可能弹出警告,如出现请选择更多信息 → 仍要运行。
2. 首次运行
- 请先告知与你共用网络的人。TrafficWatch 会成为该网络的 DNS 服务器,并记录哪台设备查询了哪个域名。
- 它需要 53 端口。macOS 和 Linux 保留了该端口,会要求管理员密码;Windows 不会。
- 在 Linux 上,
systemd-resolved通常已经占用 53 端口。请关闭它的 stub listener,或者给可执行文件授予CAP_NET_BIND_SERVICE,而不是用 root 运行整个应用。 - 然后打开路由器管理页面,把 DHCP 下发的 DNS 服务器设为这台计算机的局域网 IP。设备会在重新连接时生效。
每次安装都以付费版的 30 天试用开始。事先不索取任何东西 — 不要银行卡,不要账户,不要邮箱地址。
3. 运维
记录了什么
所有设备的查询都会写入这台计算机上的日志。免费版限制的是显示而不是记录,也不会为了执行套餐限制而删除历史 — 升级后,原本就在那里的内容会显示出来。
给设备命名
设备最初以 IP 地址出现。命名之后日志才读得懂,写告警规则才有意义。
告警与发送
Alerts 按钮打开 Alerts & delivery:规则、邮件发送,以及与 MeshWatch Central 的连接都在这里。
Pro
Pro 为每年 99 美元,增加告警规则、MeshWatch Central 连接、CSV/JSON 导出和不限时长的设备历史。许可证密钥在付款后通过邮件发送,并在你自己的计算机上校验 — TrafficWatch 不会连接许可服务器。
数据存放在哪里
TrafficWatch 记录的一切都留在运行它的那台计算机上。不会发给我们,不会发给分析服务商,也不会发给广告网络。
许可证密钥
密钥在付款后通过邮件发送,在你自己的计算机上校验,因此 TrafficWatch 不会连接许可服务器。30 天试用结束或订阅失效后,TrafficWatch 以免费版继续应答并记录所有查询,只显示 3 台设备和最近 24 小时。告警规则和 MeshWatch Central 连接属于 Pro。
4. 防火墙
- 所有平台 — 网络中的设备必须能访问到 53 端口。在 Windows 上,系统询问时请在专用网络中允许通过 Defender 防火墙。
5. 在没有桌面的服务器上运行(headless)
桌面应用需要图形会话。在没有图形会话的 Linux 服务器上,它无法启动并显示 Missing X server or $DISPLAY。为此,Linux 的 .deb 还包含 headless 模式:以同样的方式应答并记录 DNS 查询,同样的界面显示在浏览器中,而不是窗口中。AppImage 不包含该模式。安装路径中含有空格,请像下面这样加引号。
先在前台试运行
安装 .deb(所需的库由 apt 一并安装)。53 是特权端口,初次查看时请在回环地址上使用高位端口,无需 root:
sudo apt install ./TrafficWatch-*-linux-amd64.deb
"/opt/Network TrafficWatch/trafficwatch-headless" --dns-port 5353 --dns-host 127.0.0.1
它会打印带一次性令牌的 Web 界面地址 — http://127.0.0.1:8053/?token=…。打开一次即可,Cookie 会记住你,之后用 http://127.0.0.1:8053/ 就行。地址丢了,用 --show-url 再次打印。从同一台机器发一个查询,看它是否出现:dig @127.0.0.1 -p 5353 example.com — 界面上的 Send a test query 按钮也做同样的事。
从自己的电脑打开界面
Web 界面只监听 127.0.0.1。先建立 SSH 隧道,再在自己的浏览器中打开带令牌的地址:
ssh -L 8053:127.0.0.1:8053 user@server
或者在前面放一个 HTTPS 反向代理(nginx、Caddy)。不要把明文 HTTP 端口暴露给不可信的网络:所有设备的查询、SMTP 凭据和 Central 令牌都会经过它。
在 53 端口作为服务运行
包装脚本旁边装有 systemd unit。与 SyslogWatch 和 TrapWatch 不同,启动前需要修改一行:
sudo useradd --system --home /var/lib/trafficwatch --create-home --shell /usr/sbin/nologin trafficwatch
sudo cp "/opt/Network TrafficWatch/trafficwatch-headless.service" /etc/systemd/system/
sudoedit /etc/systemd/system/trafficwatch-headless.service
在 ExecStart 行中,把 --dns-host 后面的 192.168.1.10 改成这台服务器自己的局域网地址(用 ip -4 addr 查看)。在 Ubuntu 上,systemd-resolved 已经占用 127.0.0.53:53,因此绑定所有地址会以 EADDRINUSE 失败;只绑定局域网地址,两者就能共存。请保留 AmbientCapabilities=CAP_NET_BIND_SERVICE 这一行 — 正是它让服务用户能够打开 53 端口。
sudo systemctl daemon-reload
sudo systemctl enable --now trafficwatch-headless
带令牌的 Web 界面地址会打印在 sudo journalctl -u trafficwatch-headless 中。然后把路由器 DHCP 的 DNS 设置指向该局域网地址,设备续租后就会把查询发到这里。也可以在 /etc/systemd/resolved.conf 中设置 DNSStubListener=no,但那样服务器自身的 /etc/resolv.conf 也需要处理。
数据位置与许可证密钥
作为服务运行时,查询日志、设置、许可证和界面令牌位于 /var/lib/trafficwatch/.trafficwatch。如果你曾用 sudo 运行 Linux 桌面应用,它的数据在 /root/.trafficwatch,是另一个文件夹,因此许可证密钥不会沿用:请在 Web 界面(标题栏中的套餐标记)中重新输入。同一个密钥可以在两处同时使用。
服务器上没有密钥环,因此许可证密钥、SMTP 密码和 Central 令牌以仅服务用户可读的文件(权限 0600)保存。没有可通知的桌面:本应弹出桌面通知的规则会改为在日志中写一行。邮件告警和 MeshWatch Central 与桌面版一样工作。
详见包装脚本旁的 README-headless.txt;选项见 --help。
6. 连接 MeshWatch Central
可选,属于 Pro 功能(免费版的告警设置中会如此提示)。Central 把多个产品的告警汇入一个收件箱,并按设备进行关联。 发送到 Central 的只有告警摘要。域名和按设备的查询历史留在这台计算机上。
- 在 Central 打开 Agents,选择 TrafficWatch,填写一个标签,然后按 Issue token。标签不是从别处取来的值,而是你自己起的名字,用来区分不同的安装。令牌只显示一次。
- 在 TrafficWatch 中打开 MeshWatch Central 设置,把 Central 的地址按
http://<central-server>:8443的形式填入,并填入令牌。除非 Central 就运行在同一台机器上,否则请使用服务器地址而不是localhost。 - 勾选把告警发送到 Central 的选项,保存,然后按 Test connection,应当显示成功。
此后产生的告警会出现在 Central 中。过去的告警不会补录。完整步骤见 MeshWatch Central 指南.
7. 排查问题
什么都收不到
通常是防火墙(第 4 节)。若仍然收不到,请确认设备指向的是这台计算机当前的局域网 IP;DHCP 续租可能让地址变了。
连接 Central 的 Test connection 失败
bad-token 表示令牌错误或已吊销 — 请重新签发。unreachable 表示地址不对或被防火墙挡住;Central 服务器上的 8443 端口必须开放。除非在 Central 前面放了反向代理,否则是 http:// 而不是 https://。当前版本中,这些结果以句子形式显示 — Central 拒绝的令牌会说明它可能已被吊销或由另一个 Central 签发;代码本身在鼠标悬停于消息上时显示。
在 Linux 服务器上显示 Missing X server or $DISPLAY
这是桌面应用在寻找屏幕,安装本身没有问题。请在桌面会话中运行它;若是没有桌面的服务器,请使用 headless 模式 — 见第 5 节。
所有产品共通的问题
升级后窗口空白、Ubuntu 24.04 无法启动、没有 keyring 的 Linux 上凭据以明文保存、告警邮件没有送达 — 这些在各产品上是一样的,集中放在支持页面。
仍然没有解决
请把版本号和你预期发生的情况发到 support@meshwatch.app。我们在工作日两个营业日内首次回复。