![AIX:我们是否可以通过某种方式获取 ForeignAddress/PID 对,就像我们在 Linux 中使用 netstat 那样?](https://linux22.com/image/591885/AIX%EF%BC%9A%E6%88%91%E4%BB%AC%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E6%9F%90%E7%A7%8D%E6%96%B9%E5%BC%8F%E8%8E%B7%E5%8F%96%20ForeignAddress%2FPID%20%E5%AF%B9%EF%BC%8C%E5%B0%B1%E5%83%8F%E6%88%91%E4%BB%AC%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20netstat%20%E9%82%A3%E6%A0%B7%EF%BC%9F.png)
在 Linux(RHEL)中,我们可以使用“netstat -ntp”命令获取 ForeignAddress/PID 对:
[root@rhel ~]# netstat -ntp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 10.30.39.13:139 10.30.36.190:22239 ESTABLISHED 15255/smbd
tcp 0 0 ::ffff:10.30.39.13:22 ::ffff:10.30.34.64:2523 ESTABLISHED 27970/sshd: james [pri
tcp 0 148 ::ffff:10.30.39.13:22 ::ffff:10.30.34.64:2518 ESTABLISHED 27937/3
例如,对于上面的用户 james,我们有10.30.34.64:2523&27970。
是否有可能在 AIX 5.3 中获取相同的信息 (ForeignAddress/PID)?
答案1
如果您有适用于 Linux 应用程序的 AIX 工具箱,则可以使用 lsof,它应该会有所帮助,例如:
host:/:$ lsof -i :22
sshd 1953 root 3u IPv4 300864051 0t0 TCP *:ssh (LISTEN)
sshd 1953 root 4u IPv6 300864053 0t0 TCP *:ssh (LISTEN)
sshd 19753 root 3u IPv4 366276287 0t0 TCP XXX.XXX.XXX.XXX:ssh->XXX.XXX.XXX.XXX:54371 (ESTABLISHED)
sshd 19755 user 3u IPv4 366276287 0t0 TCP XXX.XXX.XXX.XXX:ssh->XXX.XXX.XXX.XXX:54371 (ESTABLISHED)
host:/:$
这样,您就会看到谁在监听端口 22 以及谁连接到了该端口。
使用 AIX 的本机工具,我认为它有点棘手,并且在我看来比 lsof 没那么有用:
# netstat -Aan |grep <port_to_match>
<hex_number> tcp 0 0 *.XXX *.* LISTEN
# rmsock <hex_number> tcpcb
The socket <hex_number> is being held by proccess XXX (process_name).
# ps -ef |grep XXX
user XXX YYY 0 Aug 03 - /your/process
希望它有帮助。