在 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
希望它有帮助。