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


11

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

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

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

我正在运行CentOS。


1
尝试netstat -lp,向您展示正在监听的进程
2014年

6
netstat -an | grep 8080如果8080在您的/etc/services文件中并被其符号名替换,请尝试一下。
2014年

2
另一种方法将使用 lsof -i :8080
Valentin Bajrami 2014年

1
netstat -an和lsof -i:8080都起作用了。谢谢您的帮助!!!
rs

您的端口可能按名称而不是数字显示。使用netstat -an

Answers:


4

在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

1

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

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

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


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.