一、netstat命令
常用选项:
-a (all) 显示所有选项,默认不显示LISTEN相关 -p 显示建立相关链接的程序名 -r 显示路由信息,路由表 -e 显示扩展信息,例如 uid -s 按各个协议进行统计 -t (tcp) 仅显示tcp相关选项 -u (udp) 仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化成数字 -l 列出有在 Listen (监听) 的服务状态 -c 每隔一个固定时间,执行该 netstat 命令
常用命令:
列出连接:netstat -a 列出tcp连接:netstat -at -l 选项列出正在监听的套接字:netstat -tnl 打印统计数据:netstat -us 命令netstat -tnp | grep ssh可查看某一端口占用情况(ssh可替换为其它端口,如"520")
二、ss命令
常用参数:
-V, --version #输出版本信息 -6, --ipv6 #只显示ipv6的sockets -0, --packet #显示包经过的网络接口 -t, --tcp #显示tcp套接字 -u, --udp #显示udp套接字 -d, --dccp #显示dccp套接字 -w, --raw #显示raw套接字 -x, --unix #显示unix套接字 -n, --numeric #不解析服务名 -r, --resolve #解析主机名 -a, --all #显示所有的套接字 -l, --listening #显示监听状态的socket -o, --options #显示计时器信息 -e, --extended #展示详细的socket信息 -m, --memory #展示socket的内存使用 -p, --processes #展示使用socket的进程 -i, --info #展示tcp内部信息 -s, --summary #展示socket使用汇总 -4, --ipv4 #只显示ipv4的sockets
常用命令:
ss -pl命令列出所有进程及其打开的端口,通过grep可以过滤查看指定进程或端口:ss -tnlp | grep ssh 列出所有tcp连接:ss -t -a
三、lsof 命令
常用参数:
-a 列出打开文件存在的进程 -c <进程名> 列出指定进程所打开的文件 -p <进程号> 列出指定进程号所打开的文件 -g 列出GID号进程详情 -d <文件号> 列出占用该文件号的进程 +d <目录> 列出目录下被打开的文件 +D <目录> 递归列出目录下被打开的文件 -n <目录> 列出使用NFS的文件 -i <条件> 列出符合条件的进程(4、6、协议、:端口、 @ip ) -u 列出UID号进程详情
常用命令:
losf -c 进程名 ;查看某个进程名称当前打开的文件 lsof -i 端口 ;查看指定端口的通信连接情况 lsof -i -P | grep ssh ;查看指定端口的通信连接情况或lsof -i tcp:22
四、 fuser 命令
常用参数:
-a,--所有显示未使用的文件 -i,--交互 杀戮前询问(忽略没有 -k) -k,--kill 访问命名文件的进程 -l,--列表信号列出可用的信号名称 -m,--mount 显示使用指定文件系统或块设备的所有进程 -M,--ismountpoint 仅当 NAME 是挂载点时才满足请求 -n,--命名空间 在此名称空间中搜索空间(文件、udp 或 tcp) -s,--静音操作 -信号发送此信号而不是SIGKILL信号 -u,--用户显示用户 ID -v,--verbose verbose output -w,--写仅终止具有写访问权限的进程 -V,--版本显示版本信息 -4,--ipv4 仅搜索 IPv4 套接字 -6,--ipv6 仅搜索 IPv6 套接字
常用命令:
fuser -v 22/tcp 查看22端口tcp连接
5.windows查看端口占用
查看所有被监听的端口:
netstat -ano
查看指定端口运行的进程pid:
netstat -aon|findstr "8080" #查看8080端口
最后一列是pid:
查看指定 PID 的进程:
tasklist|findstr "9088" #9088是pid