Darkstat 是一个开源网络监测工具,能够实时监测网络流量,包括流入和流出的数据。它能够帮助你了解网络的整体状况。

监测网络上各种应用程序的使用情况,识别潜在的安全威胁等。Darkstat 支持多种操作系统,包括 Linux、FreeBSD、Windows 等。

在本教程中,我们将说明如何在 Linux 使用 Darkstat 能够实时监测网络流量,包括流入和流出的数据。

安装 darkstat

darkstat 并没有预安装在大多数 Linux 发行版。要检查你的 Linux 发行版是否已安装 darkstat,请按快捷键 CTRL+ALT+T 打开终端,键入 darkstat,然后按 Enter。

如果你还没有安装 darkstat ,终端将会打印消息 Command 'darkstat' not found,你可以运行以下命令安装 darkstat 。

如果你的计算机运行的是基于 Debian 的 Linux 发行版,例如 Ubuntu,Linux Mint等。请运行 sudo apt install darkstat 命令安装 darkstat。

如果你的计算机运行的是基于 Redhat的 Linux 发行版,例如 CentOS,Fedora 等。请运行 sudo yum install darkstat 命令安装 darkstat。

sudo apt install darkstat

#RedHat CentOS
sudo yum install epel-release
sudo yum install darkstat

darkstat 用法

安装完成后,Darkstat 服务将自动启动。您可以通过运行 systemctl 命令查看 Darkstat 服务的状态,从而确定 Darkstat 服务是否正常启动。

sudo systemctl status darkstat

darkstat 默认监控接口 eth0 ,如果你的计算机没有网络接口 eth0 或者你想修改监听的接口,请修改 darkstat 配置文件 /etc/darkstat/init.cfg。

选择一个你喜欢的编辑器,例如vim,nano,gedit 等。在本教程中,我们使用 vim 编辑器编辑文件 /etc/darkstat/init.cfg 修改监控的接口。

sudo vim /etc/darkstat/init.cfg
# Turn this to yes when you have configured the options below.
START_DARKSTAT=yes

# Don't forget to read the man page.

# You must set this option, else darkstat may not listen to
# the interface you want
INTERFACE="-i wlp2s0"

#DIR="/var/lib/darkstat"
PORT="-p 666"
#BINDIP="-b 127.0.0.1"
#LOCAL="-l 192.168.0.0/255.255.255.0"

# File will be relative to $DIR:
#DAYLOG="--daylog darkstat.log"

# Don't reverse resolve IPs to host names
#DNS="--no-dns"

#FILTER="not (src net 192.168.0 and dst net 192.168.0)"

# Additional command line Arguments:
# OPTIONS="--syslog --no-macs"
/etc/darkstat/init.cfg

在此示例中,我们将 START_DARKSTAT 选项的值修改为 yes,将网络接口 INTERFACE 修改 wlp2s0。

你可能会注意到 wlp2s0 前面还有一个 -i ,其实这是 darkstat 命令的选项,-i 表示指定网络接口。darkstat 允许你在终端以命令的方式启动。

如果你不知道如何在 Linux 发行版,查看或者列出网络的接口的名称,请阅读我们的教程:Linux ip 命令。也可以直接运行下面的命令:

ip link ls
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 0c:54:15:af:dc:f0 brd ff:ff:ff:ff:ff:ff

除了指定网络接口的名称,还有一个非常必须要指定的选项就是 PORT,指定 darkstat 监听的端口。

PORT="-p 666"

当完成配置后,保存文件并退出vim。请运行 systemctl 命令重新启动 darkstat 服务使配置文件生效。

sudo systemctl restart darkstat
sudo systemctl status darkstat

重启 darkstat 服务后,这意味着 darkstat 开始监控指定网络接口网络流量。你可以打开 Web 浏览器,并输入网址 http://localhost:667 来查看 Darkstat 的流量报告。

如果你是在远程服务器运行 Darkstat,你可以将 localhost 替换为服务器的IP地址。至此你已完成 Darkstat 的部署。

Darkstat 常用选项

前面提到 darkstat 也支持在终端以命令行的方式启动, 这里介绍一下 darkstat 命令行选项,可以让你更好地控制它的行为。以下是一些常用的选项:

  • -i, --interface=INTERFACE:指定Darkstat要监控的网络接口。
  • -p, --port=PORT:为 Web 报告界面指定 Darkstat 监听端口。
  • -b, --bind-address=ADDRESS:指定 Darkstat 的监听 IP 地址。
  • -f, --filter=FILTER:指定 Darkstat 的过滤规则。
  • -s, --save=FILE:将 Darkstat 的数据保存到指定文件。
  • -r, --restore=FILE:从文件中恢复 Darkstat 的数据。

你也可以运行命令  darkstat --help 查看完整的选项列表。

Darkstat 报告解读

Darkstat Web 界面的报告中包含大量的信息,可以帮助你了解网络的使用情况。当你打开 Darkstat 报告界面。

你将会看的是  Darkstat 图形报告,报告包括过去 60 秒,60分钟,24,31天的报告。顶部显示的是监控时间和通过流量与数据包总数。

默认情况下,图形报告不会自动刷新,可以点击下方的 automatic reload 按钮打开自动刷新。

当你点击顶部导航栏 host 链接时,你将看到当前系统和已连接的远程主机的出口和入口以及总流量的信息。

最左侧的是 IP 地址,Hostname 主机名,Mac 地址, In 入口流量,Out 出口流量,Total 总流量,在数字列默认单位字节 byte。

如果你需要继续深入分析,指定主机,端口,协议 (包括 TCP、UDP、ICMP等),出口与入口的流量信息。请点击 IP 地址查看。

Darkstat 应用场景

Darkstat 可以应用于多种场景,以下是一些常见的应用场景:

  • 监测网络流量:Darkstat 可以帮助你实时监测网络流量,了解网络的整体状况。
  • 识别安全威胁:Darkstat 可以识别一些潜在的安全威胁,例如异常的流量、频繁的扫描等。
  • 优化网络性能:Darkstat 可以帮助你了解各种应用程序的使用情况,优化网络带宽分配。
  • 追踪网络问题:Darkstat 可以记录网络流量,帮助你追踪网络问题,例如网络拥塞、丢包等。

Darkstat 局限性

Darkstat虽然是一个非常有用的网络监测工具,但是它也有一些局限性,以下是一些常见的局限性:

  • 只能监测流量:Darkstat 只能监测网络流量,无法监测其他类型的网络活动,例如DNS查询、HTTP请求等。
  • 不支持深度分析:Darkstat 只能提供流量的基本统计信息,无法进行深度分析,例如查看具体的数据包内容等。
  • 对高流量环境支持不足:在高流量环境下,Darkstat 可能会出现性能问题,导致监测结果不准确。
  • 对网络拓扑有依赖性:Darkstat 需要在正确的网络拓扑结构下运行,如果网络拓扑结构不正确,可能会导致监测结果不准确。

结论

Darkstat 是一个非常有用的网络监测工具,能够帮助你实时监测网络流量,了解网络的整体状况,识别潜在的安全威胁。

通过本文的介绍,你可以了解 Darkstat 的基本使用方法和常用选项,以及Darkstat的应用场景和局限性。如果你需要监测网络流量,Darkstat将是一个非常有用的工具。