网络基础:IP、端口与协议通俗版

用快递、小区、门牌号和通信规则来理解 IP 地址、端口、TCP、UDP、HTTP 等网络基础概念,帮助零基础自学者看懂网络通信。

写在前面:合法学习边界

本文面向正在从零学习网络安全、渗透测试和系统运维的人。文中会用简单命令演示如何查看本机网络状态,这些命令默认只检查你自己有权访问的计算机。若要把扫描、探测、抓包、漏洞验证等动作用到别的系统上,必须先获得明确授权;未经授权访问他人系统、网站、服务器或内网设备,在中国可能触犯《网络安全法》《数据安全法》《个人信息保护法》和《刑法》中的相关规定。学习网络安全时,请始终遵守授权、最小必要和影响可控的原则。

一、为什么网络学习要从 IP、端口和协议开始

网络安全并不是只看漏洞利用。要理解攻击者如何发现目标、如何连接服务、如何定位应用漏洞,必须先理解数据是如何在网络中流动的。网络通信看似复杂,但核心对象其实不多:主机用什么地址被找到、服务在哪个端口监听、双方用什么协议交换数据、应用层又如何定义请求与响应。

可以把网络通信想象成寄快递。IP 地址相当于收件地址,端口相当于收件人在同一栋楼里的房间号,协议相当于双方必须遵守的沟通规则。快递公司负责把包裹从发件地送到收件地,路由器负责选择路径,网卡和操作系统负责收发数据包,应用层则决定包裹里到底是网页、文件、登录表单还是邮件。

掌握这些概念后,后面的 HTTP/HTTPS、抓包、端口扫描、Web 漏洞、日志分析和应急响应都会更清楚。你看的不只是屏幕上的网页,而是请求在网络中如何被封装、转发、接收、解析和执行。

二、IP 地址:主机的网络门牌号

IP 地址用于标识网络中的主机。常见的是 IPv4,例如 192.168.1.10010.0.0.5。IPv4 地址由 32 位二进制组成,通常写成四段十进制数字,每段范围是 0 到 255。因为 32 位地址数量有限,现实中又常用 NAT、私有地址和 IPv6 来扩展可用范围。

常见私有地址包括:

1
2
3
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

这些地址通常用于家庭、公司或云服务器内部网络。外部网络一般不能直接访问这些地址,除非经过 NAT、端口映射、VPN 或跳板机。

1. 公网 IP 与私有 IP

公网 IP 是可以被互联网上的其他主机直接访问的地址。私有 IP 只在局域网内部有意义。比如家里的电脑可能是 192.168.1.100,而家庭路由器对外可能是 123.45.67.89。路由器通过 NAT 把内部多个设备映射到同一个公网 IP。

对于安全学习来说,这有两个含义:第一,很多漏洞只能在目标所在网络或云内网中被发现;第二,从公网扫描内网地址没有意义,除非你已经进入内网或目标主动暴露了内网端口。

2. CIDR 和子网

你可能会看到 192.168.1.0/24。这里的 /24 表示前 24 位是网络位,后 8 位是主机位,所以这个子网大约有 254 个可用主机地址。学习网络安全时,理解 CIDR 很重要,因为扫描范围、防火墙规则、云安全组、日志来源 IP 分析都会用到它。

例如:

1
2
3
10.0.0.0/8   表示整个 10 开头的私有地址段
192.168.1.0/24 表示 192.168.1.0 到 192.168.1.255
172.16.0.0/12 表示云环境中常见的较大私有地址段

三、端口:同一台主机上的服务房间号

一台主机可以同时运行很多服务:Web 服务、数据库、邮件服务、SSH、远程桌面等。IP 地址只能定位到主机,不能告诉系统要把数据交给哪个程序。端口就是解决这个问题。

端口范围是 0 到 65535:

1
2
3
0-1023:常见系统服务端口
1024-49151:注册端口,很多应用会用到
49152-65535:动态或私有端口,常见于临时连接

常见端口包括:

