程序执行时会用到端口

程序执行时会用到端口

我如何才能知道程序在执行时使用了哪些端口?

我正在使用 Ubuntu 14.04 服务器和程序“SMcli”。但程序每次执行时都显示“连接到存储系统时检测到网络错误”。但在我们更改位置之前,一切都运行正常。

现在我需要知道这个程序正在使用哪些端口。然后我就可以查看目标正在监听哪些端口。

答案1

尝试在程序启动前和程序启动后使用netstat -tunap或。netstat -tunlp

答案2

如果你的程序是nc(例如),你可以执行以下操作:

sudo netstat -tulpn | grep "nc" | grep -Po "(?<=:)[^ ]+(?=.*:)"

或者

sudo netstat -tulpn | grep "nc" | tr -s ' ' | cut -d' ' -f4 | cut -d: -f2

这里我仅考虑了 IPv4,并假设您只运行了一个服务实例。如果您需要考虑上述任何一项,那么您应该按名称查找服务,然后决定需要哪一个:

sudo netstat -tulpn | grep "nc"

替换nc为您要查找的服务名称。

例子:

$ sudo netstat -tulpn | grep "nc" | tr -s ' ' | cut -d' ' -f4 | cut -d: -f2
4567
$ sudo netstat -tulpn | grep "nc" | grep -Po "(?<=:)[^ ]+(?=.*:)"
4567

相关内容