我有一个运行在端口9999上的Apache2.x服务器,我正在尝试使用fuser查找它。
我可以使用netstat找到它,即:
netstat -an | grep 9999
输出:
tcp 0 0 :::9999 :::* LISTEN 问题1:为什么netstat使用IPv6语法显示端口?
问题2:我可以使用什么fuser命令来查找服务器的pid?
熔断器-6 -n tcp :9999
谢谢!
发布于 2011-04-01 12:46:11
它为什么要在IPv6上监听?在Linux上,默认情况下,绑定到[::]不仅会绑定到IPv6,还会绑定到与ipv4兼容的地址。IPv6中的::ffff:0.0.0.0/96空间用于兼容IPV4的连接。
软件这样做的好处是它只需要绑定到一个套接字。这使得编码稍微简单了一点。
并非所有的发行版或操作系统都能做到这一点。例如,Windows要求您显式绑定到[::]或0.0.0.0才能支持IPv6或IPv4。在Linux上,如果Debian 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发布于 2011-04-05 23:25:00
其中一个修复是禁用ipv6:
添加到/etc/modprobe.conf:
alias net-pf-10 off
我不认为fuser喜欢ipv6。
https://stackoverflow.com/questions/5506756
复制相似问题