地址已在使用中,但在netstat或lsof中没有任何内容

时间:2014-05-28 08:59:31

标签: python linux port netstat lsof

我尝试在端口7054上启动Python SimpleHTTPServer:

$ sudo python -m SimpleHTTPServer 7054
...
socket.error: [Errno 98] Address already in use

所以,我运行了以下命令:

$ sudo netstat -ntpu | grep 7054
$ sudo lsof -i -n -P | grep 7054

但我没有结果。

1 个答案:

答案 0 :(得分:9)

来自netstat联机帮助页:

netstat   [address_family_options]   [--tcp|-t]   [--udp|-u]   [--raw|-w]   [--listening|-l]  [--all|-a]  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]
[--numeric-users] [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c]

我使用以下选项:

sudo netstat -tanl | grep 7054

哪个是--numeric--tcp--all--listening

我认为显示在特定端口上侦听的进程的pid所需的最小netstat选项是-nlp

您指定的lsof选项适合我。使用https://wiki.python.org/moin/UdpCommunication#Receivingpython -m SimpleHTTPServer 7054上的示例代码:

$ netstat -nlp | grep 7054
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:7054            0.0.0.0:*               LISTEN      20458/python    
udp        0      0 0.0.0.0:7054          0.0.0.0:*                           20498/python    
$ lsof -i -n -P | grep 7054
python    20458 michael    3u  IPv4 143736      0t0  TCP *:7054 (LISTEN)
python    20498 michael    3u  IPv4 173739      0t0  UDP *:7054 

额外信用:坚持使用别名:

listening() {
    netstat -nlp | grep $1
}

并使用它:

$ listening 7054