2011-03-31 55 views
1

使用CentoS 5.5。指定要定影的IPv6地址

我有一個運行在端口9999上的Apache 2.x服務器,我試圖用熔絲找到它。

我可以用netstat找到它,例如:

netstat -an | grep的9999

輸出:

tcp  0  0 :::9999      :::*      LISTEN 

問題1:爲什麼netstat的顯示使用IPv6語法端口?

問題2:我可以使用什麼fuser命令來查找服務器的pid?

定影-n TCP ::: 9999

定影-n TCP 9999

定影-4 -n TCP 9999

定影-6 -n TCP 9999

:以下工作的無

定影器-6 -n tcp ::: 9999

謝謝!

回答

0

爲什麼在IPv6上監聽?那麼,在Linux上默認情況下,綁定到[::]不僅會綁定到IPv6,而且還會綁定到IPv4兼容的地址。 IPv6中的::ffff:0.0.0.0/96空間用於IPv4兼容連接。

這樣做的好處是它只需要綁定到一個套接字。它使編碼稍微簡單一些。

並非所有的發行版或操作系統都這樣做。例如,Windows要求您明確綁定到[::]0.0.0.0以支持IPv6或IPv4。在Linux上,如果net.ipv6.bindv6only sysctl設置爲1(就像它在Debian上,但不是其他大部分發行版,包括CentOS或Ubuntu),那麼您需要明確綁定到[::]0.0.0.0以支持這兩者。

至於如何看待它在fuser,像這樣做:

# fuser 80/tcp 
80/tcp:    3052 3143 3144 3146 3147 3148 

或顯示哪些進程綁定到端口:

# fuser -v 80/tcp 
        USER  PID ACCESS COMMAND 
80/tcp:    root  3052 F.... apache2 
        www-data 3143 F.... apache2 
        www-data 3144 F.... apache2 
        www-data 3146 F.... apache2 
        www-data 3147 F.... apache2 
        www-data 3148 F.... apache2 
+0

感謝您的迴應,但使用9999/tcp不起作用。 – perlman 2011-04-04 17:30:52

+0

我有一個進程偵聽TCP端口9999,「fuser -v 9999/tcp」適用於我。還要確保你以root身份運行它(你注意到我在使用#而不是$作爲上面的shell提示符)? – 2011-04-11 13:11:27

0

一個是修復被禁用IPv6的:

加入到/etc/modprobe.conf中:

別名淨-PF-10斷

我不認爲fuser喜歡ipv6。

+0

fuser之類的聲音尚未正確編譯。也就是說,應該使用--enable-ipv6作爲./configure參數進行編譯。 – 2011-04-16 10:54:06