2026-04-25 实验一 端口扫描和ping通信

Ping以及tracert

1、ping实验

ping 是基于 ICMP(Internet 控制报文协议) 实现的网络连通性测试工具,它的核心就是发送「ICMP Echo 请求报文」,并接收目标主机返回的「ICMP Echo 回复报文」,以此验证两台主机之间的 IP 层连通性。

1、使用域名测试

打开cmd窗口(win + R)

Pasted image 20260425080629
  • ping 命令不直接识别域名,所以第一步会先通过 DNS 解析,把域名 www.baidu.com 转换成服务器的公网 IP 183.2.172.177
  • 你看到的 www.a.shifen.com 是百度的真实域名(www.baidu.com 是它的别名,CNAME 记录),解析后会显示实际的主机名。
  • 「具有 32 字节的数据」:Windows 系统 ping 命令默认会发送 32 字节 的填充数据,用来验证数据传输的完整性。
字段 含义 + ICMP 原理讲解
来自 183.2.172.177 的回复 目标服务器收到了你发送的「ICMP Echo 请求报文」,并成功返回了「ICMP Echo 回复报文」,说明 IP 层连通性正常。
字节=32 服务器返回的 ICMP 报文数据部分,和你发送的 32 字节完全一致,验证了数据传输的完整性(没有被篡改或丢失)。
时间=49ms 往返时间(RTT):从你发送 ICMP 请求,到收到服务器回复的总耗时,单位是毫秒。

这个值反映了网络延迟:时间越短,说明你的电脑和服务器之间的网络链路越通畅、距离越近。
TTL=47 生存时间(Time To Live):防止数据包在网络中无限循环(比如路由环路)的机制。

每个路由器转发数据包时,会把 TTL 值减 1,减到 0 就会丢弃数据包。

这里 TTL=47,说明服务器发送报文时的初始 TTL 是 64(Linux 系统默认值),经过了 64-47=17 个路由器,才到达你的电脑。

2、使用公网服务器测试

Pasted image 20260425080945

前提:远端计算机要开启支持icmp协议。一般服务器默认关闭icmp服务器,原因如下:

  • 防攻击:攻击者可以用 ICMP 做 “ping 洪水攻击”(向服务器疯狂发 ICMP 请求,把带宽占满),或者利用 ICMP 重定向攻击篡改路由;
  • 减少暴露:ping 通了就证明服务器在线,攻击者可以用 ping 来扫描存活主机,禁了 ICMP 能减少被攻击的概率。

2、 tracert实验

1、使用域名测试

tracert(Windows 系统的路由追踪工具,Linux 上叫traceroute),核心是用 ICMP 协议 + TTL 机制,探测数据包从你的电脑到目标主机,经过的所有路由器(跃点)

Pasted image 20260425081807
  • 第一步:TTL=1 的探测
    • 发送一个TTL=1的 ICMP Echo 请求包,第一跳路由器收到后,会把 TTL 减 1 变成0,然后丢弃数据包,并返回ICMP 超时报文(类型 11)。你收到这个报文,就知道了「第一跳路由器的 IP 和延迟」。
  • 第二步:TTL 递增探测
    • 再发送TTL=2的包,第二跳路由器会返回超时报文,以此类推,直到:
  • 第三步:到达目标主机
    • 当数据包到达目标服务器时,服务器会像ping一样,返回ICMP Echo 回复(类型 0),追踪结束。
Pasted image 20260425082135 Pasted image 20260425082200 Pasted image 20260425082226

2、使用服务器测试

Pasted image 20260425082916 Pasted image 20260425083004

最终访问到京东云服务器的数据中心。

网络端口扫描

1、TCP通信原理

1、第一次握手:
•主机A的某个端口向主机B的某个端口发出TCP连接请求数据包,其TCP包头的标志位设置为SYN=1,ACK=0,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x,这个过程称为第一次握手。

2、第二次握手:
•主机B的相应端口收到连接请求数据包后,如端口是开放的,则发回确认数据包。在确认数据包中,TCP包头的标志位设置为SYN=1,ACK=1,确认序号为x+1,同时B主机也会生成一个自己的序号y,这个过程称为第二次握手。

3、第三次握手:
•主机A收到此数据包后,还要向B给出确认数据包,其TCP包头的标志位设置为ACK=1,其确认序号为y+1,这个过程称为第三次握手。

Pasted image 20260425083331 jimeng-2026-04-25-9998-帮我生成图片:帮我生成图片:帮我生成一张TCP三次握手的原理图,不过不是官方的那...

2、端口扫描原理

