全局禁用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 都没有)。

相关推荐
Sator136 分钟前
Unity的FishNet相关知识
网络·unity·游戏引擎
周杰伦_Jay36 分钟前
【免费云平台部署指南】按场景选型+全维度对比(附直达地址)
网络·人工智能·架构·开源·云计算
小二·37 分钟前
Java基础教程之网络编程
java·开发语言·网络
梁辰兴37 分钟前
计算机网络基础:非引导型传输媒体
网络·计算机网络·计算机·传输媒体·计算机网络基础·非引导型
乾元37 分钟前
多厂商配置对齐器:AI 如何在 Cisco / Huawei / Juniper 间做语义映射
运维·开发语言·网络·人工智能·网络协议·华为·智能路由器
Jtti38 分钟前
高防ip和普通ip两者有何区别?
运维·网络协议·tcp/ip
herinspace38 分钟前
管家婆软件中如何运用商品副单位
运维·服务器·数据库·windows·电脑
程序辕日记39 分钟前
Linux环境docker离线安装教程
linux·docker
Channing Lewis41 分钟前
zoho crm中如何记录下已删除的子表recordid
运维·服务器·oracle