ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## **netstat** netstat 是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接 输出网络连接、路由表、接口统计、伪装连接和组播成员 ``` netstat [选项] -n: 使用 IP 地址和端口号显示,不使用域名与服务名 -p: 显示 PID 和程序名 -t: 显示使用 TCP 协议端口的连接状况 -u: 显示使用 UDP 协议端口的连接状况 -l: 仅显示监听状态的连接 -a: 列出所有网络状态,包括 Socket 程序 -r: 显示路由表 -c 秒数: 指定每隔几秒刷新一次网络状态 ``` >[success] 查看本机开启的端口 > netstat -tunl 这是本机最常用的方式,使用选项“-tuln”。因为使用了“-l”选项,所以只能看到监听状态的连接,而不能看到已经建立连接状态的连接 ![](https://img.kancloud.cn/f6/6d/f66d234a736ae2fd3563417022e2a10f_606x81.png) ``` 这个命令的输出较多。 Proto: 网络连接的协议,一般就是TCP 协议或者UDP 协议。 Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。 Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,一般是不具备ACK标志的数据包。 Local Address: 本机的 IP 地址和端口号。 Foreign Address:远程主机的 IP 地址和端口号。 State: 状态。常见的状态主要有以下几种。 LISTEN: 监听状态,只有TCP 协议需要监听,而UDP 协议不需要监听。 ESTABLISHED:已经建立连接的状态。如果使用“-l”选项,则看不到已经建立连接的状态。 SYN_SENT: SYN发起包,就是主动发起连接的数据包。 SYN_RECV: 接收到主动连接的数据包。 FIN_WAIT1: 正在中断的连接。 FIN_WAIT2: 已经中断的连接,但是正在等待对方主机进行确认。 TIME_WAIT: 连接已经中断,但是套接字依然在网络中等待结束。 CLOSED:套接字没有被使用。 在这些状态中,我们最常用的就是 LISTEN 和ESTABLISHED 状态,一种代表正在监听,另一种代表已经建立连接。 ``` >[success] 查看本机有哪些程序开启的端口 > netstat -tunlp 如果使用“-p”选项,则可以查看到是哪个程序占用了端口,并且可以知道这个程序的 PID。 >[success] 查看所有连接 > netstat -an 使用选项“-an”可以查看所有连接,包括监听状态的连接(LISTEN)、已经建立连接状态的 连接(ESTABLISHED)、Socket 程序连接等 从“Active UNIX domain sockets”开始,之后的内容就是 Socket 程序产生的连接,之前的内容都是网络服务产生的连接。 我们可以在“-an”选项的输出中看到各种网络连接状态,而之前的“-tuln”选项则只能看到监听状态。 >[danger] 根据进程ID查看进程信息 > ls -l /proc/1186