A、全连接扫描

Pasted image 20260425163921

SuperScan 3.0 属于:TCP 全连接端口扫描(TCP Connect Scan)

它直接调用 Windows 系统的 connect() 函数完成完整连接,所以叫全连接扫描

Pasted image 20260425164208

B、半打开式扫描

Nmap 默认(管理员权限运行)

Pasted image 20260425164005 Pasted image 20260425164441

C、秘密扫描

Pasted image 20260425164552 Pasted image 20260425164713

3、Superscan实验

A、基本配置

Pasted image 20260425165230 Pasted image 20260425165445 Pasted image 20260425170038

117.72.201.196

标记 含义 验证了什么?
IP 前的绿色对勾 主机存活探测成功(ICMP ping 响应正常) 证明云服务器的安全组 ICMP 规则、服务器内防火墙配置全部生效,主机外网可达
22 SSH Remote Login Protocol 端口扫描成功,TCP 三次握手完成,端口状态为open 证明目标端口(22)处于监听状态,SSH 服务正常运行
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.13. 服务 banner 信息读取成功 证明 SuperScan 完成了「端口扫描→服务识别」的完整流程,成功获取了服务版本和系统指纹

B、高频端口科普

Windows系统高频扫描端口:

高频标志性端口

135、139、445、3389

作用:

  1. 135 端口:RPC 系统核心服务,Windows 系统必备
  2. 139/445 端口:NetBIOS、SMB 协议
    用来「局域网文件共享、打印机共享」
  3. 3389 端口:Windows 专属 远程桌面(图形化远程控制)

Linux(Ubuntu/CentOS 服务器)常见端口

高频标志性端口

22、80、443、3306、6379

作用

  1. 22 端口:SSH 远程连接(Linux 服务器最核心、默认唯一远程端口)
  2. 80/443:Nginx、Apache 网站服务
  3. 3306:MySQL 数据库
  4. 6379:Redis 缓存

4、zenmap实验

打开方式如下:

Pasted image 20260429153622 Pasted image 20260429154004
nmap [扫描选项] 目标IP/网段

最常用指令:

  • 1、基础 TCP 端口扫描
nmap 目标IP
  • 2、全量 TCP 端口扫描
nmap -p- 目标IP
  • 3、UDP 端口扫描
nmap -sU 目标IP
  • 4、探测服务版本 + 操作系统
sudo nmap -sV -O 目标IP
  • -sV:探测服务版本(如 Apache 2.4、MySQL 8.0)

  • -O:探测操作系统(如 Windows 11、Ubuntu 22.04)

  • Linux/Mac 必须加 sudo(管理员权限),Windows 用管理员 CMD执行

  • 5、扫描本地局域网所有主机

nmap -T4 192.168.51.0/24
Pasted image 20260429160119
  • -T4 是 Nmap 的「 aggressive 扫描模板」,会缩短超时时间、提高并发连接数,适合局域网实验环境,能明显缩短扫描耗时。
Pasted image 20260429160357

扩展指令:

nmap -p 22 --script ssh-brute --script-args "userdb=C:\\Users\\kiple\\Desktop\\users.txt,passdb=C:\\Users\\kiple\\Desktop\\pass.txt" 117.72.201.198

这是一条 基于 Nmap 脚本引擎(NSE)的 SSH 弱口令暴力破解指令,核心目的是:

对目标主机 117.72.201.198 的 SSH 服务,用你提供的「用户名字典 + 密码字典」尝试爆破登录,检测目标是否存在弱口令漏洞。

指令片段 作用说明
nmap 调用 Nmap 工具的基础命令
-p 22 指定目标端口:限定只扫描 / 操作 22 端口(SSH 服务默认端口),避免浪费时间扫描其他端口
--script ssh-brute 调用 NSE 脚本:加载 Nmap 自带的ssh-brute.nse脚本,这个脚本专门用于 SSH 服务的账号密码爆破
--script-args "..." 给脚本传递参数:给ssh-brute脚本传入自定义配置,双引号里是具体参数
userdb=C:\\Users\\...\\users.txt 告诉脚本「用户名字典文件」的路径:文件里存着要尝试的所有用户名
passdb=C:\\Users\\...\\pass.txt 告诉脚本「密码字典文件」的路径:文件里存着要尝试的所有密码
117.72.201.198 目标主机 IP:指定要测试的目标主机地址

必须合法授权!

只能测试自己的主机、或明确获得对方授权的主机,非法爆破他人设备是违法行为

Pasted image 20260429160731
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Archive PDF预览 PPTX Obsidian