Kali Linux 基础网络工具

Kali LinuxBeginner
立即练习

介绍

在本实验中,你将学习如何使用 Kali Linux 中的核心网络工具来执行基础的网络诊断和管理任务。这个动手实践环节专为初学者设计,将引导你检查网络状态、测试连通性、发现网络中的设备以及扫描开放端口。通过使用 ip apingnetdiscovernmap 等工具,你将在 LabEx 虚拟机环境中建立网络分析的基础技能。当你打开终端时,你将自动连接到 Kali Linux 容器的 Shell,随时可以开始练习。

这是一个引导式实验,提供了逐步的指令来帮助你学习和实践。请仔细遵循说明完成每个步骤并获得动手经验。历史数据表明,这是一个初学者级别的实验,完成率为 94%。它获得了学习者 100% 的好评率。

使用 ip a 检查网络接口

在第一步中,你将学习如何使用 ip a 命令检查系统上的网络接口。这是理解网络配置的一项基本技能。

当你打开 LabEx 虚拟机环境中的终端时,你将自动连接到 Kali Linux 容器的 Shell。无需手动启动容器或进入 Shell;环境已经为你准备就绪。

首先,如果尚未安装 iproute2 软件包,你需要先安装它。在终端中输入以下命令并按回车键:

apt update && apt install -y iproute2

现在,在终端中输入以下命令并按回车键:

ip a

此命令会列出系统上的所有网络接口及其详细信息,例如 IP 地址和状态。

预期输出(示例,实际输出可能有所不同):

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

在输出中,你会看到像 lo(回环接口)和 eth0(你的主要网络接口)这样的接口。在 eth0 下方查找 inet 行以找到你的 IP 地址,例如 172.17.0.2<UP> 状态表示该接口处于活动状态。理解这些输出有助于你确认系统已连接到网络,并为后续任务做好准备。

使用 ping 测试网络连通性

既然你已经检查了网络接口,下一步就是测试你的系统是否可以与外部服务器通信。你将使用 ping 命令来验证互联网连通性。

如果尚未安装 ping,请先进行安装。

apt install -y iputils-ping

在 Kali Linux 容器的终端中输入以下命令并按回车键:

ping -c 4 8.8.8.8

-c 4 选项将 ping 尝试次数限制为 4 次,而 8.8.8.8 是 Google 的公共 DNS 服务器,是一个可靠的连通性测试目标。

预期输出(示例,实际输出可能有所不同):

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=10.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=9.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=10.1 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=9.9 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 9.800/10.000/10.200/0.141 ms

此输出显示了来自 8.8.8.8 的响应,包含 time(以毫秒为单位的延迟)和 icmp_seq(序列号)等详细信息。0% packet loss(0% 丢包)表示连通性良好。如果你看到 100% packet loss,则表示存在连接问题。ping 命令是一个简单但功能强大的工具,用于确认你的系统可以访问外部网络,这是许多网络任务的前提条件。

安装并使用 netdiscover 识别网络设备

在确认网络连通性后,你现在将学习如何使用 netdiscover 工具发现本地网络上的设备。由于此工具可能未预装在 Kali Linux 容器中,你将首先安装它。

首先更新软件包列表并安装 netdiscover。在终端中输入以下命令,并在每个命令后按回车键:

apt install -y netdiscover

这些命令会刷新软件包列表并在不提示确认的情况下安装 netdiscover。等待安装完成;这可能需要几秒钟。

接下来,你需要确定要扫描的网络接口。你在步骤 1 中已经使用了 ip a,因此请查看之前的输出或再次运行它以确认你的接口名称(通常为 eth0)和 IP 范围(在 Docker 环境中通常为 172.17.0.0/16)。

现在,运行 netdiscover 工具来扫描本地网络。输入以下命令并按回车键:

netdiscover -i eth0 -r 172.17.0.0/16

-i eth0 指定了接口,-r 172.17.0.0/16 定义了要扫描的 IP 范围。如果你的接口名称不同,请相应地替换 eth0

预期输出(示例,实际输出可能有所不同):

