端口被占用(如何查看端口占用)

35小吃技术网 推荐阅读 2022年04月04日11时37分00秒 356 0

端口被占用(如何查看端口占用)

inux系统下如何确定端口是否被占用?如何查看系统正在监听的端口有哪些?

关注系统正在监听的端口对运维人员是一件非常重要的事情,因为对外开放的端口越多,系统增加的风险就越大(后面还会写一篇系统安全的文章,记得关注我哦)。除了入侵之外,运维人员在做故障排查的时候,也需要观察端口变化。

端口被占用(如何查看端口占用)-第1张图片


例如:一台服务器上同时部署了Apache和Nginx,那么就必须确认他们是否是使用了TCP #80/443端口。服务宕了,就会先看端口在不在,端口不在,是不是服务停止了,被 OOM 等。

在Linux下检查被监听的端口进程

1:lsof命令

语法:

$ sudo lsof -i -P -n
$ sudo lsof -i -P -n | grep LISTEN
$ doas lsof -i&网nbsp;-P -n | grep LISTEN ### [OpenBSD] ###

举例:使用lsof命令检查监听端口和应用程序

端口被占用(如何查看端口占用)-第2张图片


输出的最后一行是

sshd 85379 root 3u IPv4 0xffff80000039e000 0t0 TCP 10.86.128.138:22(LISTEN)
  • sshd 是应用程序的名称。

  • 10.86.128.138 是sshd应用程序绑定到的IP地址(LISTEN)

  • 22 是正在使用的TCP端口(LISTEN)

  • 85379 是sshd进程的进程ID

2:netstat命令

可以使用netstat检查端口端口和应用程序

  • Linux netstat语法

$ netstat -tulpn | grep LISTEN
  • FreeBSD / MacOS X netstat语法

$ netstat -anp tcp | grep LISTEN
$ netstat -anp udp | grep LISTEN
  • OpenBSD netstat语法

$ netstat -na -f inet | grep LISTEN
$ netstat -nat | grep LISTEN

3:nmap命令

语法:

$ sudo nmap -sT -O localhost
$ sudo nmap -sU网 -O 192.168.2.13 ##[ list open UDP ports ]##
$ sudo nmap -sT -O 192.168.2.13 ##[ list open TCP ports ]##

举例:使用nmap确定哪些端口正在侦听TCP连接

端口被占用(如何查看端口占用)-第3张图片


可以在单个命令中组合TCP网 / UDP扫描:

$ sudo nmap -sTU -O 192.168.2.13

结束进程

根据PID kill掉相关进程:

kill -9 {PID}

在Windows下检查被监听的端口进程

常用的检查Windows操作系统的端口使用情况命令:

netstat -bano | more
netstat -bano | grep LISTENING
netstat -bano | findstr /R /C:"[LISTEING]"

举例

1.查看所有的端口占用情况

C:\>netstat -ano

端口被占用(如何查看端口占用)-第4张图片


2.查看指定端口的占用情况

在dos下,输入netstat -ano|findstr 8189,查看端口使用情况

端口被占用(如何查看端口占用)-第5张图片


3.结束该进程

输入taskkill /pid 13064 /f停止端口占用