2014-12-03 87 views
0

如何查看哪些進程在Mac OS X上的端口8001上偵聽?找不到在Mac OS X上的端口8001上偵聽哪個進程

我已經試過幾個命令:

lsof -i | grep LISTEN 
qbittorre 321 user 26u IPv4 0xc8e6037f28270c31  0t0 TCP *:6881 (LISTEN) 
qbittorre 321 user 27u IPv6 0xc8e6037f216348e1  0t0 TCP *:6881 (LISTEN) 
mysqld 14131 user 10u IPv4 0xc8e6037f3218da91  0t0 TCP *:mysql (LISTEN) 
httpd  14133 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14135 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14136 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14137 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14138 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14139 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14148 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14149 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
httpd  14150 user 16u IPv6 0xc8e6037f216352e1  0t0 TCP *:http (LISTEN) 
Skype  14543 user 57u IPv4 0xc8e6037f324f9a91  0t0 TCP *:18666 (LISTEN) 
java  24640 user 68u IPv6 0xc8e6037f3295a3e1  0t0 TCP *:http-alt (LISTEN) 
java  24640 user 73u IPv6 0xc8e6037f32958fe1  0t0 TCP *:8009 (LISTEN) 
java  24640 user 101u IPv6 0xc8e6037f32959ee1  0t0 TCP localhost:8005 (LISTEN) 

lsof的:

須藤lsof的-nPi -sTCP:聽| grep的8001

沒有發現

的netstat:

netstat的-a | grep的8001

沒有發現

我知道該端口是被人利用,因爲我試圖改變Emacs的簡單的httpd默認的httpd端口從8080(默認值)到8001,它失敗:

Warning (initialization): An error occurred while loading `/Users/user/.emacs': 

File error: Cannot bind server socket, address already in use 

To ensure normal operation, you should investigate and remove the 
cause of the error in your initialization file. Start Emacs with 
the `--debug-init' option to view a complete error backtrace. 

我該如何解決?我也嘗試將端口設置爲8002,同樣的問題,並沒有找到哪個進程正在偵聽端口8002.

什麼是問題的根源?

編輯:使用NMAP我發現,端口8001是使用VCOM隧道服務及其封閉端口和端口8002使用teradataordbms並且也被關閉。

這些服務用於什麼?我可以禁用它們並使用其佔用的端口嗎?

+0

參見[這個問題](http://stackoverflow.com/q/4421633/113848)。 – legoscia 2014-12-03 10:48:24

+0

我試過'sudo lsof -n -i4TCP:8001 | grep LISTEN'但沒有。這似乎是8001端口不使用,但我不明白爲什麼我不斷收到emacs簡單httpd錯誤... – tonix 2014-12-03 11:04:00

+0

請檢查我的編輯! – tonix 2014-12-03 11:56:09

回答

0

這不是一個答案,我只是改寫了一個問題:

  • 一個給定的端口上設置一個服務器失敗,出現錯誤Address already in use
  • lsof不適用於該端口報告任何監聽

這裏是殼日誌證明這一點:

[1]$ python -m SimpleHTTPServer 3333 2>&1 | fgrep error 
socket.error: [Errno 48] Address already in use 
[2]$ sudo lsof -i TCP:3333 
[3]$ echo $? 
1 

[1]:開始3333與錯誤Address already in use

[2]失敗端口Web服務器:lsof不報告端口3333正在使用的任何

讓我們產生以迫使lsof檢測的使用流量端口:在另一端打開telnet連接:

[1]$ telnet localhost 3333 

現在又回到以前的終端上,你會看到lsof發現你的端口:

[4]$ sudo lsof -n -P -i :3333 
COMMAND PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
telnet 78142 loic 5u IPv4 0x3fa2e8474ece6129  0t0 TCP 127.0.0.1:51855->127.0.0.1:3333 (ESTABLISHED) 

有流量怎麼回事,但根據操作系統,連接的唯一一端是存在的,發起者,但仍然沒有LISTENER

注:在我的情況下,操作系統是MacOS的10.13.3,但我不得不說和MacOS/OSX之前的版本太