抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

有些服务器虽然没有真正分配 IPv6 地址,但系统默认仍会启用 IPv6,可能导致部分程序优先解析或尝试连接 IPv6,出现访问变慢、连接超时等问题。若当前环境明确不需要 IPv6,可以通过 sysctl 配置将其关闭。

一、准备配置文件

/etc/sysctl.d/ 下新增一个配置文件,便于后续维护,也避免直接修改系统默认配置。

1
2
cd /etc/sysctl.d/
sudo touch disable-ipv6.conf

写入以下内容:

1
2
echo 'net.ipv6.conf.all.disable_ipv6=1' | sudo tee /etc/sysctl.d/disable-ipv6.conf
echo 'net.ipv6.conf.default.disable_ipv6=1' | sudo tee -a /etc/sysctl.d/disable-ipv6.conf

其中:

all 表示关闭当前所有网卡的 IPv6。

default 表示后续新创建的网卡默认也关闭 IPv6,例如部分容器、虚拟网卡等场景。

二、应用配置

执行以下命令让配置立即生效:

1
sudo sysctl -p /etc/sysctl.d/disable-ipv6.conf

正常会看到类似输出:

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

若提示 sysctl: command not found,说明系统缺少 procps,安装后再执行一次即可。

1
2
3
sudo apt install -y procps
# 再次执行
sudo sysctl -p /etc/sysctl.d/disable-ipv6.conf

若已安装,但还是提示没有命令,可能 sysctl 所在目录没有加入到PATH,可以直接执行完整路径

1
sudo /sbin/sysctl -p /etc/sysctl.d/disable-ipv6.conf

三、验证

1. 查看内核参数

1
2
sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.default.disable_ipv6

若值都为 1,说明 IPv6 已关闭。

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

2. 查看网卡地址

1
ip addr

关闭后,正常情况下网卡中不会再出现 inet6 地址,只保留 IPv4 地址,例如:

1
2
3
4
5
6
7
8
9
10
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 20:3a:9a:84:0a:16 brd ff:ff:ff:ff:ff:ff
altname enp0s2
altname enx203a9a840a16
inet 192.168.5.20/24 brd 192.168.5.255 scope global noprefixroute ens2
valid_lft forever preferred_lft forever

四、恢复 IPv6

若后续需要重新启用 IPv6,将配置值改回 0 并重新加载即可。

1
2
3
echo 'net.ipv6.conf.all.disable_ipv6=0' | sudo tee /etc/sysctl.d/disable-ipv6.conf
echo 'net.ipv6.conf.default.disable_ipv6=0' | sudo tee -a /etc/sysctl.d/disable-ipv6.conf
sudo sysctl -p /etc/sysctl.d/disable-ipv6.conf

如果仍未恢复,可以重启服务器后再查看。

1
sudo reboot

评论