Linux查看端口占用情况
1、lsof(list open files)列出当前系统打开文件
查看指定端口号语法格式:
lsof -i:端口号
如果命令找不到
[root@virplus ~]# lsof -i:1521 -bash: lsof: command not found
请安装该命令
# yum install lsof -y # lsof -i:7075
[root@localhost ~]# lsof -i:7075 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME docker-pr 17394 root 4u IPv6 75775 0t0 TCP *:7075 (LISTEN)
查看所有端口
# lsof -i
[root@virplus ~]# lsof -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1105 root 3u IPv4 18473 0t0 TCP *:ssh (LISTEN) sshd 1105 root 4u IPv6 18482 0t0 TCP *:ssh (LISTEN) master 1904 root 13u IPv4 19162 0t0 TCP localhost:smtp (LISTEN) master 1904 root 14u IPv6 19163 0t0 TCP localhost:smtp (LISTEN) openvpn 2411 root 6u IPv4 21972 0t0 TCP 192.168.1.56:openvpn (LISTEN) sshd 3172 root 3u IPv4 33620 0t0 TCP 192.168.1.56:ssh->192.168.2.113:53585 (ESTABLISHED)
注释
COMMAND(进程的名称) PID(进程的标识符) USER(进程所有者) FD(文件描述符) TYPE(文件类型) SIZE/OFF(文件大小) DEVICE(指定磁盘名称) NODE(索引节点) NAME(打开文件的确切名称)
2、netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况
netstat 查看端口占用语法格式:
netstat -tunlp | grep 端口号 -t (tcp) 仅显示tcp相关选项 -u (udp)仅显示udp相关选项 -n 拒绝显示别名,能显示数字的全部转化为数字 -l 仅列出在Listen(监听)的服务状态 -p 显示建立相关链接的程序名
[root@virplus ~]# netstat -tunlp | grep 7075 tcp6 0 0 :::7075 :::* LISTEN 17394/docker-proxy [root@virplus ~]# [root@virplus ~]# netstat -tunlp | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 19356/mysqld [root@virplus ~]# [root@virplus ~]# netstat -tunlp | grep 1521 tcp6 0 0 :::1521 :::* LISTEN 17470/docker-proxy [root@virplus ~]# [root@virplus ~]# netstat -tunlp | grep 1525 [root@virplus ~]# [root@virplus ~]# netstat -tunlp | grep 1522 tcp6 0 0 :::1522 :::* LISTEN 17436/docker-proxy [root@virplus ~]#
在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:
kill -9 PID
如上实例,我们看到 7075 端口对应的 PID 为 17394,使用以下命令杀死进程:
# kill -9 17394
显示网卡列表
# netstat -i
[root@virplus ~]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg docker0 1500 185610 0 0 0 215874 0 0 0 BMRU ens18 1500 6242072 302310 0 0 653911 0 0 0 BMRU lo 65536 46 0 0 0 46 0 0 0 LRU veth5a87904 1500 0 0 0 0 24 0 0 0 BMRU vethb1d0229 1500 0 0 0 0 24 0 0 0 BMRU vethed2e0ba 1500 15711 0 0 0 16094 0 0 0 BMRU vethee02449 1500 98501 0 0 0 127243 0 0 0 BMRU [root@localhost ~]#
如未安装netstat,可用以下命令安装:
yum install net-tools
3、ps(用于显示当前进程的状态)
使用PS命令查看和控制进程
显示本用户的进程
# ps [root@virplus ~]# ps PID TTY TIME CMD 30059 pts/0 00:00:00 bash 31149 pts/0 00:00:00 ps
显示所有用户的进程
# ps -au [root@virplus ~]# ps -au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 3319 0.0 0.0 110092 860 tty1 Ss+ 07:28 0:00 /sbin/agetty --noclear tty1 linux root 21611 0.0 0.0 115408 1912 pts/0 Ss 16:13 0:00 -bash root 21640 0.0 0.0 155332 1776 pts/0 R+ 16:15 0:00 ps -au
显示所有进程和其状态
# ps aux
显示指定进程和其状态
# ps -aux | grep 服务 [root@virplus ~]# ps -aux | grep httpd root 31122 0.0 0.0 112680 696 pts/0 S+ 14:01 0:00 grep --color=auto httpd [root@virplus ~]# [root@virplus ~]# ps -aux | grep vsftpd root 31124 0.0 0.0 112680 696 pts/0 S+ 14:01 0:00 grep --color=auto vsftpd [root@virplus ~]#
4、pidof(查看服务的pid)
# pidof nginx
[root@virplus ~]# ps aux | grep nginx root 11579 0.0 0.0 112704 956 pts/2 S+ 16:45 0:00 grep --color=auto nginx root 27326 0.0 0.0 56712 1264 ? Ss Jun26 0:00 nginx: master process /usr/sbin/nginx root 27327 0.0 0.0 57252 2652 ? S Jun26 0:00 nginx: worker process [root@virplus ~]# [root@virplus ~]# netstat -tunlp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 27326/nginx [root@virplus ~]# [root@virplus ~]# pidof nginx 27327 27326
5、ss
ss -lnp
6、pstree
pstree
Windows查看端口占用
1、netstat
查找所有运行的端口
C:\Users\Administrator> netstat -ano
查看被占用端口对应的PID
语法格式:
netstat -ano | findstr “端口号” C:\Users\Administrator> netstat -ano | findstr "9558"
最后一位数字就是PID,这里是8112
2、tasklist
查看指定PID的进程
语法格式:
tasklist | findstr “PID” C:\Users\Administrator>tasklist | findstr "8112"
3、taskkill(结束进程)
强制(/F参数)杀死pid为8112的所有进程包括子进程(/T参数)
taskkill /T /F /PID 8112
也可小写
taskkill /f /t /PID 8112
或者
taskkill /f /t /im 程序名.exe taskkill /fi “PID eq 5052” end
http://www.savh.cn/thread-1547.htm
转载请注明:Savh.Cn 发表