如何检查Linux上是否正在使用端口?
时间:2020-01-09 14:16:38 来源:igfitidea点击:
我需要找出使用命令行在Linux上的端口上侦听哪个进程。
如何确定Linux操作系统上的端口正在侦听哪个进程?
Linux中的网络端口仅是一个数字,用于标识两个系统之间连接的一侧。
所有联网设备都使用端口号来确定将消息传递到哪个进程。
域名和IP地址就像街道地址,而端口号就像房间号。
Linux中的常用端口号
- HTTP TCP 80
- HTTPS TCP 443
- POP3 TCP 110
- SMTP TCP 25
- SSH TCP 22
- DNS /域TCP/UDP 53
使用cat命令或grep命令/egrep命令来查询端口号,如下所示:
cat /etc/services grep -w 80 /etc/services egrep -w '53/(tcp|udp)' /etc/services
如何检查Linux是否正在使用端口
步骤如下:
- 打开终端应用程序
- 输入以下命令中的任何一个,以检查Linux
sudo lsof -i -P -n |是否正在使用端口。 grep LISTEN
sudo netstat -tulpn | grep LISTENsudo netstat -tulpn | grep:443``sudo ss -tulpn | grep LISTEN``sudo ss -tulpn | grep':22'
让我们详细查看一些示例和示例命令。
您如何找出哪个进程正在Linux的端口上侦听
输入ss命令或netstat命令以查看Linux上是否正在使用TCP端口443?
sudo netstat -tulpn | grep :443 sudo ss -tulpn | grep :443
如果端口是开放的,您应该看到如下输出:
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 438/nginx -g daemo
nginx服务正在使用并打开端口443。
其中:
- -t:显示TCP套接字/端口
- -u:显示UDP套接字/端口
- -l:仅查看监听套接字,即打开端口
- -p:还显示打开端口/套接字的进程名称
- -n:以数字格式查看地址和端口号。不要使用DNS来解析名称。
获取生产中所有开放端口的列表
只需运行:
sudo lsof -i -P -n | grep LISTEN sudo ss -tulpn sudo netstat -tulpn
输出示例:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 500/redis-server 12 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 438/nginx -g daemon tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 407/lighttpd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 438/nginx -g daemon tcp6 0 0 :::80 :::* LISTEN 438/nginx -g daemon udp 0 0 0.0.0.0:68 0.0.0.0:* 277/dhclient
lsof命令的另一个输出:从上面的输出中,很明显,Lighttpd打开了端口TCP端口8080,而Nginx服务器打开了TCP 80端口和443端口。
所有这些服务器都在名为www-data的用户下运行。