IP 地址(Internet Protocol Address)是 IP 网络中用于标识网络接口或路由位置的逻辑地址,路由器根据它把数据包一步步转发到目标网络。
核心问题
网络通信需要先解决“包要送到哪台主机或哪个网络接口附近”的问题。IP 地址提供的是网络层定位能力;端口 提供的是传输层应用入口能力。两者组合后,TCP、UDP 和 Socket 才能把数据交给正确主机上的正确进程。
核心机制
常见 IP 地址分为 IPv4 和 IPv6:
| 类型 | 长度 | 例子 |
|---|---|---|
| IPv4 | 32 位 | 192.0.2.10 |
| IPv6 | 128 位 | 2001:db8::1 |
IP 地址通常和前缀长度一起使用:
192.0.2.10/24
2001:db8::1/64前缀表示网络部分,剩余部分表示该网络内的接口标识。路由器转发时通常按最长前缀匹配选择下一跳。
在传输层连接里,IP 地址参与区分通信端点:
TCP 连接四元组 = (源 IP, 源端口, 目的 IP, 目的端口)
UDP 递交通常至少看 = (协议, 目的 IP, 目的端口)这说明 IP 地址不等于进程,也不等于用户。它只是网络层地址;同一台主机上可以有多个 IP,同一 IP 上也可以有很多端口。
工程用途
- 主机寻址:客户端根据服务端 IP 把包发往目标网络。
- 服务监听:服务可以绑定
0.0.0.0、127.0.0.1、某个内网 IP 或公网 IP。 - 路由与防火墙:网络设备根据源/目的 IP、端口和协议做转发或过滤。
- 日志和排障:访问日志、连接跟踪和抓包都离不开源/目的 IP。
观察点包括公网/私网地址、回环地址、绑定地址、子网前缀、路由表、NAT 后的地址变化和 DNS 解析结果。
边界与常见坑
- IP 地址不是域名:域名需要 DNS 解析到一个或多个 IP 地址。
- IP 地址不是端口:IP 定位主机或接口,端口定位传输层入口。
127.0.0.1只代表本机回环:服务绑定到回环地址时,其他机器通常无法访问。0.0.0.0在绑定和访问中含义不同:服务端绑定0.0.0.0表示监听所有 IPv4 本地地址;客户端不能把它当作远端服务地址。- NAT 会改变可见地址:应用看到的源 IP 可能是网关或代理地址,不一定是真实客户端。
- 一台机器可有多个地址:多网卡、IPv4/IPv6、容器网络都会让“这台机器的 IP”变成上下文相关问题。