我需要找出Unix机器(HP Itanium)上哪些进程使用了哪些端口。不幸的是,lsof
未安装,也无法安装它。
是否有其他替代方法?经过相当长时间的谷歌搜索仍然没有找到什么结果。
我需要找出Unix机器(HP Itanium)上哪些进程使用了哪些端口。不幸的是,lsof
未安装,也无法安装它。
是否有其他替代方法?经过相当长时间的谷歌搜索仍然没有找到什么结果。
由于(unix)中几乎所有东西都是文件,因此lsof列出了打开的文件...
Linux: netstat -putan或者lsof | grep TCP
OSX: lsof | grep TCP
其他Unix系统:使用lsof
命令...
netstat -pln
编辑:仅适用于Linux,在其他UNIX系统上,netstat可能不支持所有这些选项。
pfiles打印有关进程所有打开文件描述符的信息。如果文件描述符对应于文件,则pfiles打印fstat(2)和fcntl(2)信息。
如果文件描述符对应于套接字,则pfiles打印与套接字相关的信息,例如套接字类型、套接字族和协议族。
对于AF_INET和AF_INET6套接字族,还会打印有关对等主机的信息。
对于$(ps -ex | awk '{print $1}')中的f,请执行以下操作:echo $f; pfiles $f | grep PORTNUM; done
将PORTNUM替换为端口号。 :) 可能是子pid,但足以确定问题应用程序。
netstat -ln | awk '/^(tcp|udp)/ { split($4, a, /:/); print $1, a[2]}' | sort -u
该命令可以列出当前正在使用的TCP/UDP端口。您可以使用fuser -n tcp
或fuser -n udp
命令来使用这些端口,前提是您具有root权限,并且假设fuser
是GNU fuser或具有类似的选项。
如果您需要更多帮助,请告诉我。
我使用这个命令:
netstat -tulpn | grep LISTEN
pfiles PID
命令来显示进程的所有打开文件。哪个进程在Unix中使用端口;
root> netstat -Aan | grep 3872
output> f1000e000bb5c3b8 tcp 0 0 *.3872 . LISTEN
output> 套接字0xf1000e000bb5c008正被进程13959354(Java)占用。
netstat -tulpn