[命令] Linux 命令 tcpdump (网络抓包)

案例一:显示发送到某个 IP 地址的某个端口的网络数据包

# tcpdump -i any dst 192.168.0.1 and udp port 514

(补充:这里以显示发送到 IP 地址 192.168.0.1 的 UDP 514 端口为例,如果有这类网络数据包的话则详细信息会在命令输出后显示出来)

案例二:显示从某个 IP 地址发送来的网络数据包

# tcpdump -vv src host 192.168.0.1

(补充:这里以显示从 IP 地址 192.168.0.1 发送来的网络数据包为例,如果有这类网络数据包的话则详细信息会在命令输出后显示出来)

案例三:将所有抓到的网络数据包导入到某个文件里

# tcpdump -i any -w /tmp/telnet.cap

(注意:此时会抓取所有的网络数据包,并保存到文件 /tmp/telnet.cap,想要退出则同时按下 “ctrl” 键和 “c” 键)

(补充:这里以将所有抓到的数据包导出到 /tmp/telnet.cap 文件为例)

案例四:将某个网卡抓到的网络数据包导入到某个文件里

# tcpdump -i eth0 -s 0 -w /tmp/$(hostname)-$(date +"%Y-%m-%d-%H-%M-%S").pcap host 192.168.1.1 and host 192.168.1.2

(注意:此时会抓取所有的网络数据包,并保存到文件 /tmp/telnet.cap,想要退出则同时按下 “ctrl” 键和 “c” 键)

(补充:这里以将网卡 eth0 IP 地址是 192.168.1.1 和 192.168.1.2 抓到的数据包导出到 /tmp/$(hostname)-$(date +”%Y-%m-%d-%H-%M-%S”).pcap 文件为例)

[内容] 全球公共免费 DNS

AdGuard

94.140.14.14
94.140.14.15
94.140.15.15
94.140.15.16

Cloudflare

1.0.0.1
1.0.0.2
1.0.0.3
1.1.1.1
1.1.1.2
1.1.1.3

COMODO

8.20.247.20
8.26.56.26

DNS Watch

84.200.69.80
84.200.70.40

Dyn

216.146.35.35
216.146.36.36

Level 3

209.244.0.3
209.244.0.4

Neustar

156.154.70.1
156.154.71.1

FreeDNS

37.235.1.174
37.235.1.177

Google

8.8.4.4
8.8.8.8

OpenDNS

208.67.220.220
208.67.222.222

SAFEDNS

195.46.39.39
195.46.39.40

Symantec

199.85.126.10
199.85.137.10

[排错] 解决 SSH 远程登录时很慢但 ping 时延迟很低

分析

ssh 远程某台服务器时很慢,但是 ping 时延迟却很低。这可能是 DNS 解析出现问题造成的,禁用服务器上 sshd 的 GSSAPIAuthentication 参数和 UseDNS 参数可以解决,这两个参数的作用是:
1) GSSAPIAuthentication,当服务器的 sshd 服务此参数处于开启状态时,客户端 SSH 登录此服务器时,客户端会对服务器的 IP 地址进行 PTR 反解析,获得服务器的域名,再通过服务器的域名对服务器进行 DNS A 正向 IP 地址解析,通过此方法来防止欺骗。
2) UseDNS,当服务器的 sshd 服务此参数处于开启状态时,客户端 SSH 登录此服务器时,服务器会对客户端的 IP 地址进行反解析,获得客户端的域名,再通过客户端的域名对客户端进行 DNS A 正向 IP 地址解析,通过此方法来防止欺骗。

解决方法

方法一:忽略 DNS

1.1 修改 SSH 的配置文件

# vim /etc/ssh/sshd_conf

将以下内容:

......
UseDNS yes
......
GSSAPIAuthentication yes
......

修改为:

......
UseDNS no
......
GSSAPIAuthentication no
......

1.2 让修改的 SSH 配置文件生效

# systemctl restart sshd

方法二:重启 systemd-logind

2.1 重启 dbus

# systemctl restart dbus

2.2 重启 systemd-logind

# systemctl restart systemd-logind

(注意:如果不重启 dbus 直接重启 systemd-logind 则可能会报错)

[内容] Linux 常用日志 (openSUSE & SUSE 版)

1) /var/log/boot.msg,包含系统启动时显示在屏幕上的信息
(补充:当进入系统时,可以同时按下 “ctrl” 键和 “alt” 键和 “f10” 键切换到显示日志的界面,之后可以再通过 KVM 显示系统启动时显示在屏幕上的信息。)
2) /var/log/boot.omsg,包含上一次系统启动时显示在屏幕上的信息
3) /var/log/messages,包含几乎所有日志
4) /var/log/warn,包含 WARNING 也就是级别 4 以上的所有日志
5) /var/log/wtmp,包含和系统登录和重启的所有日志
(补充:可以通过 last 命令读取)
6) /var/log/YaST2/y2log,包含 YaST 的所有日志
7) /var/log/xinetd.log,包含 xinetd 服务的所有日志
8) /var/log/dump/,包含 Kdump 工具在系统宕机时收集的所有故障信息
9) /var/log/atop,包含 Atop 工具收集的系统资源 (CPU、内存、系统进程、IO) 的所有使用信息