正在使用的端口未显示在 netstat 输出中

正在使用的端口未显示在 netstat 输出中

在什么情况下进程使用的端口不会显示在netstat -a输出中?

我正在jenkins我的机器上运行。它正在侦听端口 8080。我试图启动另一个尝试绑定到同一端口的进程,但失败并显示端口已在使用中的错误。

现在,当我这样做时netstat -a | grep 8080,它不会出现在输出中。停止jenkins我的进程成功绑定到 8080 后。有任何线索发生了什么吗?

我运行的是 CentOS。

答案1

刚刚在 Ubuntu 14.04 上遇到了类似的情况。事实上,jenkins 默认端口(8080)映射到 /etc/services 中的“http-alt”名称。您可以轻松地检查这一点

grep 8080 /etc/services
http-alt    8080/tcp    webcache    # WWW caching service
http-alt    8080/udp

除了 netstat 之外,您还可以考虑使用 ss

ss -ntl | grep 8080

或者

ss -tl | grep http-alt

答案2

在哪些情况下,进程使用的端口不会显示在 netstat -a 输出中。

如果一切正常,永远不会。如上所述,您可以将端口号替换为 中列出的服务名称/etc/services

使用netstat -na可确保服务端口不会转换为服务名称。

答案3

我遇到一个问题,服务在端口 443 上运行良好,但 netstat 中根本没有 443 端口。最后我找到了一些iptables转发规则,可以列出来

iptables -t nat -L -n -v

答案4

我总是使用:

netstat -tupna

这样你就不会错过任何事情。

相关内容