通过端口号查服务

原创
01/17 21:21
阅读数 8

1 概述

我们在netstat命令文章中,介绍了通过进程名称或者进程ID来查其监听的端口号。

# 获取进程ID
ps -ef | grep -v sshd
root     29879     1  0  2024 ?        00:00:00 /usr/sbin/sshd -D

# 通过进程ID查监听端口
sudo netstat -tulnp | grep 29879
tcp        0      0 0.0.0.0:10022           0.0.0.0:*               LISTEN      29879/sshd          
tcp6       0      0 :::10022                :::*                    LISTEN      29879/sshd 

# 通过进程名称查监听端口
sudo netstat -tulnp | grep sshd
tcp        0      0 0.0.0.0:10022           0.0.0.0:*               LISTEN      29879/sshd          
tcp6       0      0 :::10022                :::*                    LISTEN      29879/sshd

有时候,我们需要通过端口号,来查看是哪个进程在监听。我们以上面的10022端口为例,来介绍几种方式。

2 netstat

sudo netstat -tulnp | grep 10022
tcp        0      0 0.0.0.0:10022           0.0.0.0:*               LISTEN      29879/sshd          
tcp6       0      0 :::10022                :::*                    LISTEN      29879/sshd

3 ss

是另一个用于检查套接字的工具,它是netstat的现代替代品,并且通常更快。此命令不需要root权限,推荐使用。

ss -tulnp | grep 10022

tcp    LISTEN     0      128       *:10022                 *:*                   users:(("sshd",pid=29879,fd=3))
tcp    LISTEN     0      128      :::10022                :::*                   users:(("sshd",pid=29879,fd=4))

4 lsof

注意,端口号前面的冒号是必需的,它表明你正在查找的是端口号而不是文件名。此命令需要root权限。

sudo lsof -i :10022

COMMAND   PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
sshd    21878 root    3u  IPv4 916597603      0t0  TCP yiyunjie.bcc-szth.baidu.com:10022->172.31.22.20:39151 (ESTABLISHED)
sshd    23592 root    3u  IPv4 573598232      0t0  TCP yiyunjie.bcc-szth.baidu.com:10022->10.227.188.28:54558 (ESTABLISHED)
sshd    29879 root    3u  IPv4 466170948      0t0  TCP *:10022 (LISTEN)
sshd    29879 root    4u  IPv6 466170950      0t0  TCP *:10022 (LISTEN)

5 fuser

sudo fuser 10022/tcp
10022/tcp:           29879

sudo fuser 10022/udp

ps -ef | grep 29879

root     29879     1  0  2024 ?        00:00:00 /usr/sbin/sshd -D

输出正在监听此端口的进程ID,然后通过进程ID反查进程名称。

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部