端口常见协议或服务用途
20/21FTP文件传输
22SSHLinux 远程管理
25SMTP发送邮件
53DNS域名解析
67/68DHCP动态分配 IP
80HTTP普通 Web 访问
110POP3接收邮件
143IMAP接收邮件
443HTTPS加密 Web 访问
3306MySQLMySQL 数据库
3389RDPWindows 远程桌面
5432PostgreSQLPostgreSQL 数据库
6379Redis缓存服务
8080HTTP/代理/应用常见 Web 或反向代理端口

需要注意的是,端口和服务并不绝对绑定。一个服务可以监听任意端口,例如 Nginx 不一定只监听 80,MySQL 也可能被配置为其他端口。因此安全人员会通过端口号、服务响应、认证页面、Banner 和漏洞指纹综合判断。

四、协议:通信双方必须遵守的规则

协议不是工具,而是一套规则。没有协议,收发双方就无法理解对方发送的数据。

网络安全学习中常见协议可以分为几类:

1. TCP:可靠的“打电话式”连接

TCP 负责建立可靠连接。它会通过三次握手建立连接,通过序列号、确认号和重传机制保证数据按顺序到达。HTTP、HTTPS、SSH、数据库连接大多基于 TCP。

典型 Web 访问流程可以理解为:

1
2
3
客户端 -> 服务器:我想建立连接
服务器 -> 客户端:可以建立连接
客户端 -> 服务器:确认连接,后续可以开始传数据

2. UDP:简单的“发信式”传输

UDP 不保证连接建立、不保证顺序、也不负责可靠重传。它更轻,适合 DNS 查询、部分视频流、游戏服务和 ICMP 之外的轻量协议。UDP 的优势是快,代价是可靠性要求需要应用自己处理。

3. ICMP:网络诊断和错误反馈

ICMP 常用于 ping 和路径诊断。它不是用来传输业务数据的协议,但对网络连通性排查很重要。

1
2
ping -c 4 8.8.8.8
tracert 8.8.8.8

Windows 下使用 tracert,Linux 下常用:

1
traceroute 8.8.8.8

五、HTTP 和 HTTPS:最常见的应用层协议

HTTP 是超文本传输协议,用来规定浏览器和服务器如何请求网页。一次访问网页时,浏览器通常会在 TCP 连接上发送 HTTP 请求,服务器返回 HTML、CSS、JavaScript、图片等资源。

HTTPS 并不是另一种完全独立的业务语言,而是在 HTTP 外层增加 TLS/SSL 加密。它解决三个核心问题:加密传输、身份认证、完整性保护。

访问 HTTPS 网站时,大致流程是:

1
2
3
4
5
6
TCP 连接建立
TLS 握手,协商加密算法
验证服务器证书
在加密通道中发送 HTTP 请求
服务器返回加密响应
客户端解密并渲染页面

所以抓包时,HTTP 可以看见明文请求体、Cookie 和表单参数;HTTPS 通常只能看到域名、证书信息、TLS 握手和密文,除非你能合法拥有对应密钥、证书解密配置或代理信任链。

六、动手:查看本机网络状态

以下命令适合在 Linux 系统中学习。它们检查的是本机状态,不涉及扫描他人系统。

1. 查看本机 IP 和接口

1
ip addr

关注 eth0ens33wlan0 等接口下的 inet 地址。127.0.0.1 是回环地址,代表本机;192.168.x.x 通常是局域网地址。

2. 查看本机监听端口

1
sudo ss -tulnp

解释一下参数:

1
2
3
4
5
-t:显示 TCP
-u:显示 UDP
-l:只显示监听状态
-n:显示数字地址和端口,不解析域名
-p:显示进程名和 PID

你通常会看到类似结果:

1
2
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=5678,fd=7))

这说明本机在 22 端口运行 SSH,在 80 端口运行 Nginx。

3. 测试本机到目标的连通性

1
ping -c 4 8.8.8.8

如果 ping 不通,不一定是网络故障。很多防火墙会丢弃 ICMP,或者服务器禁用了 ping。此时还可以用端口探测判断服务是否可达。

4. 查看 TCP 连接状态

1
sudo ss -antp

常见状态包括:

1
2
3
4
ESTAB:连接已建立
TIME_WAIT:连接关闭后客户端等待状态
CLOSE_WAIT:对端已关闭,本端还没关闭
LISTEN:服务正在监听

