目录
- 需求1-查看本机是否存在22端口
- 需求2-查看其他主机是否存在22端口
- 需求3-查看TCP连接
- 需求4-统计80端口tcp连接次数
- 需求5-查看总体网络速度
- 需求6-查看进程流量
- 需求7-dns
- 需求8-traceroute到baidu
- 需求9-查看路由
需求1-查看本机是否存在22端口
解法1
shell
ss -tunlp |grep 22
ss 是一个用于检查套接字统计信息的命令,而 -tunlp 是它的几个选项的组合:
-t 表示显示 TCP 套接字
-u 表示显示 UDP 套接字
-n 表示直接使用 IP 地址,而不是尝试确定符号主机、端口或用户名
-l 表示仅显示监听状态的套接字
-p 表示显示监听端口的进程信息
解法2
shell
netstat -tunlp | grep 22
netstat 是一个网络统计工具,用于显示网络连接、路由表、接口统计等信息。
解法3
shell
lsof -nPi :22
lsof 是 "List Open Files" 的缩写,用于列出当前系统打开的文件。
-n:不解析 IP 地址,直接显示数字形式。
-P:不解析端口号,直接显示数字形式。
-i:显示打开的网络文件,即网络连接。
:22:指定要查找的端口号,这里是 22,通常用于 SSH 服务。
lsof -nPi :22 命令的作用是列出所有使用端口 22 的网络连接,不进行地址和端口的解析,直接显示它们的数字形式。
需求2-查看其他主机是否存在22端口
解法1
shell
telnet 192.168.100.128 22
解法2
shell
nc 192.168.100.128 22
一般用于shell脚本中,查看端口是否打开. 因为输出较少
nc 是 "netcat" 的缩写,它是一个用于网络通信的命令行工具,可以用于创建网络连接、监听网络上的数据流、发送数据到网络上等。
如果该主机的 SSH 服务正在端口 22 上监听,并且连接成功,netcat 将建立一个网络连接
解法3
shell
nmap -p22 192.168.100.128
nmap 是一个网络探索和安全扫描工具,它可以用来发现网络上的设备,检测开放的端口,确定运行在网络设备上的服务及其版本信息等
-p 可以指定一个范围端口,如1-100
IP 可以是范围,如192.168.100.0/24
需求3-查看TCP连接
解法1/2
shell
ss -ant
netstat -ant
-a:显示所有套接字(包括监听和非监听的)。
需求4-统计80端口tcp连接次数
解法
shell
#模拟连接
#ab工具需要yum安装httpd-tools
ab -n 1000000 -c 10 http://localhost/ &> /dev/null &
# ab:Apache Benchmark 工具的命令。
# -n 1000000:指定测试执行的请求数量,这里是 1000000 次请求。
# -c 10:指定并发执行请求的数量,这里是 10 个并发请求。
# http://localhost/:指定要测试的 URL,这里是本地服务器的根目录。
# &:将命令放在后台执行,这样命令会立即返回控制权给终端,不会阻塞当前的 shell 会话。
# >:重定向到 /dev/null 意味着丢弃所有的输出,不保存任何结果。
#统计
ss -ant | awk 'NR>1&&$4~/:80$/{print $1}' | sort | uniq -c
7 ESTAB
2 FIN-WAIT-1
5 FIN-WAIT-2
2 LISTEN
14102 TIME-WAIT
# ss -ant:显示所有 TCP (-t) 和 UDP (-a) 套接字,不解析服务名称(-n),并且只显示监听状态的套接字。
# awk 'NR>1&&$4~/:80$/{print $1}':使用 awk 处理 ss 命令的输出。这里 NR>1 表示跳过第一行(通常是标题行),$4~/:80$/ 是一个正则表达式,匹配第四列以 :80 结尾的行,这通常表示 HTTP 服务监听在端口 80 上。对于匹配的行,print $1 输出该行的第一列,即本地地址。
# sort:对 awk 的输出进行排序。
# uniq -c:对排序后的输出进行去重,并计算每个唯一项出现的次数。
需求5-查看总体网络速度
解法
shell
#需要yum安装iftop软件包
iftop -nNPi eth0
iftop 是一个实时带宽监控工具,它显示每个连接的网络子接口的数据流量。
-n:不解析 IP 地址为主机名,直接使用 IP 地址显示。
-N:不解析端口号为服务名称,直接使用端口号显示。
-P:不解析 IP 地址为主机名,并且也不解析 MAC 地址为设备名。
-i:指定监控的网络接口,这里是 eth0。
下图右侧三个数值,分别代表2s,10s,40s
需求6-查看进程流量
解法
shell
#需要yum安装nethogs软件包
nethogs 网卡名
#或者可以用
iftop+ss+ps
iftop找出端口+ss找出pid+ps过滤名字
需求7-dns
解法
shell
#方法1
[root@ecm ~]# dig www.google.com
; <<>> DiG 9.16.23 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46352
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 200 IN A 199.16.158.9
;; Query time: 8 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Mon May 13 20:55:59 CST 2024
;; MSG SIZE rcvd: 59
#方法2
[root@ecm ~]# host www.google.com
www.google.com has address 199.16.158.9
www.google.com has IPv6 address 2001::1
#方法3
[root@ecm ~]# nslookup www.google.com
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: www.google.com
Address: 31.13.94.10
Name: www.google.com
Address: 2001::1
需求8-traceroute到baidu
解法
shell
traceroute -nI www.baidu.com
traceroute to www.baidu.com (180.101.50.188), 30 hops max, 60 byte packets
1 * * *
2 * * *
3 * * *
4 10.39.30.182 0.948 ms 0.947 ms 1.005 ms
5 10.39.23.246 2.180 ms 2.617 ms 3.064 ms
6 10.39.3.250 5.112 ms 4.943 ms 5.440 ms
7 * * *
8 58.213.94.197 0.921 ms 0.842 ms 0.824 ms
9 * * *
10 58.213.96.66 1.810 ms 1.877 ms 1.891 ms
11 * * *
12 * * *
13 * * *
14 180.101.50.188 0.578 ms 0.484 ms 0.534 ms
linux下的traceroute默认发送UDP,可能会没法到达baidu
增加
-I
选项,使得traceroute发送的是icmp
数据包,即可访问到
需求9-查看路由
解法
shell
[root@ecm ~]# ip ro
default via 10.0.0.1 dev eth0 proto dhcp metric 100
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.124 metric 100
169.254.169.254 via 10.0.0.1 dev eth0 proto dhcp metric 100
[root@ecm ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
169.254.169.254 10.0.0.1 255.255.255.255 UGH 100 0 0 eth0