linux下可以查看网络连接的命令很多,下面主要以查询端口占用情况为例,总结下常用的网络命令:
- lsof
实际上是lists open files缩写,linux下一切皆文件,也成了网络查询的利器。
lsof -i :8080
-i参数表示列出网络连接,显示结果为:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 108416 root 52u IPv6 1496504636 0t0 TCP *:webcache (LISTEN)
-i后面还可以指定其它参数,如检查与网络中某个主机的连接:
lsof -i@127.0.0.1:3306
或者按tcp连接状态查询:
lsof -i -sTCP:ESTABLISHED
- fuser
和lsof类似,主要用来查看占用文件或socket的进程信息。
fuser -v -n tcp 80
-v表示列出详细信息,-n表示列出网络连接,显示结果为:
USER PID ACCESS COMMAND
8080/tcp: root 8888 F.... java
- netstat
比较传统的网络查询命令。
netstat -tnlp|grep 8080
-t 仅显示tcp,-n 以数字显示主机和端口。-l 只列出Listen的状态的连接,-p 显示进程名称。显示结果为:
tcp6 0 0 :::8080 :::* LISTEN 8888/java
- ss
比netstat性能更好的统计命令。
ss -pl |grep 8080
-l表示列出监听端口,其它和netstat类似。
显示结果为:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 500 :::8080 :::* users:(("java",pid=8888,fd=52))
- nmap
网络嗅探常用命令。
nmap -sT localhost|grep 3306
-sT表示tcp连接扫描。显示结果为:
3306/tcp open mysql
网友评论