如何判断哪个应用程序正在使用哪个端口?


0

我一直在netstatMacBook 上看输出。我注意到一些应用程序允许您指定它使用的端口。例如,utorrent允许您这样做。我选择了一个端口55743然后运行netstat | grep 55743,输出如下。

udp6       0      0  *.55743                *.*
udp4       0      0  *.55743                *.*

当我退出时utorrent,端口被释放。但是,如果我不知道端口号,那么如何判断哪个应用程序正在使用哪个端口?某些应用程序是否可能秘密使用端口与外部服务器设备进行通信?

Answers:


2

正如David Houde所说,lsof -i您的朋友是否会为您提供当前套接字连接/操作的快照。不幸的是,在OS X上,netstat不支持此功能。

其他选择包括:

Activity Monitor.app允许您查看应用程序打开的文件和端口。这可以通过双击进程并打开“打开文件和端口”选项卡来完成。

Dtrace - 检查soconnect脚本,它为您提供有关网络操作的连续信息,直到您退出(control + c)。示例输出:

sudo /tmp/soconnect.d 
PID    PROCESS          FAM ADDRESS          PORT   LAT(us) RESULT
8211   X-Lite           2   192.168.1.109    5060        25 Success
4112   Google Chrome    2   173.194.34.134   443         53 In progress
8211   X-Lite           2   192.168.1.109    5060        30 Success

我非常喜欢的一个应用程序是小故障,但它恰好是商业软件。虽然这是一个桌面防火墙软件,但它有许多可能对您有用的功能:

  • 网络监视器,它告诉你哪些应用程序连接到哪里(类似于soconnect.d输出的方式)
  • 捕获每个应用程序的网络流量(即类似于wireshark,您可以监视网络流量,但仅限于特定应用程序)

回答第二个问题 - 是的,在传统操作系统(例如OS X,Windows)上,应用程序能够以各种方式连接到第三方系统并发送任何内容。许多桌面防火墙试图通过允许您指定每个应用程序可以连接到的位置来解决此问题,从而具有一种白名单。像安全中的任何其他东西一样,这种方法并非没有缺陷。

PS。我与任何桌面防火墙软件供应商没有关联:)


1

您可以使用更多netstat参数或使用lsof来完成此操作:

netstat -lp
lsof -i udp:55743
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.