我试图在我的NFS服务器上完全禁用IPv6(Ubuntu 12.04 LTS精确),但是当我运行netstat -lp时,似乎仍然有一些监听的IPv6端口正在监听:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:60377 *:* LISTEN - tcp 0 0 *:49115 *:* LISTEN 1744/rpc.mountd tcp 0 0 *:nfs *:* LISTEN - tcp 0 0 *:54658 *:* LISTEN 1744/rpc.mountd tcp 0 0 *:sunrpc *:* LISTEN 450/rpcbind tcp 0 0 *:55730 *:* LISTEN 709/rpc.statd tcp 0 0 *:48181 *:* LISTEN 1744/rpc.mountd tcp6 0 0 [::]:37004 [::]:* LISTEN - udp 0 0 *:55738 *:* 1744/rpc.mountd udp 0 0 *:43533 *:* - udp 0 0 *:43687 *:* 709/rpc.statd udp 0 0 *:sunrpc *:* 450/rpcbind udp 0 0 *:615 *:* 450/rpcbind udp 0 0 localhost:885 *:* 709/rpc.statd udp 0 0 *:50206 *:* 1744/rpc.mountd udp 0 0 *:54380 *:* 1744/rpc.mountd udp 0 0 *:nfs *:* - udp6 0 0 [::]:46857 [::]:* -
我在/etc/sysctl.d/ipvf-disable.conf的内核级别上禁用了IPv6:
#disable ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
而且在/ etc / netconfig中:
udp tpi_clts v inet udp - - tcp tpi_cots_ord v inet tcp - - #udp6 tpi_clts v inet6 udp - - #tcp6 tpi_cots_ord v inet6 tcp - - rawip tpi_raw - inet - - - local tpi_cots_ord - loopback - - - unix tpi_cots_ord - loopback - - -
完成这些更改后,我重新启动,上面的netstat输出没有改变。 打开的UDP6和TCP6端口似乎是内核端口(因此缺lessPID),并且在运行/etc/init.d/nfs-kernel-server stop时消失。
我发现了以下错误报告: https : //bugs.debian.org/cgi-bin/bugreport.cgi? bug =648635符合我的问题,但似乎没有任何答复。 我在这里错过了什么,或者这是一个错误?
编辑 – 为了澄清,有代码不能很好地运行任何IPv6(是的,这是蹩脚的代码,它不能轻易改变),因为它读取netstat和rest。 任何有关如何从netstat删除IPv6参考的想法,将不胜感激。
为了完整起见,我设法通过创build一个“netstat”shell脚本来解决这个特定情况,该脚本将IPv6分离出现有的netstat,并向应用程序提供包括此脚本的替代PATH。
注 – 这显然不是一个好的主意,但作为一个永久性的解决scheme,没有更好的select对我开放似乎工作。