抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

水文警告⚠😂,最近这些玩意用得多,微微记录一下,目前写的比较水,后面应该会补点实践经验🚩。

netstat

netstat 一般用于查看 Socket 的使用情况。这命令在 Windows 下也可直接使用(但参数有一定的差异)。如使用 Ubuntu 需要安装 net-tools

1
2
# ubuntu
$ apt install net-tools

常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 1、查看 TCP Socket 情况,TCP 连接的状态
$ netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 172.25.239.216:51430 aerodent.canonical:http TIME_WAIT
# 2、查看 TCP Socket 统计信息
$ netstat -st
Tcp:
3 active connection openings
0 passive connection openings
0 failed connection attempts
0 connection resets received
0 connections established
248 segments received
195 segments sent out
5 segments retransmitted
0 bad segments received
0 resets sent

实践:在性能测试场景,我们可能需要观察 TCP 连接的状态、连接数等,我们可能会需要如下命令配合 grep 等命令对数据库连接、Web Service 连接状态问题进行排查:

1
netstat -alnp

ss

ss 的作用跟 netstat 很相似,但当服务器连接数非常多的时候,执行速度比 netstat 快很多,如果 man netstat 一下,netstat 的手册中也推荐使用 ss。

1
2
3
4
$ man netstat
NOTES
This program is mostly obsolete. Replacement for netstat is ss. Replacement for netstat -r is ip route. Replacement for netstat -i is ip -s
link. Replacement for netstat -g is ip maddr.

常用命令:

1
2
3
4
5
6
7
8
# 1、显示 TCP Socket 使用状况
$ ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTABLISH 0 0 172.16.0.12:46148 13.229.188.59:https
...

# 2、列出所有打开的端口,配合 grep,可查看指定端口使用情况
$ ss -pl | grep 8080

dig

域名查询工具,一般用于查看主机 DNS 轮询解析状况。一般 Linux 系统都会自带这个命令。

1
2
# 安装
$ apt-get install dnsutils

常用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 1、指定 DNS Server 查看域名 DNS 解析情况
$ dig @8.8.8.8 shansan.top

; <<>> DiG 9.16.1-Ubuntu <<>> @8.8.8.8 shansan.top
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44094
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;shansan.top. IN A

;; ANSWER SECTION:
shansan.top. 600 IN CNAME yeshan333.github.io.
yeshan333.github.io. 3600 IN A 185.199.108.153
yeshan333.github.io. 3600 IN A 185.199.109.153
yeshan333.github.io. 3600 IN A 185.199.110.153
yeshan333.github.io. 3600 IN A 185.199.111.153

;; Query time: 160 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Sep 25 21:00:48 CST 2021
;; MSG SIZE rcvd: 137

# 2、查看指定 DNS 类型记录,如 CNAME
$ dig shansan.top CNAME

# 3、反向解析 IP 地址对应域名
$ dig -x 8.8.8.8 +short

nslookup

nslookup 命令的作用和 dig 命令类似,在 Windows 下的 PowerShell & Linux 可以直接使用。

常用:

1
2
3
4
5
6
7
# 1、指定 DNS Server 查询域名解析信息
➜ nslookup shan333.cn f1g1ns1.dnspod.net
Server: f1g1ns1.dnspod.net
Address: 61.151.180.44#53

Name: shan333.cn
Address: 111.230.58.139

telnet

telnet 可用于判断 TCP 端口是否可通。

1
2
3
4
5
➜ telnet github.com 22
Trying 20.205.243.166...
Connected to github.com.
Escape character is '^]'.
SSH-2.0-babeld-4f04c79d

与 telnet 作用差不多的有 netcat、nc

评论