跳到内容
观澜涉川 · 札记EN

在 Linux 服务器上禁止 IPv6

· 约 1 分钟阅读

在 Linux 云服务器上,可能默认开启了 IPv6。但如果想禁用,那么可以临时禁用(但在下次重启后回复);或者永久禁用。下面以 Ubuntu 24.04 为例,介绍禁用 IPv6 的方法。

查看 IPv6 是否启用

检查系统是否启用IPv6的最直观的方式,就是使用 ip 命令查看主机的 IP 地址。比如:

Terminal window
ip -6 addr

也可以查看 /proc 中的文件内容:

Terminal window
cat /proc/sys/net/ipv6/conf/all/disable_ipv6

若输出结果为 0,表明 IPv6 已开启;若输出为1,则表示 IPv6 被禁用。

临时禁用 IPv6

以 root 身份执行如下命令即可:

Terminal window
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

永久禁用 IPv6

以 root 身份修改文件 /etc/sysctl.conf,添加如下内容:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

然后以 root 身份执行:

sysctl -p

此时使用 ip -6 addr 可知 IPv6 被禁用了。但是,如果重启系统,可能会发现,IPv6 又被启用了。为此,可创建或者修改 /etc/rc.local 文件,加入如下内容:

#!/bin/bash
/sbin/sysctl -p /etc/sysctl.conf
/etc/init.d/procps restart
exit 0

确保改文件有可执行权限:

Terminal window
chmod +x /etc/rc.local

此时重启系统后,那么在正常情况下已经无法获取 IPv6 地址,也就是说 IPv6 已经被禁用了。

参考资料