Currently scanning: 172.17.0.0/16   |   Screen View: Unique Hosts

2 Captured ARP Req/Rep packets, from 2 hosts.   Total size: 120
_____________________________________________________________________________
  IP            At MAC Address     Count     Len  MAC Vendor / Hostname
-----------------------------------------------------------------------------
172.17.0.1      02:42:ac:11:00:01      1      60  Unknown vendor
172.17.0.2      02:42:ac:11:00:02      1      60  Unknown vendor

此输出列出了网络上设备的 IP 地址和 MAC 地址。例如,172.17.0.2 可能是你自己的系统,而 172.17.0.1 可能是网关。让扫描运行几秒钟以检测设备,然后按 Ctrl+C 停止扫描。

netdiscover 工具使用 ARP 请求来检测本地网络上的活动设备。这对于映射出哪些设备与你的系统连接在同一个网络段非常有用,是网络诊断中的常见任务。

安装 nmap 并执行基础端口扫描

识别出网络上的设备后,下一步是使用 nmap 工具扫描特定设备上的开放端口。这有助于你了解目标系统上正在运行哪些服务。由于 nmap 可能未预装,你将先安装它。

在终端中输入以下命令以更新软件包列表并安装 nmap,在每个命令后按回车键:

apt install -y nmap

等待安装完成;这可能需要几秒钟。

从上一步的 netdiscover 输出中,你应该已经记录了网络中设备的 IP 地址,例如 172.17.0.1。你将扫描此 IP 地址以查找开放端口。如果你在扫描中得到了不同的 IP,请改用该 IP。

在终端中输入以下命令并按回车键以执行基础端口扫描:

nmap 172.17.0.1

预期输出(示例,实际输出可能有所不同):

Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-11 06:04 UTC
Nmap scan report for 172.17.0.1
Host is up (0.0000060s latency).
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
3000/tcp open  ppp
3001/tcp open  nessus
MAC Address: 02:42:06:F2:C3:B0 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

此输出列出了目标 IP 上的开放端口。例如,22/tcp open ssh 表示正在运行 SSH 服务,而 3000/tcp3001/tcp 则暗示存在 Web 服务器。nmap 工具(全称 Network Mapper)被广泛用于网络发现和安全审计,允许你识别设备上潜在的访问点。

将 nmap 扫描结果保存到文件

在最后一步中,你将学习如何将 nmap 扫描的结果保存到文件中,以便将来参考。这是在之前执行基础端口扫描步骤基础上的进阶。

使用步骤 4 中相同的目标 IP 地址(例如 172.17.0.1),在终端中运行以下命令并按回车键执行扫描,并将输出保存到名为 scan_results.txt 的文件中:

nmap 172.17.0.1 -oN /root/scan_results.txt

-oN 选项指示 nmap 将结果以普通格式保存到指定的路径 /root/scan_results.txt。如果你在步骤 4 中使用了不同的 IP,请将 172.17.0.1 替换为该 IP。

输出会像以前一样显示在终端中,但同时也保存到了 /root/scan_results.txt。要确认文件包含结果,请输入以下命令并按回车键:

cat /root/scan_results.txt

预期输出(示例,实际输出可能有所不同):

Starting Nmap 7.95 ( https://nmap.org ) at 2025-04-11 06:05 UTC
Nmap scan report for 172.17.0.1
Host is up (0.0000060s latency).
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
3000/tcp open  ppp
3001/tcp open  nessus
MAC Address: 02:42:06:F2:C3:B0 (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

将扫描结果保存到文件是记录发现的一种实用方法。这允许你在以后查看或共享信息,而无需重新运行扫描,这在网络分析和故障排除中特别有用。

总结

在本实验中,你学习了如何使用 Kali Linux 中的基础网络工具来执行核心网络诊断。你首先通过 ip a 检查了网络接口,使用 ping 测试了连通性,通过 netdiscover 发现了本地网络上的设备,使用 nmap 执行了基础端口扫描,并将扫描结果保存到文件中以供日后参考。这些技能为在 Linux 环境中进行网络分析和故障排除奠定了坚实的基础。