IP地址与TCP协议——互联网的"门牌号"与"快递规则"
导读:如果把互联网比作一座超级大城市,那IP地址就是每栋楼的"门牌号",而TCP协议就是快递员送货时必须遵守的"签收流程"。没有门牌号,快递找不到地方;没有签收规则,包裹丢了都不知道。今天我们就来搞清楚这两件大事!
一、IP地址:给每台电脑一个"身份证号"
1.1 为什么需要IP地址?
问题场景:小明在家用电脑上网课,同时手机也在刷视频。路由器怎么知道网课数据该给电脑、视频数据该给手机呢?
解决方案:每台设备都有一个唯一的IP地址,就像每个人都有一个身份证号。路由器根据IP地址把数据"快递"到正确的设备。
生活类比:IP地址 = 你家的详细收货地址。快递员(路由器)根据地址把包裹(数据)送到正确的地方。
1.2 IPv4的结构
IPv4地址是一个 32位 的二进制数,为了方便人类阅读,我们把它分成4组,每组8位,用十进制表示,中间用点隔开——这就是点分十进制表示法。
二进制:11000000 . 10101000 . 00000001 . 00000001
十进制: 192 . 168 . 1 . 1
点分十进制的范围:每一组(8位)最小 00000000=0,最大 11111111=255。
所以合法的IP地址范围:0.0.0.0 ~ 255.255.255.255
1.3 二进制与十进制的互相转换
这是网络基础中的基础,考试常考!
十进制 → 二进制(除2取余法):
以192为例:
192 / 2 = 96 ... 余 0
96 / 2 = 48 ... 余 0
48 / 2 = 24 ... 余 0
24 / 2 = 12 ... 余 0
12 / 2 = 6 ... 余 0
6 / 2 = 3 ... 余 0
3 / 2 = 1 ... 余 1
1 / 2 = 0 ... 余 1
从下往上读:11000000
快捷方法——记住权值表:
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|
例如:168 = 128 + 32 + 8 = 10101000
二进制 → 十进制:把为1的位的权值加起来。
例如 10101000:128 + 32 + 8 = 168
互动提问:请把十进制数 200 转换成二进制。提示:200 = 128 + 64 + 8,答案是什么?(答:
11001000)
1.4 查看和配置IP地址
| 操作 | RHEL系(CentOS/Rocky) | Debian系(Ubuntu) |
|---|---|---|
| 查看IP | ip addr 或 ip a | ip addr 或 ip a |
| 旧版查看 | ifconfig(需装net-tools) | ifconfig(需装net-tools) |
| 临时设置IP | ip addr add 192.168.1.100/24 dev eth0 | 同左 |
| 永久配置 | 编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 | 编辑 /etc/netplan/01-netcfg.yaml |
| 重启网络 | nmcli connection reload | netplan apply |
RHEL系配置文件示例:
# /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
Debian系Netplan配置示例:
# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
二、子网掩码:区分"自己人"和"外人"
2.1 子网掩码的作用
问题场景:你的电脑IP是 192.168.1.100,想给 192.168.1.200 发文件——这是同一个局域网内的"自己人",直接发就行。但如果你想访问 8.8.8.8(Google DNS),那就得通过网关(路由器)转发。电脑怎么知道对方是"自己人"还是"外人"?
解决方案:用子网掩码!把IP地址和子网掩码做"按位与"运算,如果结果相同,说明在同一个子网内,可以直接通信。
生活类比:子网掩码就像"同一个小区"的判断规则。如果你的楼栋号和对方的楼栋号在同一个小区范围内(同一子网),你可以直接走过去;否则你得走小区大门(网关)。
2.2 子网掩码的表示方法
传统写法:255.255.255.0
CIDR表示法(斜线记法):/24
CIDR的含义:子网掩码中连续1的个数。
| CIDR | 子网掩码 | 二进制子网掩码 | 可用主机数 |
|---|---|---|---|
| /8 | 255.0.0.0 | 11111111.00000000.00000000.00000000 | 16,777,214 |
| /16 | 255.255.0.0 | 11111111.11111111.00000000.00000000 | 65,534 |
| /24 | 255.255.255.0 | 11111111.11111111.11111111.00000000 | 254 |
| /25 | 255.255.255.128 | 11111111.11111111.11111111.10000000 | 126 |
| /26 | 255.255.255.192 | 11111111.11111111.11111111.11000000 | 62 |
| /27 | 255.255.255.224 | 11111111.11111111.11111111.11100000 | 30 |
| /28 | 255.255.255.240 | 11111111.11111111.11111111.11110000 | 14 |
| /30 | 255.255.255.252 | 11111111.11111111.11111111.11111100 | 2 |
可用主机数公式:2^(32-CIDR) - 2(减去网络地址和广播地址)
互动提问:子网掩码
255.255.255.240对应CIDR是多少?这个子网有多少可用IP?
(答:/28,可用IP = 2^4 - 2 = 14个)
2.3 按位与运算示例
IP: 192.168.1.100,掩码: 255.255.255.0
IP地址: 11000000.10101000.00000001.01100100 (192.168.1.100)
子网掩码: 11111111.11111111.11111111.00000000 (255.255.255.0)
按位与: 11000000.10101000.00000001.00000000 (192.168.1.0) ← 网络地址
三、子网划分实战
3.1 为什么需要子网划分?
问题场景:学校有4个部门——教务处(60台电脑)、学生机房(120台)、行政办公室(30台)、图书馆(14台)。如果全放一个子网里,广播风暴会影响所有部门,而且不便于安全管理。
解决方案:把一个大的网段划分成多个小的子网,每个部门一个子网。
生活类比:一栋教学楼有很多班级,如果所有人都在一个大厅里上课,吵得根本听不见。所以要隔成多个教室,每个班级独立上课。
3.2 子网划分步骤
需求:将 192.168.1.0/24 划分给4个部门。
第一步:确定每个子网需要的最大主机数——120台(学生机房)。
第二步:计算主机位。120 < 126 = 2^7 - 2,所以需要7位主机位。
第三步:网络位 = 32 - 7 = 25,即 /25,子网掩码 255.255.255.128。
第四步:划分结果:
| 子网 | 网络地址 | 可用范围 | 广播地址 | 容量 |
|---|---|---|---|---|
| 子网1 | 192.168.1.0/25 | 192.168.1.1 ~ 192.168.1.126 | 192.168.1.127 | 126 |
| 子网2 | 192.168.1.128/25 | 192.168.1.129 ~ 192.168.1.254 | 192.168.1.255 | 126 |
如果还需要更细的划分,可以在子网2的基础上继续划:
| 子网 | 网络地址 | 可用范围 | 广播地址 | 容量 |
|---|---|---|---|---|
| 子网2a | 192.168.1.128/26 | .129 ~ .190 | .191 | 62 |
| 子网2b | 192.168.1.192/26 | .193 ~ .254 | .255 | 62 |
继续细分2b:
| 子网 | 网络地址 | 可用范围 | 广播地址 | 容量 |
|---|---|---|---|---|
| 子网2b-1 | 192.168.1.192/27 | .193 ~ .222 | .223 | 30 |
| 子网2b-2 | 192.168.1.224/27 | .225 ~ .254 | .255 | 30 |
继续细分2b-2:
| 子网 | 网络地址 | 可用范围 | 广播地址 | 容量 |
|---|---|---|---|---|
| 子网2b-2a | 192.168.1.224/28 | .225 ~ .238 | .239 | 14 |
| 子网2b-2b | 192.168.1.240/28 | .241 ~ .254 | .255 | 14 |
最终分配方案:
| 部门 | 子网 | 容量 |
|---|---|---|
| 学生机房 | 192.168.1.0/25 | 126 |
| 教务处 | 192.168.1.128/26 | 62 |
| 行政办公室 | 192.168.1.192/27 | 30 |
| 图书馆 | 192.168.1.224/28 | 14 |
四、私有地址与公网地址
4.1 为什么会有私有地址?
问题场景:IPv4总共约43亿个地址,全球有上百亿台设备,IP地址不够用怎么办?
解决方案:划定一些"私有地址段",只能在局域网内使用,不需要全球唯一。你家的路由器和邻居家的路由器可以使用相同的私有地址(如 192.168.1.1),互不干扰。
4.2 三类私有地址
| 类别 | 私有地址范围 | CIDR | 地址数量 | 典型场景 |
|---|---|---|---|---|
| A类 | 10.0.0.0 ~ 10.255.255.255 | 10.0.0.0/8 | 约1677万 | 大型企业/云内网 |
| B类 | 172.16.0.0 ~ 172.31.255.255 | 172.16.0.0/12 | 约104万 | 中型企业 |
| C类 | 192.168.0.0 ~ 192.168.255.255 | 192.168.0.0/16 | 约6.5万 | 家庭/小型办公室 |
互动提问:你家的路由器管理页面地址是什么?常见的有
192.168.1.1或192.168.0.1,它们属于哪类私有地址?(答:C类私有地址)
4.3 NAT(网络地址转换)
问题场景:你家有3台设备(手机、电脑、平板),都用的私有地址(如192.168.1.x),但上网时运营商只给了你1个公网IP。3台设备怎么共享1个公网IP上网?
解决方案:NAT(Network Address Translation)。路由器在转发数据时,把内部的私有IP替换成公网IP,并记住对应关系,收到回包时再转换回来。
生活类比:NAT就像公司前台。外面的人只认识公司总机号码(公网IP),前台(路由器)接到电话后,根据分机号(私有IP)转接到具体的人。
内部网络 路由器(NAT) 互联网
手机 192.168.1.2 ───→ 替换源IP为公网IP ───→ 目标服务器
电脑 192.168.1.3 ───→ 替换源IP为公网IP ───→ 目标服务器
平板 192.168.1.4 ───→ 替换源IP为公网IP ───→ 目标服务器
↑ │
└──── 根据端口映射表 ──┘
把回包转给正确的设备
五、IPv6简介
5.1 为什么需要IPv6?
问题:IPv4的43亿个地址已经用完了(2019年IANA正式宣布IPv4地址池耗尽)。
解决方案:IPv6采用 128位 地址,地址总数约 3.4x10^38 个——号称能给地球上每一粒沙子都分配一个IP。
5.2 IPv6 vs IPv4 对比
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32位 | 128位 |
| 表示方式 | 点分十进制(192.168.1.1) | 冒号分隔十六进制 |
| 地址数量 | 约43亿 | 约3.4x10^38 |
| 配置方式 | 手动或DHCP | 支持自动配置(SLAAC) |
| 安全性 | IPSec可选 | IPSec内置 |
| NAT | 必需 | 理论上不需要 |
IPv6地址示例:
完整:2001:0db8:85a3:0000:0000:8a2e:0370:7334
简写:2001:db8:85a3::8a2e:370:7334
简写规则:连续的0段可以用 :: 代替(只能用一次);每段的前导0可省略。
查看IPv6地址:
ip -6 addr show
# 或
ifconfig | grep inet6
六、TCP/IP协议族
6.1 OSI七层模型(简化版)
OSI模型是网络通信的理论框架,我们用"寄快递"来类比:
| 层次 | 名称 | 快递类比 | 代表协议 |
|---|---|---|---|
| 7 | 应用层 | 你写了一封信(内容) | HTTP、FTP、SMTP、DNS |
| 6 | 表示层 | 翻译成对方看得懂的语言 | SSL/TLS、JPEG |
| 5 | 会话层 | 确定跟谁对话 | 建立/管理会话 |
| 4 | 传输层 | 选择快递方式(顺丰=TCP/普通=UDP) | TCP、UDP |
| 3 | 网络层 | 规划运输路线 | IP、ICMP |
| 2 | 数据链路层 | 每一段路上的交通工具 | Ethernet、ARP |
| 1 | 物理层 | 公路、铁路等基础设施 | 网线、光纤、WiFi信号 |
实际中:我们更常用简化的 TCP/IP四层模型:应用层、传输层、网络层、网络接口层。
6.2 TCP三次握手——建立连接
TCP是面向连接的可靠传输协议,通信前必须先"握手"建立连接。
生活类比:就像打电话——
- 你:喂,听得到吗?(SYN)
- 对方:听得到,你听得到我吗?(SYN+ACK)
- 你:听得到!那我们开始说吧。(ACK)
客户端 服务器
| |
|---- 1 SYN (seq=x) ------------------->| 客户端发起连接请求
| |
|<--- 2 SYN+ACK (seq=y, ack=x+1) ------| 服务器确认并回复
| |
|---- 3 ACK (ack=y+1) ----------------->| 客户端确认,连接建立
| |
| 连接建立成功! |
| 开始传输数据... |
为什么是三次而不是两次?
如果只有两次握手,一个延迟的旧SYN包到达服务器时,服务器会认为连接已建立,白白浪费资源。第三次握手让客户端确认"确实是我要建立的连接"。
6.3 TCP四次挥手——断开连接
客户端 服务器
| |
|---- 1 FIN (seq=u) ------------------->| 客户端:我发完了
| |
|<--- 2 ACK (ack=u+1) -----------------| 服务器:收到,但我可能还没发完
| |
| (服务器继续发送剩余数据) |
| |
|<--- 3 FIN (seq=w) --------------------| 服务器:我也发完了
| |
|---- 4 ACK (ack=w+1) ----------------->| 客户端:收到,连接关闭
| |
| 等待 2MSL(超时时间) | 确保对方收到最后的ACK
| |
| 连接完全关闭! |
为什么是四次而不是三次?
因为TCP是全双工的(双方可以独立收发数据)。一方说"我发完了"不代表对方也发完了,所以需要各自独立关闭发送通道。
互动提问:你在浏览器打开一个网页后关闭标签页,TCP连接经历了什么过程?
(答:先经过三次握手建立连接,传输完网页数据后,通过四次挥手断开连接。)
6.4 UDP vs TCP 对比
| 特性 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(三次握手) | 无连接 |
| 可靠性 | 可靠(确认、重传、排序) | 不可靠(发了就不管) |
| 速度 | 较慢 | 快 |
| 头部大小 | 20字节 | 8字节 |
| 典型应用 | 网页(HTTP)、SSH、文件传输 | 视频直播、DNS查询、游戏 |
生活类比:
- TCP = 顺丰快递:保证送达、签收确认、有单号追踪
- UDP = 校园广播:播了就播了,不管你听没听到
七、常见端口号
端口号就像"门牌号里的房间号"。IP地址找到了大楼,端口号找到具体哪个房间(哪个程序)接收数据。
| 端口 | 协议 | 用途 | 说明 |
|---|---|---|---|
| 20 | FTP-Data | FTP数据传输 | 传输文件内容 |
| 21 | FTP-Control | FTP控制连接 | 发送命令(登录、列目录等) |
| 22 | SSH | 安全远程登录 | 加密传输,替代Telnet |
| 23 | Telnet | 远程登录(明文) | 不安全,生产环境禁用 |
| 25 | SMTP | 发送邮件 | 发件用 |
| 53 | DNS | 域名解析 | 域名转IP地址 |
| 80 | HTTP | 网页浏览 | 明文传输 |
| 443 | HTTPS | 加密网页 | HTTP + TLS加密 |
| 3306 | MySQL | MySQL数据库 | 默认端口 |
| 6379 | Redis | Redis缓存 | 内存数据库 |
| 8080 | HTTP-Alt | Web替代端口 | 常用于Tomcat/开发环境 |
查看本机开放端口:
# 通用
ss -tlnp # 查看TCP监听端口及对应进程
netstat -tlnp # 旧版命令(需安装net-tools)
# RHEL系
ss -tlnp | grep -E ':(80|443|22) '
# Debian系(同上)
ss -tlnp | grep -E ':(80|443|22) '
互动提问:为什么HTTPS用443端口而不是80端口?如果HTTP也用443会怎样?
(答:端口号本身不决定加密与否,但约定俗成80=HTTP、443=HTTPS,浏览器会根据协议自动选择端口。混用会导致连接混乱。)
八、DNS域名解析
8.1 为什么需要DNS?
问题场景:人类记不住 142.250.80.46 这样的数字IP,但能轻松记住 www.google.com。
解决方案:DNS(Domain Name System)就像一本全球"电话簿",把域名翻译成IP地址。
生活类比:DNS = 114查号台。你告诉接线员"我要找张三"(域名),接线员帮你查到张三的电话号码(IP地址)。
8.2 DNS解析流程
用户浏览器输入 www.example.com
|
v
1 查本地DNS缓存(浏览器缓存 -> 操作系统缓存 -> hosts文件)
|
v (没找到)
2 向本地DNS服务器(运营商/Google 8.8.8.8)发送递归查询
|
v
3 本地DNS服务器向根域名服务器发起迭代查询
| 根服务器回复:".com 的权威服务器是 a.gtld-servers.net"
v
4 本地DNS服务器向 .com 权威服务器查询
| 回复:"example.com 的权威DNS是 ns1.example.com"
v
5 本地DNS服务器向 example.com 权威DNS查询
| 回复:"www.example.com 的IP是 93.184.216.34"
v
6 本地DNS服务器把结果返回给用户,并缓存该记录
|
v
7 浏览器用IP地址发起HTTP连接
递归查询 vs 迭代查询:
| 类型 | 含义 | 类比 |
|---|---|---|
| 递归查询 | 客户端问一次,DNS服务器必须给出最终答案 | 你打114,接线员帮你查到底 |
| 迭代查询 | DNS服务器之间互相询问,每次得到"更接近答案的线索" | 接线员A问B,B说"你去问C",C说"你问D" |
8.3 常用DNS工具
# 通用
nslookup www.baidu.com # 基础查询
dig www.baidu.com # 详细查询(含TTL、记录类型等)
dig www.baidu.com +trace # 追踪完整解析路径
host www.baidu.com # 简单查询
# 查看当前DNS配置
cat /etc/resolv.conf # 查看DNS服务器地址
cat /etc/hosts # 查看本地hosts映射
九、ARP协议
9.1 ARP的作用
问题场景:在局域网内,数据链路层(第二层)需要知道目标设备的 MAC地址 才能发送数据帧,但我们只知道目标的IP地址。
解决方案:ARP(Address Resolution Protocol)负责把IP地址翻译成MAC地址。
生活类比:你知道同事的名字(IP地址),但要走到他面前说话,需要知道他的工位在哪(MAC地址)。ARP就是帮你查工位的那张"座位表"。
9.2 ARP工作过程
电脑A(192.168.1.2)想跟电脑B(192.168.1.3)通信:
1 A广播:"谁是192.168.1.3?请告诉我你的MAC地址!"
(ARP Request,广播帧,目标MAC=FF:FF:FF:FF:FF:FF)
2 局域网内所有设备都收到,但只有B回复:
B单播:"我是192.168.1.3,我的MAC是 AA:BB:CC:DD:EE:FF"
(ARP Reply,单播帧)
3 A把 B的IP->MAC映射 存入ARP缓存表
查看ARP缓存:
arp -n # 显示ARP缓存表
ip neigh # 新版命令(推荐)
十、ICMP协议与ping命令
10.1 ICMP是什么?
ICMP(Internet Control Message Protocol)是网络层的"诊断协议",用于传递错误报告和网络状态信息。
生活类比:ICMP就像快递公司的"异常通知系统"——"包裹无法投递"、"地址不存在"等通知。
10.2 ping的工作原理
ping 命令利用ICMP的 Echo Request 和 Echo Reply 消息来测试网络连通性。
你的电脑 目标服务器
| |
|---- ICMP Echo Request (Type=8) -------->|
| |
|<--- ICMP Echo Reply (Type=0) -----------|
| |
| 计算往返时间(RTT):15ms |
常用ping命令:
ping www.baidu.com # 基础ping测试
ping -c 5 www.baidu.com # ping 5次后停止(Linux)
ping -c 10 -i 0.2 192.168.1.1 # 快速ping(间隔0.2秒)
ping -s 1000 192.168.1.1 # 指定数据包大小
# RHEL系 / Debian系命令相同
10.3 traceroute——追踪路由路径
traceroute www.baidu.com # 追踪到达目标的路由(RHEL常用)
tracepath www.baidu.com # Debian系常用
mtr www.baidu.com # 综合实时监测(推荐,需安装)
十一、子网划分练习题
练习题1
将 172.16.10.0/24 划分为4个等大的子网,求每个子网的:网络地址、子网掩码、可用IP范围、广播地址。
点击查看答案
4个子网需要借2位主机位,新掩码 = /26 = 255.255.255.192
| 子网 | 网络地址 | 可用范围 | 广播地址 |
|---|---|---|---|
| 1 | 172.16.10.0/26 | .1 ~ .62 | .63 |
| 2 | 172.16.10.64/26 | .65 ~ .126 | .127 |
| 3 | 172.16.10.128/26 | .129 ~ .190 | .191 |
| 4 | 172.16.10.192/26 | .193 ~ .254 | .255 |
练习题2
某公司需要将 192.168.10.0/24 划分为3个子网:
- A部门:100台主机
- B部门:50台主机
- C部门:20台主机
请使用VLSM(可变长子网掩码)进行最优划分。
点击查看答案
按从大到小的顺序分配(VLSM原则):
| 部门 | 子网 | 掩码 | 可用IP范围 | 容量 |
|---|---|---|---|---|
| A(100台) | 192.168.10.0/25 | 255.255.255.128 | .1 ~ .126 | 126 |
| B(50台) | 192.168.10.128/26 | 255.255.255.192 | .129 ~ .190 | 62 |
| C(20台) | 192.168.10.192/27 | 255.255.255.224 | .193 ~ .222 | 30 |
剩余:192.168.10.224/27(30个地址,留作将来扩展)
练习题3
判断以下两个IP是否在同一个子网:192.168.5.130 和 192.168.5.200,子网掩码 255.255.255.192(/26)。
点击查看答案
- 192.168.5.130 与 255.255.255.192 -> 网络地址 = 192.168.5.128
- 192.168.5.200 与 255.255.255.192 -> 网络地址 = 192.168.5.192
网络地址不同(128 != 192),不在同一个子网。
练习题4
一个 /29 的子网有多少个可用主机地址?适合什么场景?
点击查看答案
/29:主机位 = 32 - 29 = 3 位,可用地址 = 2^3 - 2 = 6个
典型场景:两台路由器之间的点对点链路(只需要2个地址),但/30更合适(刚好2个可用地址),/29适合小型设备群组。
附录A:运维常用命令精选
| 命令 | 用途 | 示例 |
|---|---|---|
ip addr | 查看所有网络接口的IP地址 | ip a |
ip route | 查看路由表 | ip route show |
ss -tlnp | 查看TCP监听端口及进程 | ss -tlnp |
ping | 测试网络连通性 | ping -c 4 8.8.8.8 |
traceroute / tracepath | 追踪网络路径 | tracepath www.baidu.com |
dig | DNS详细查询 | dig www.example.com A |
nslookup | DNS基础查询 | nslookup www.baidu.com |
arp -n / ip neigh | 查看ARP缓存 | ip neigh show |
curl | 发送HTTP请求/测试端口 | curl -I http://example.com |
telnet | 测试端口连通性 | telnet 192.168.1.1 80 |
nmcli | NetworkManager命令行(RHEL) | nmcli device status |
netplan | 网络配置(Debian/Ubuntu) | netplan apply |
hostnamectl | 查看/设置主机名 | hostnamectl set-hostname web01 |
mtr | 实时网络质量监测 | mtr www.baidu.com |
nmap | 网络扫描/端口探测 | nmap -sT 192.168.1.0/24 |
附录B:趣味命令
# 1. 查看你的公网IP
curl ifconfig.me
curl ip.sb
# 2. 用JSON格式看你的IP详细信息
curl ipinfo.io
# 3. 查看本机所有网络接口的详细统计
ip -s link
# 4. 实时监控网络流量(像心电图一样)
watch -n 1 'cat /proc/net/dev'
# 5. 查看你的网络走了哪些路由器
mtr --curses www.baidu.com
# 6. 用nc(netcat)搭建一个超简易聊天
# 服务器端:
nc -l 9999
# 客户端:
nc 服务器IP 9999
# 然后双方就可以打字聊天了!
# 7. 查看DNS解析的完整过程(像侦探一样追踪)
dig +trace www.google.com
# 8. 用arp-scan扫描局域网内所有设备(需安装)
# RHEL: yum install arp-scan
# Debian: apt install arp-scan
sudo arp-scan --localnet
# 9. 生成随机MAC地址(有趣但实用)
openssl rand -hex 6 | sed 's/../&:/g; s/:$//'
# 10. 查看当前有多少个TCP连接处于各种状态
ss -s
# 11. 看看你的网卡支持多大速率
ethtool eth0 | grep Speed
# 12. 用tcpdump抓包看实时网络流量(需安装)
# RHEL: yum install tcpdump
# Debian: apt install tcpdump
sudo tcpdump -i eth0 -n port 80
小结:IP地址是网络世界的基础标识,子网掩码决定了网络的划分方式,TCP/UDP协议则保障了数据能正确、有序地传输。掌握这些基础知识,是成为一名合格运维工程师的第一步。下一章我们将学习如何保护网络安全——防火墙!