全局禁用ipv6

方法一、通过内核参数彻底禁用 IPv6(系统级)

这是最彻底、兼容性最好的方式,适用于所有网络管理工具(包括 network、NetworkManager、systemd-networkd)。

步骤 1:编辑 GRUB 配置

bash 复制代码
sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX 行末尾添加:

bash 复制代码
ipv6.disable=1

步骤 2:更新 GRUB 配置

  • BIOS 系统:

    bash 复制代码
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  • UEFI 系统:

    bash 复制代码
    sudo grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

步骤 3:重启生效

bash 复制代码
sudo reboot

验证是否禁用成功:

bash 复制代码
# 检查内核参数
cat /proc/cmdline | grep ipv6.disable

# 检查 IPv6 模块是否加载(应无输出)
lsmod | grep ipv6

# 检查网络接口(不应有 inet6 地址)
ip a

方法二:仅在网络配置中禁用(不推荐,可能残留)

如果你不想重启 ,或只想在 network 服务层面禁用(但内核仍加载 IPv6),可修改网络脚本:

步骤 1:编辑全局网络配置

bash 复制代码
sudo vi /etc/sysconfig/network

添加以下两行:

bash 复制代码
NETWORKING_IPV6=no
IPV6_AUTOCONF=no

步骤 2:在每个网卡配置中禁用 IPv6

例如编辑 /etc/sysconfig/network-scripts/ifcfg-eth0(或你的网卡名):

bash 复制代码
# 确保包含以下行
IPV6INIT=no
IPV6_AUTOCONF=no

步骤 3:重启网络服务

bash 复制代码
sudo systemctl restart network

此方法的局限性:

  • 内核仍加载 IPv6 模块
  • 某些服务(如 sshd、docker)可能仍监听 IPv6
  • 不如方法一彻底

补充:禁用 IPv6 相关服务监听(可选)

即使禁用 IPv6,某些服务默认仍绑定 ::(IPv6)。建议检查:

1. SSHD

编辑 /etc/ssh/sshd_config

bash 复制代码
AddressFamily inet

然后重启:

bash 复制代码
sudo systemctl restart sshd

2. 其他服务(如 httpd, nginx)

确保配置中只监听 IPv4 地址,例如:

nginx 复制代码
listen 80;        # 而不是 listen [::]:80;

验证:IPv6 是否完全禁用

bash 复制代码
# 1. 检查内核参数
cat /proc/cmdline | grep -q "ipv6.disable=1" && echo "OK"

# 2. 检查模块
lsmod | grep ipv6  # 应无输出

# 3. 检查网络接口
ip -6 addr show    # 应只显示 lo 的 ::1(如果未完全禁用)或无输出

# 4. 检查监听端口
ss -tuln | grep :::  # 应无 IPv6 监听

💡 如果使用 方法一(内核禁用)ip -6 addr show完全无输出 (连 lo 都没有)。

相关推荐
木心月转码ing5 小时前
WSL+Cpp开发环境配置
linux
蝎子莱莱爱打怪1 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀1 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应1 天前
vi编辑器使用
linux·后端·操作系统
何中应1 天前
Linux进程无法被kill
linux·后端·操作系统
何中应1 天前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应1 天前
Linux常用命令
linux·操作系统
葛立国1 天前
从 / 和 /dev 说起:Linux 文件系统与挂载点一文理清
linux
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
哇哈哈20212 天前
信号量和信号
linux·c++