`netstat`不显示由python SimpleHTTPServer绑定的套接字?

本地服务器使用Python 2.7中的SimpleHTTPServer模块运行

$ python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 ... 

然后,我使用netstat来search该套接字使用8000作为端口号的筛选器,但是,我找不到任何带有该filter的套接字(即使当我打开浏览器窗口并访问127.0.0.1:8000 )。

 $ netstat | grep 8000 // "return Nothing" 

有没有人有想法,为什么我看不到在Python的SimpleHTTPServer在netstat绑定的套接字?

请注意, 0.0.0.0表示您的服务器将列在您计算机的所有IP地址上,因此如果您想在本地运行,请将您的Python代码中的IP地址从0.0.0.0更改为127.0.0.1localhost

最好运行: netstat -an|grep 8000

由@MK扩展答案。


默认情况下, netstat只显示连接的端口 ,但显示只是空闲的端口 。 因此,混乱。
netstat的作者为了简单或美观而进行了调用。

如果你连接到:8000端口,它将显示在netstat调用。

否则,你必须明确表示你想要它。

 netstat -a | grep 8000 

当您运行netstat w / o -n参数时,它将显示地址作为名称,包括协议。 所以,如果你在端口80上听,它会显示为localhost:http和你的grep for 8000找不到它。 在你的情况下,它是端口8000,根据

 grep 8000 /etc/services 

它可能显示为本地主机:irdmi

运行

 netstat -na 

将解决这个问题,并报告更有用的:8000。 有趣的是,netstat的默认模式更加“友好”,几乎总是比-n更有用。