我在运行 ssh 和 rsync 的 Ubuntu 机器上禁用了 IPv6。但这两个仍在监听 IPv6 地址。我该如何解决这个问题?
[email protected]:~# sysctl net.ipv6.conf.all.disable_ipv6
net.ipv6.conf.all.disable_ipv6 = 1
[email protected]:~# sysctl net.ipv6.conf.default.disable_ipv6
net.ipv6.conf.default.disable_ipv6 = 1
[email protected]:~# sysctl net.ipv6.conf.lo.disable_ipv6
net.ipv6.conf.lo.disable_ipv6 = 1
和
[email protected]:~# 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))
答案1
这对我有用:
将这些行添加到 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
当然,这不会阻止 bind 盲目尝试使用 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
答案2
要从终端窗口检查 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。
答案3
打开终端并输入以下命令(如果您不使用 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
最后,重新启动系统。
答案4
只需在计算机上关闭 IPv6(为什么您想要这样做)就很容易了。只需在配置文件中添加一行即可。是的,您必须root
创建该文件。
$ cat <<EOF >/etc/modprobe.d/blacklist-ipv6.conf
# To turn off IPv6, though you don't need too.
# But anyways.
blacklist ipv6
# eof
EOF
只需重新启动或尝试:
$ sudo rmmod ipv6