🗂️ 基础系统与文件管理命令
这部分命令主要考察对Linux操作系统的基本操作能力,虽然基础,但也是必拿的分数。
· 目录操作:ls(列出目录,常用-l、-a选项)、cd(切换目录)、pwd(显示当前路径)、mkdir(创建目录)、rmdir(删除空目录)、du(查看目录大小)。
· 文件操作:cp(复制)、mv(移动或重命名)、rm(删除)、touch(创建空文件或更新时间戳)、cat/more/less/head/tail(查看文件内容)、find/grep(查找文件和搜索文本)。
· 权限与进程:chmod(修改权限)、chown(修改所有者)、ps(查看进程)、kill(终止进程)。
🌐 网络诊断与配置命令(考试重点)
这部分是网络工程师的核心技能,请务必重点掌握。
· 连通性测试:ping(基础连通性测试)、traceroute(追踪路由路径,诊断网络延迟和故障点)。
· 接口与地址配置:ifconfig(传统配置工具)和 ip(现代强大工具,如 ip addr、ip link、ip route)。
· 端口与服务查看:netstat(查看连接、路由表、接口统计)和 ss(netstat的现代替代品,更快更详细)。
· DNS客户端工具:nslookup(简单直观的DNS查询)和 dig(功能更强大的DNS查询)。
· 高级抓包与排错:tcpdump(命令行抓包分析神器)和 curl(测试HTTP/HTTPS接口及下载)。
我们来深入聊聊 tcpdump。它是Linux下非常强大的命令行抓包工具,也是网络工程师用来排查问题、分析协议的核心利器。简单来说,它的工作方式就是:你指定规则(过滤条件),它捕获并解析符合规则的数据包,然后输出或保存下来供你分析。
🚀 核心选项速查
掌握这些常用选项,你就可以应对大部分抓包场景。
· -i <接口>:指定要监听的网卡(如 eth0)。不指定则默认抓取第一个非环回接口。
· -c <数量>:抓取指定数量的包后自动停止,避免无限抓取。
· -n:不进行域名解析,直接显示IP地址。这能避免抓包变慢,强烈建议加上。
· -nn:在 -n 的基础上,也不解析端口服务名(如 80 直接显示 80,而不是 http)。
· -w <文件>:把原始数据包保存到文件(常用 .pcap 后缀),供后用 Wireshark 分析。
· -r <文件>:读取之前保存的 .pcap 文件进行分析。
· -s <长度>:设置每个包的抓取长度(snaplen)。-s 0 代表抓取完整包,确保数据不丢失。
· -A:以 ASCII 格式打印包数据,非常适合查看 HTTP 等文本协议的内容。
· -X:同时以 HEX 和 ASCII 格式打印,分析二进制协议时常用。
🎯 过滤表达式:精准定位
这是 tcpdump 的精髓,通过组合各种原语(Primitive),让你能从海量流量中快速锁定目标。
· 关于主机:host 192.168.1.100、src 192.168.1.10、dst 192.168.1.20。
· 关于网络:net 192.168.1.0/24。
· 关于端口:port 80、src port 8080、portrange 1000-2000。
· 关于协议:tcp、udp、icmp、arp。
· 逻辑组合:and (&&)、or (||)、not (!)。例如:host 10.0.0.5 and not port 22。
🛠️ 实战演练:从入门到抓包
下面通过几个常见场景,看看这些命令如何组合使用。
· 场景1:基础抓包并保存
在网卡 eth0 上抓取100个包,不解析地址,保存到文件,并打印基本信息看一眼。
sudo tcpdump -i eth0 -c 100 -nn -w http.pcap
之后用 -r 读取分析:
sudo tcpdump -r http.pcap -nn | head -20
· 场景2:排查Web服务器连接
抓取与 192.168.1.10 的80端口(HTTP)和443端口(HTTPS)的流量,并显示数据内容。
sudo tcpdump -i any -nn 'host 192.168.1.10 and (port 80 or port 443)' -A
· 场景3:查看 Ping 命令过程
抓取本机与目标 8.8.8.8 的 ICMP 协议包。
sudo tcpdump -i eth0 -nn 'host 8.8.8.8 and icmp'
当你在另一个窗口执行 ping 8.8.8.8 时,这里就能实时看到请求和回复。
· 场景4:高级过滤——只抓SYN包
如果想抓取所有TCP连接建立时的第一个包(SYN包),可以匹配TCP头中的标志位:
sudo tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0' -nn
💡 核心注意事项
1. 权限:抓包通常需要 root 权限,记得加上 sudo。
2. 网卡选择:尽量避免用 -i any,它可能在某些场景(如绑定bonding)下抓到重复包,让分析变复杂。最好通过 ip route get <目标IP> 先确认流量走哪块网卡。
3. 性能:在高流量生产环境,一定要用 -c 限制数量、用 -s 限制包长,或者用 -C 和 -W 做滚动保存,以免磁盘爆满。
更多备考学习可加讲师微信交流~