Apache2 为fuser指定IPv6地址
使用CentoS 5.5 我有一个Apache2.x服务器运行在端口9999上,我正在尝试使用fuser查找它 我可以使用netstat找到它,即: netstat-an | grep 9999 产出:Apache2 为fuser指定IPv6地址,apache2,ipv6,fuser,Apache2,Ipv6,Fuser,使用CentoS 5.5 我有一个Apache2.x服务器运行在端口9999上,我正在尝试使用fuser查找它 我可以使用netstat找到它,即: netstat-an | grep 9999 产出: tcp 0 0 :::9999 :::* LISTEN 问题1:为什么netstat使用IPv6语法显示端口 问题2:我可以使用什么fuser命令来查找服务器的pid?以下工作均未
tcp 0 0 :::9999 :::* LISTEN
问题1:为什么netstat使用IPv6语法显示端口
问题2:我可以使用什么fuser命令来查找服务器的pid?以下工作均未完成:
定影器-n tcp:::9999
fuser-n tcp 9999
定影器-4-n tcp 9999
定影器-6-n tcp 9999
定影器-6-n tcp:::9999
谢谢 为什么它要监听IPv6?在Linux上,默认情况下,绑定到
[::]
不仅会绑定到IPv6,还会绑定到与IPv4兼容的地址。IPv6中的::ffff:0.0.0.0/96
空间用于IPv4兼容的连接
软件这样做的优点是它只需要绑定到一个套接字。它使编码稍微简单一些
并非所有发行版或操作系统都这样做。例如,Windows要求您显式绑定到[::]
或0.0.0
以支持IPv6或IPv4。在Linux上,如果将net.ipv6.bindv6only
sysctl设置为1
(就像在Debian上一样,但不是大多数其他发行版,包括CentOS或Ubuntu),则需要显式绑定到[:]
和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
其中一个问题是禁用ipv6: 添加到/etc/modprobe.conf: 别名net-pf-10关闭
我认为fuser不喜欢ipv6。我有一个进程监听TCP端口9999,而“fuser-v 9999/TCP”对我来说很有用。还要确保您以root用户身份运行它(您是否注意到我在上面的shell提示符中使用了#而不是$)?听起来fuser没有正确编译。也就是说,它应该使用--enable-ipv6作为参数来编译。/configure。