2011-03-31 74 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