在Linux中,如何检查端口是否在使用?
时间:2019-11-20 08:53:33 来源:igfitidea点击:
在Linux中,如何检查进程正在监听哪些端口?
在Linux中,网口使用端口号来确定数据包是发送给哪个进程的。
Linux中的常用端口号
- HTTP TCP 80
- HTTPS TCP 443
- POP3 TCP 110
- SMTP TCP 25
- SSH TCP 22
- DNS /域TCP/UDP 53
可以在/etc/services中查看常用服务对应的默认端口号:
cat /etc/services grep -w 80 /etc/services egrep -w '53/(tcp|udp)' /etc/services
如何检查Linux是否正在打开某个端口
执行下面命令
sudo lsof -i -P -n | grep LISTEN sudo netstat -tulpn | grep LISTEN sudo netstat -tulpn | grep :443 sudo ss -tulpn | grep LISTEN sudo ss -tulpn | grep ':22'
如何找出打开某个端口对应的进程
要查看哪个进程打开了端口,可以使用ss命令或netstat命令
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
查看Linux系统中所有打开的端口号
只需运行:
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:631 0.0.0.0:* LISTEN 1119/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1414/master tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 680/rpcbind tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1728/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1122/sshd tcp6 0 0 ::1:631 :::* LISTEN 1119/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1414/master tcp6 0 0 :::111 :::* LISTEN 680/rpcbind tcp6 0 0 :::22 :::* LISTEN 1122/sshd udp 0 0 0.0.0.0:5353 0.0.0.0:* 743/avahi-daemon: r udp 0 0 0.0.0.0:34807 0.0.0.0:* 743/avahi-daemon: r udp 0 0 192.168.122.1:53 0.0.0.0:* 1728/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 1728/dnsmasq udp 0 0 0.0.0.0:111 0.0.0.0:* 680/rpcbind udp 0 0 127.0.0.1:323 0.0.0.0:* 775/chronyd udp 0 0 0.0.0.0:842 0.0.0.0:* 680/rpcbind udp6 0 0 :::111 :::* 680/rpcbind udp6 0 0 ::1:323 :::* 775/chronyd udp6 0 0 :::842 :::* 680/rpcbind