Linux查看端口号被占用的命令 linux端口号是否被占用( 二 )

-PID和进程名称 。
如果要过滤结果 , 请使用 grep命令 。例如 , 要查找在TCP端口22上侦听的进程 , 你可以输入:
sudo netstat -tnlp | grep :22
输出显示此计算机上的端口22被SSH服务器使用:
tcp00 0:220:*LISTEN445/sshd
tcp600 :::22:::*LISTEN445/sshd
如果输出为空 , 则表示端口上没有监听 。
你也可以根据条件过滤列表 , 例如PID , 协议 , 状态等 。
netstat已过时 , 被ssip 取代 , 但它仍然是检查网络连接的最常用命令 。
ss检查监听端口
ss是新的netstat 。它缺少netstat的某些功能 , 但是公开了的TCP状态 , 并且速度稍快 。命令选项基本相同 , 因此从netstatss的转换并不困难 。
要使用ss获取所有监听端口的列表 , 请输入:
sudo ss -tunlp
输出与netstat报告的输出几乎相同:
StateRecv-QSend-QLocal Address:PortPeer Address:Port
LISTEN01280:220:*users:(("sshd",pid=445,fd=3))
LISTEN01000:250:*users:(("master",pid=929,fd=13))
LISTEN0128*:3306*:*users:(("mysqld",pid=534,fd=30))
LISTEN0128*:80*:*users:(("apache2",pid=765,fd=4),("apache2",pid=764,fd=4),("apache2",pid=515,fd=4))
LISTEN0128[::]:22[::]:*users:(("sshd",pid=445,fd=4))
LISTEN0100[::]:25[::]:*users:(("master",pid=929,fd=14))
LISTEN070*:33060*:*users:(("mysqld",pid=534,fd=33))
使用lsof检查监听端口
lsof是功能强大的命令行应用程序 , 可提供有关进程打开的文件的信息 。
在Linux中 , 所有内容都是文件 。你可以将套接字视为写入网络的文件 。
要获取具有lsof的所有侦听TCP端口的列表 , 请输入:
sudo lsof -nP -iTCP -sTCP:LISTEN
使用的选项如下:

  • -n-不要将端口号转换为端口名称 。
  • -p -不解析主机名 , 显示数字地址 。
-iTCP -sTCP:LISTEN -仅显示TCP状态为LISTEN的网络文件 。
COMMANDPIDUSERFDTYPE DEVICE SIZE/OFF NODE NAME
sshd445root3uIPv4164340t0TCP *:22 (LISTEN)
sshd445root4uIPv6164450t0TCP *:22 (LISTEN)
apache2515root4uIPv6165900t0TCP *:80 (LISTEN)
mysqld534mysql30uIPv6176360t0TCP *:3306 (LISTEN)
mysqld534mysql33uIPv6199730t0TCP *:33060 (LISTEN)
apache2764 -data4uIPv6165900t0TCP *:80 (LISTEN)


推荐阅读