安全排查中,TIME_WAITCLOSE_WAIT 的异常堆积可能说明应用连接没有正确关闭,或者 Web 服务正在承受异常流量。

5. 测试 HTTP 和 HTTPS 响应

1
2
3
curl -I http://example.com
curl -I https://example.com
curl -v https://example.com --max-time 10

-I 表示只请求响应头,-v 显示连接和 TLS 相关信息。若只是测试公开且你有权访问的网站,这是正常的网络诊断动作;如果目标是私有系统或企业资产,必须获得授权。

6. 关于端口扫描工具 Nmap

Nmap 是安全人员常用的网络探测工具,但它本质上是在探测目标系统和开放服务。学习时可以这样理解命令:

1
2
3
nmap -p 22,80,443 127.0.0.1
nmap -sS -p- <获得授权的目标IP>
nmap -sV -O -p- <获得授权的目标IP>

这些示例不能直接用于任意互联网地址。只有当你拥有明确书面授权,并且确认扫描范围、时间窗口、速率和目标边界时,才可以使用。未经授权扫描他人主机可能导致误判、触发安全告警,严重时可能承担法律责任。

七、从安全角度看 IP、端口和协议

网络安全人员经常通过 IP、端口和协议做判断。

1. 攻击面分析

一个网站开放 80 和 443 端口,通常意味着存在 Web 攻击面;如果还开放 22 端口,可能存在 SSH 爆破面;如果开放 3306、6379、8080、9200 等服务端口,需要重点确认是否存在公网暴露、弱口令或未授权访问。

真实环境中,很多安全问题并不是单个漏洞导致,而是“公网暴露 + 默认端口 + 弱口令 + 无访问控制 + 日志缺失”的组合结果。

2. 源 IP 和请求链路

日志中的 IP 未必直接是攻击者真实地址。经过 CDN、反向代理、NAT、代理 IP、跳板机后,源 IP 可能被转换。很多 Web 日志需要结合 X-Forwarded-ForX-Real-IP 和代理链路信息判断。但也不能盲目信任这些头部字段,因为它们可以被客户端伪造。

3. 端口与服务识别

端口只是线索,不是最终证据。攻击者在利用漏洞前通常还会确认服务类型、版本、协议细节和是否存在防护。比如 HTTP 服务可能经过 Nginx、Apache、Tomcat、Node.js、PHP-FPM 等组合;同一个 80 端口背后可能是静态网站,也可能是复杂 API。

4. 协议层异常

很多异常流量会先在协议层暴露出来:大量 SYN 未完成连接、同一 IP 频繁访问 404、短时间访问大量端口、异常 User-Agent、HTTP 请求方法异常、TLS 指纹明显不同于正常浏览器等。这些都不是单一漏洞利用,却是应急响应和日志分析中的重要线索。

八、常见误解

误解一:IP 地址就是真实身份

IP 地址可以变化,代理、VPN、NAT、移动网络都会改变出口 IP。安全调查中不能只靠 IP 定责,还要结合认证信息、行为链路、日志时间线和证据保存情况。

误解二:端口开放就等于漏洞存在

端口开放只说明服务可能存在,不等于一定有漏洞。但公网暴露服务会扩大攻击面,需要进一步检查访问控制、版本、账号策略、补丁状态和日志。

误解三:HTTPS 就是绝对安全

HTTPS 主要保护传输过程,不能单独保证后端应用安全。登录表单被窃取后,如果后端存在 SQL 注入,HTTPS 并不能阻止攻击;用户登录成功后,如果 Cookie 被 XSS 窃取,HTTPS 也不能替代应用安全设计。

九、小结

网络基础可以总结成一句话:IP 找到主机,端口找到服务,协议决定沟通方式,应用层定义具体业务。学习网络安全时,不要把工具命令当成重点,真正重要的是理解数据如何在网络上流动、服务如何被访问、异常行为如何被观察和解释。

建议你把本文作为阶段一第一篇文章来读。接下来可以继续学习 HTTP/HTTPS 抓包入门,重点观察浏览器与服务器之间到底发生了什么。理解这些基础之后,再进入 Web 安全、SQL 注入、XSS、端口扫描和日志分析,学习路径会更稳。