AIX 系统端口对应进程号
在AIX系统中查询端口对应的进程不像linux那么方便。因为AIX系统中的netstat命令不能直接打印出端口对应的进程。所以刚接触AIX的新手往往不知道如何查询端口对应的进程号,下面介绍两种方法来查询端口对应进程号。
一、使用rmsock命令和netstat命令查询:
对于netstat命令比较常用,而对于rmsock比较陌生,下面简单介绍一下rmsock命令以及查询端口对应进程号的过程。
1、 rmsock命令:
rmsock除去不包含文件描述符的套接字。它接受 socket、tcpcb、inpcb、ripcb 或 rawcb 地址并将其转换成套接字地址。然后检查每个进程所有打开的文件以查找套接字的匹配。如果没找到匹配,对该套接字执行异常终止操作,而不考虑套接字 linger 选项的存在。套接字保留的端口号释放。如果发现匹配,文件描述符和主进程状态显示给用户。结果发送到 syslogd 并在 /var/adm/rmsock.log 文件中记录。
命令格式:rmsock Address TypeofAddress
2、举例说明端口对于进程查询。
(1)、先使用netstat命令查看端口系统内核地址(16进制),如查看ssh 22端口的进程。
# netstat –Aan |grep 22
f1000600044c7398 tcp4 0 52 134.96.194.9.22 134.96.90.123.1797 ESTABLISHED
f1000600044e4b98 tcp4 0 0 *.22 *.* LISTEN
其中: f1000600044e4b98 tcp4 0 0 *.22 *.* LISTEN
行为侦听端口22端口相关信息, f1000600044e4b98为系统内核地址。
(2)、调用rmsock命令查看该端口对应的进程号:
# rmsock f1000600044e4b98 tcpcb
The socket 0x44e4808 is being held by proccess 447250 (sshd). —显示端口22的进程号为447250。
这样就查出了端口对应的系统进程号。
二、通过lsof 命令查看端口对应的进程号。
# lsof –i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 107084 root 3u IPv4 0xf100070000a3a3b0 0t0 TCP *:ssh (LISTEN)
其中
sshd 107084 root 3u IPv4 0xf100070000a3a3b0 0t0 TCP *:ssh (LISTEN)
行为侦听端口22端口相关信息,第二列(PID)107084为端口22的系统进程号。