34

我需要找出哪些端口连接到 Unix 机器(HP Itanium)上的哪些进程。不幸的是,lsof没有安装,我没有办法安装它。

有谁知道另一种方法?一个相当长的谷歌搜索没有出现任何东西。

4

9 回答 9

44

netstat -l(假设它带有那个版本的 UNIX)

于 2008-09-24T08:21:40.970 回答
28

给定(几乎)unix上的所有内容都是一个文件,并且 lsof 列出打开的文件......

Linux:netstat -putan or lsof | grep TCP

操作系统:lsof | grep TCP

其他Unixen:lsof方式...

于 2008-09-24T08:26:51.333 回答
13
netstat -pln

编辑:仅限 linux,在其他 UNIX 上 netstat 可能不支持所有这些选项。

于 2008-09-24T08:31:36.127 回答
10

假设这是 HP-UX?Ptools怎么样- 你安装了那些吗?如果是这样,您可以使用“pfiles”来查找应用程序正在使用的端口:

pfiles 打印有关进程的所有打开文件描述符的信息。如果文件描述符对应于一个文件,则 pfiles 打印 fstat(2) 和 fcntl(2) 信息。

如果文件描述符对应一个套接字,则 pfiles 打印套接字相关信息,例如套接字类型、套接字系列和协议系列。

在 AF_INET 和 AF_INET6 系列套接字的情况下,还会打印有关对等主机的信息。

对于 f in $(ps -ex | awk '{print $1}'); 回声 $f; pfiles $f | grep 端口号;完毕

将 PORTNUM 切换为端口号。:) 可能是子 pid,但可以让您足够接近以识别问题应用程序。

于 2008-09-25T20:37:04.377 回答
6
netstat -ln | awk '/^(tcp|udp)/ { split($4, a, /:/); print $1, a[2]}' | sort -u

为您提供活动的 tcp/udp 端口​​。然后,您可以使用带有fuser -n tcpor的端口fuser -n udp,以 root 身份,并假设它fuser是 GNU fuser 或具有类似选项。

如果您需要更多帮助,请告诉我。

于 2008-09-24T08:43:41.747 回答
2

尝试pfiles PID显示一个进程的所有打开文件。

于 2008-09-24T08:24:27.487 回答
1

哪个进程在 unix 中使用端口;

1. netstat -Aan | grep 端口

根> netstat -Aan | grep 3872

输出> f1000e000bb5c3b8 tcp 0 0 *.3872

2. rmsock f1000e000bb5c3b8 tcpcb

输出> 套接字 0xf1000e000bb5c008 由进程 13959354 (java) 持有。

3.ps -ef | grep 13959354

于 2015-06-17T10:05:37.753 回答
1

我使用这个命令:

netstat -tulpn | grep LISTEN

您可以有一个干净的输出,显示正在侦听的进程 ID 和端口

于 2019-01-31T14:29:49.503 回答
0

如果您想知道所有侦听端口及其详细信息:本地地址、外部地址和状态以及进程 ID (PID)。您可以在 linux 中使用以下命令。

 netstat -tulpn
于 2019-03-12T05:19:58.357 回答