Linux 常用命令(3) - 检查网络流量

检查网络流量 tcpdump Tcpdump 是用于捕获发出和收到的网络流量的工具。在日常工作中经常用来检查调试网络问题。它不单能捕获 TCP 流量,也能捕获 UDP、ARP 和 ICMP 流量。 首先,tcpdump 需要 root 权限,所以别忘了用 sudo 来执行。 常用参数及对应的命令组合 -D: 查看所有的网络接口 -i <interface>: 捕获特定网络接口,输出到屏幕 -n: 不反向解析域名。在捕获的记录里,默认情况tcpdump会反向解析所有的IP地址,然后显示域名地址。该参数可以避免这个行为。 -w <file.pcap>: 输出到文件 file.pcap。通常大家会使用.pcap扩展名,表示 packet capture。 在输出到文件的时候,内容是不会输出到屏幕的。如果希望查看,可以打开新的终端,然后使用 tcpdump -r file.pcap 命令查看。 当然,你也可以使用 tcpdump -w file.pcap & 命令。让输出到文件的命令运行在后台。或者使用 -l + tee 命令输出到文件的同时查看。 推荐使用 Wireshark 来分析捕获的流量日志。 -l: 缓存输出,用于输出到屏幕的同时保存到文件。常用命令为 tcpdump -l | tee file.out 或者 tcpdump -l > file.out & tail -f file.out -W 10 -C 200: 当需要运行很长时间并且保存日志的时候,可以指定这两个参数。-C 指定单个文件大小, 单位为MB。-W 文件数量。Tcpdump会自动切分和更新日志。 -A | -X 默认情况下,tcpdump 输出到屏幕时,仅捕获数据包的headers。如果需要检查包信息,可以加上 -A 以ASCII格式输出,或者 -X 以HEX格式输出。 过滤流量 tcpdump使用的是BPF语法用来作为过滤参数,很接近自然语言。比如,只希望捕获端口27017的TCP流量:tcpdump tcp port 27017。以下是常用的组合:...

March 18, 2021 · 3 min · 552 words · Eric Yang

Linux 常用命令(2) - 重定向输出和输入, 查看网络端口, 压缩和解压缩

重定向输出和输入 在 Bash 或者其他Linux shell里,标准的I/O流分为: 0 - stdin 标准输入 1 - stdout 标准输出 2 - stderr 标准错误 从标准输出开始。标准输出是程序正常输出的内容。默认情况下,所有信息都会输出到屏幕上。重定向输出就是捕获程序的输出然后重定向到另一个程序或者文件中。一般用 n> 来实现。n 可以是 0, 1, 或者 2。 省略n 默认为 1 即标准输出。 举个例子, command > file 就是将命令 command 执行的结果输出到文件 file 里。 这个命令也等同于 command 1> file。 同理,command 2> file 就是将命令执行输出到错误重定向到文件里。 如果希望过滤输出,可以重定向到 /dev/null 来实现。比如, command 2> /dev/null,命令执行结果中的错误信息就会被过滤掉。 那么如何将标准输出和标准错误重定向到一个文件里呢? command &> file,& 表示同时将 1 和 2 输出到文件里。 还有一种方式可以实现同样的效果:command > file 2>&1,追加 2>&1 是将命令中的输出错误重定向到标准输出中。 在日常使用中,我们也经常碰到 >> 。不同于 > file 每次执行都会覆盖整个文件, >> 会以追加的方式输出内容到文件。...

March 10, 2021 · 1 min · 212 words · Eric Yang

Linux 常用命令(1) - 检查本地端口, 查看进程, 文件

检查本地端口 netstat 大多数linux系统已经内置了这个命令。如果没有,可以通过以下命令安装: Ubuntu & Debian: sudo apt install net-tools CentOS: sudo yum install net-tools 列出所有在使用的TCP和UDP端口,包括服务名称和 Socket: sudo netstat -tunlp -t - 显示 TCP 端口 -u - 显示 UDP 端口 -n - 直接使用 IP 地址,不通过域名服务器 -l - 仅显示正在监听的端口 -p - 显示正在使用 Socket 的 PID 和程序名称 输出结果示例: $ sudo netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1755/sshd tcp6 0 0 :::22 :::* LISTEN 1755/sshd udp 0 0 0....

March 3, 2021 · 4 min · 771 words · Eric Yang