![程序执行时会用到端口](https://linux22.com/image/980418/%E7%A8%8B%E5%BA%8F%E6%89%A7%E8%A1%8C%E6%97%B6%E4%BC%9A%E7%94%A8%E5%88%B0%E7%AB%AF%E5%8F%A3.png)
我如何才能知道程序在执行时使用了哪些端口?
我正在使用 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