本地服务器使用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.1
或localhost
。
最好运行: 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更有用。