问题描述
我在运行ssh和rsync的Ubuntu机器上禁用了IPv6。但是这两个都仍在侦听IPv6地址。我该如何解决?
root@box.com:~# sysctl net.ipv6.conf.all.disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 1
root@box.com:~# sysctl net.ipv6.conf.default.disable_ipv6
net.ipv6.conf.default.disable_ipv6 = 1
root@box.com:~# sysctl net.ipv6.conf.lo.disable_ipv6
net.ipv6.conf.lo.disable_ipv6 = 1
和
root@box.com:~# ss -lnp6
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::22 :::* users:(("sshd",1505,4))
LISTEN 0 5 :::873 :::* users:(("rsync",3423,5))
最佳解决方案
这为我工作:
将这些行添加到sysctl.conf的底部
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
然后运行sudo sysctl -p
或重新启动
资料来源:http://www.noobslab.com/2012/05/disable-ipv6-if-your-internet-is.html
当然,这当然不会因为盲目尝试使用ipv6而停止绑定,因此您还需要像这样更改/etc/default/bind9
:
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-4 -u bind"
资料来源:http://blog.evilcoder.net/disable-ipv6-on-bind9-linux/#sthash.U95y4s6U.dpuf
次佳解决方案
要从终端窗口检查是否启用或禁用了IPv6,请执行以下操作:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
0表示已启用,1表示已禁用。
禁用IPv6
$ sudo su -
# nano /etc/sysctl.conf
并将这些行添加到sysctl.conf文件中
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
使用新的配置保存sysctl.conf文件,然后重新启动系统
# reboot
再次检查系统
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
现在您应该看到“ 1”表示您的系统已禁用IPv6。
从http://namhuy.net/1419/disable-ipv6-ubuntu-linux-mint.html
第三种解决方案
-
打开终端并输入以下命令(如果您不使用Gedit,请用文本编辑器(例如Kate等)替换它)。
sudo gedit /etc/default/grub
-
并搜索:
GRUB_CMDLINE_LINUX
对其进行修改,如下所示:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
-
现在,让我们更新GRUB:
sudo update-grub2
或者,如果您不使用GRUB 2,请执行以下操作:
sudo update-grub
-
最后,重新启动系统。