Mylg-Linux系统的命令行网络监视工具

时间:2020-03-05 15:29:02  来源:igfitidea点击:

在本文中,我们将展示如何安装和使用名为My Looking Glass或者mylg的网络监视软件。

它支持许多出色的功能,例如数据包分析器,Web仪表板,端口扫描等等。
我们将其安装在Ubuntu 16.04 LTS上。

Mylg可以在网络中诊断什么

1)实时跟踪路由(支持IPv4和IPv6网络)
2)增强了Dig命令
3)TCP/IP数据包分析器
4)增强的HTTP Ping和转储
5)端口扫描命令
6)对等信息
7)网络局域网发现
8)收集ASN,IP/CIDR信息
9)DNS查找信息

如何安装mylg

mylg软件是用Go编程语言编写的。
它还需要libcap作为依赖项。

sudo apt-get install libpcap-dev golang

接下来,我们需要获取mylg deb软件包

wget http://mylg.io/dl/linux/mylg.amd64.deb

然后安装

sudo dpkg -i mylg.amd64.deb

接下来我们已经可以启动了,欢迎屏幕将向我们致意

mylg

这样,安装部分结束了。
我们开始使用它。

使用mylg数据包分析器

Mylg包含强大的数据包分析功能,该功能依赖于libcap,在某种程度上可以与Wireshark媲美。
因此,这将是我们要测试的第一个功能。
为了捕获和分析数据包,我们将使用dump命令。

dump -c 7

它应该捕获并分析多达7个数据包。
我们得到了6.
由于我与运行mylg的KVM Ubuntu实例具有活动的SSH连接,它将捕获VM与主机之间的通信。
这是我得到的:

注意协议是彩色的,mylg运行所在的主机是粗体的。
要获得更具体的输出,可以使用berkeley数据包过滤器语法和修饰符的一长串。

例如,仅获取udp数据包。
我们可以输入

local> dump -c 3 udp
Interface: ens3, capture size: 6144 bytes
13:03:04.351 IPv4/UDP 192.168.122.1:17500(db-lsp-disc) > 192.168.122.255:17500(db-lsp-disc) , len: 145
13:03:04.355 IPv4/UDP miki-Standard-PC-i440FX-PIIX-1996.:40595 > 192.168.122.1:53(domain) , len: 0
13:03:04.355 IPv4/UDP 192.168.122.1:53(domain) > miki-Standard-PC-i440FX-PIIX-1996.:40595 , len: 0

要仅从一台主机获取数据包,可以输入该主机的主机名或者IP地址,如下所示:

local> dump -c 1 host miki-Standard-PC-i440FX-PIIX-1996.
Interface: ens3, capture size: 6144 bytes
13:02:22.067 IPv4/UDP miki-Standard-PC-i440FX-PIIX-1996.:37228 > 192.168.122.1:53(domain) , len: 0

命令以粗体显示。
可以用来获取所需信息的一些语法:

host hostname
src host hostname
dst host hostname
and, not, or support in the syntax
tcp, udp, icmp, icmp6, ip, ipv6

如何执行跟踪路由

Mylg与大多数其他网络监视工具相比,都支持traceroute,但是它在实时支持方面增加了一些另外的功能。
让我们用基本的跟踪命令跟踪谷歌:

local> trace google.com
trace route to google.com (216.58.214.206), 30 hops max
1 192.168.122.1 0.092 ms 0.097 ms 0.061 ms
2 192.168.1.1 1.886 ms 1.195 ms 1.652 ms
3 212.200.180.146 [ASN 8400/TELEKOM-AS] 10.282 ms 13.892 ms 8.344 ms
4 212.200.180.123 [ASN 8400/TELEKOM-AS] 8.929 ms 8.749 ms 8.287 ms
5 212.200.7.74 [ASN 8400/TELEKOM-AS] 12.248 ms 19.486 ms 11.621 ms
6 212.200.7.79 [ASN 8400/TELEKOM-AS] 10.686 ms 11.148 ms 10.833 ms
7 79.101.96.177 [ASN 8400/TELEKOM-AS] 22.842 ms 22.434 ms 25.806 ms
8 209.85.243.181 [ASN 15169/GOOGLE] 22.145 ms 23.683 ms 23.397 ms
9 66.249.94.113 [ASN 15169/GOOGLE] 21.702 ms 22.207 ms 21.780 ms
10 bud02s23-in-f14.1e100.net. (216.58.214.216) [ASN 15169/GOOGLE] 22.946 ms 23.247 ms 22.676 ms

我们可以看到我的ISP是Telekom,以及它使用的路由的延迟。
如果我们不需要捕获报告,trace命令可以为我们实时运行10个数据包捕获并生成报告。

local> trace bing.com -r -R
──[ myLG ]── traceroute to bing.com (204.79.197.200)
Host ASN Holder Sent Lost% Last Avg Best Wrst
192.168.122.1 10 0.0 0.18 0.17 0.08 0.20
192.168.1.1 10 0.0 1.32 1.42 1.06 2.34
212.200.180.146 8400 TELEKOM 10 0.0 16.09 14.18 8.49 21.78
212.200.180.128 8400 TELEKOM 10 0.0 24.93 16.90 8.05 24.93
212.200.7.84 8400 TELEKOM 10 0.0 12.36 12.21 11.44 13.23
212.200.7.79 8400 TELEKOM 10 0.0 12.07 16.81 10.30 32.09
212.200.5.119 8400 TELEKOM 10 0.0 23.25 25.45 23.25 53.53
ams-ix-1.microsoft.com. 1200 AMS 10 0.0 51.46 51.44 51.03 52.97
104.44.80.25 8075 MICROSOFT 10 0.0 61.44 61.78 61.44 63.82
??? 10 100.0
??? 10 100.0
??? 10 100.0
a-0001.a-msedge.net. 8068 MICROSOFT 10 0.0 60.04 59.95 59.41 61.26

如果我们需要10个以上的数据包示例,请使用带有数字的-c计数器。

如何使用dig命令

使用dig命令,我们可以执行DNS查询并获取IP地址,名称服务器,邮件交换和文本注释。
它还具有跟踪选项,该选项将提供有关所走路线的信息。

dig bing.com +trace

没有跟踪选项

dig bing.com

如何使用HTTP ping探测站点

Mylg hping命令用于探测某些主机或者站点,类似于ping命令,但是ping使用的ICMP代替了,hping使用HTTP协议。
它显示响应时间,HTTP协议版本,返回的代码(状态HTTP代码)和汇总时间。
不带计数器使用(带数字的-c选项)时,它会ping 5次。
我们将使用现在的请求两次。

local> hping bing.com -c 2
HPING bing.com (204.79.197.200), Method: HEAD, DNSLookup: 32.0384 ms
HTTP Response seq=0, proto=HTTP/1.1, status=405, time=130.057 ms
HTTP Response seq=1, proto=HTTP/1.1, status=405, time=129.607 ms
--- bing.com HTTP ping statistics --
2 requests transmitted, 2 replies received, 0% requests failed
HTTP Round-trip min/avg/max = 129.61/129.83/130.06 ms
HTTP Code [405] responses : [████████████████████] 100.00%
local>

hping还具有-trace选项,它将为我们提供有关读取第一个字节花了多少时间以及连接持续了多长时间的更多信息。

local> hping bing.com -c 2 -trace
HPING bing.com (204.79.197.200), Method: HEAD, DNSLookup: 53.2580 ms
HTTP Response seq=0, proto=HTTP/1.1, status=405, time=129.112 ms, connection=61.990 ms, first byte read=67.022 ms
HTTP Response seq=1, proto=HTTP/1.1, status=405, time=128.614 ms, connection=61.797 ms, first byte read=66.740 ms
--- bing.com HTTP ping statistics --
2 requests transmitted, 2 replies received, 0% requests failed
HTTP Round-trip min/avg/max = 128.61/128.86/129.11 ms
HTTP Code [405] responses : [████████████████████] 100.00%

局域网发现和RIPE NCC查询

要发现本地网络上的主机,我们只需要使用简单的光盘命令即可。
但是由于我在NAT模式下使用KVM实例,所以没有:

local> disc
please wait . .
Network LAN Discovery
+----+-----+------+-----------+-------------------+
| IP | MAC | HOST | INTERFACE | ORGANIZATION NAME |
+----+-----+------+-----------+-------------------+
+----+-----+------+-----------+-------------------+
0 host(s) has been found

接下来让我们尝试RIPE数据库查询。
RIPE是欧洲组织,并且是一个开放的在线论坛,维护着公共IP地址和电话号码的数据库。
Mylg whois命令查询该数据库。
我们只需要键入IP地址,ASN或者CIDR。

让我们看看谁站在ip addres 8.8.8.8的后面

local> whois 8.8.8.8
+------------+-------+--------------------------+
| PREFIX | ASN | HOLDER |
+------------+-------+--------------------------+
| 8.8.8.0/24 | 15169 | GOOGLE - Google Inc., US |
+------------+-------+--------------------------+

谁能想到,Google DNS服务器由Google运营。

local> whois 605
VHS-CHIL - Vanguard Health Management, Inc., US
+--------------------+-----------+
| LOCATION | COVERED % |
+--------------------+-----------+
| United States - IL | 100.0000 |
+--------------------+-----------+

好的,我不知道这是谁,但是我想我需要帮助管理自己的健康,因为那天我感冒了。

如何执行端口扫描

Mylg scan命令可以扫描给定主机上的任何端口。
它接受主机名或者IP地址。
让我们扫描雅虎。

local> scan www.bing.com
+----------+------+--------+-------------+
| PROTOCOL | PORT | STATUS | DESCRIPTION |
+----------+------+--------+-------------+
| TCP | 443 | Open | |
| TCP | 80 | Open | |
+----------+------+--------+-------------+
Scan done: 2 opened port(s) found in 2.007 seconds

接下来,让我们扫描运行mylg的虚拟机

local> scan localhost
+----------+------+--------+-------------+
| PROTOCOL | PORT | STATUS | DESCRIPTION |
+----------+------+--------+-------------+
| TCP | 22 | Open | |
+----------+------+--------+-------------+
Scan done: 1 opened port(s) found in 0.013 seconds

仅ssh端口处于打开状态。
由于各种原因,此简单的扫描命令非常有用。
例如,如果我们遇到连接问题,则要扫描服务器或者本地主机,以查看防火墙是否阻止了它不应该阻止的内容。
或者,如果我们想说...入侵某人,则还需要知道哪些端口是打开的。
这就是为什么我扫描Bing的原因。