Debian/Ubuntu的networking的`/etc/network/interfaces`设置文件,怎样禁用ipv6的route路由网关?

[复制链接]
发表于 2025-10-1 19:36:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Debian/Ubuntu的networking的/etc/network/interfaces设置文件,怎样禁用ipv6的route路由网关?

  1. # This file describes the network interfaces available on your system
  2. # and how to activate them. For more information, see interfaces(5).
  3. source /etc/network/interfaces.d/*
  4. # The loopback network interface
  5. auto lo
  6. iface lo inet loopback
  7. # The primary network interface
  8. #allow-hotplug ens18    # 允许热插拔
  9. auto ens18
  10. #allow-hotplug ens18
  11. iface ens18 inet dhcp
  12.         iface ens18 inet6 static
  13.                 address 1012::102:deba:1012:f5c1/16
  14.         iface ens18 inet6 static
  15.                 address 1012::102:deba:1012:adad:f5c1/16
  16.         iface ens18 inet6 static
  17.                 address 1012::1002:deba:1012:adad:f5c1/16
  18.                 # 写在 iface下 可以不指定设备
  19.                 post-up ip -6 route
  20. del default
  21. # 指名设备
  22. post-up ip -6 route
  23. del default dev ens19
复制代码
  1. # pre-up ip -6 route
  2. del default dev ethens123 #不能再ifup之前执行
  3. # up ip -6 route
  4. del default dev ethens123  # up 或 post-up 都可以
  5. post-up ip -6 route
  6. del default dev ethens123
  7. pre-down ip -6 route
  8. add default dev ethens123
  9. # down ip -6 route
  10. add default dev ethens123
  11. # post-down ip -6 route
  12. add default dev ethens123
复制代码
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100/24
  4.     gateway 192.168.1.1
  5. iface eth0 inet6 static
  6.     address 2001:db8::100/64
  7.     # 不设置 gateway6(避免生成默认路由)
  8.     # 添加以下命令手动删除默认 IPv6 路由(如果存在)
  9.     post-up ip -6 route
  10. del default || true
复制代码
上面的方法具有暂时性, dhcp大概更新ipv6的route
  1. iface ens18 inet6 auto
  2.         dhcp 1
  3.         # accept_ra 0 相当于 up sysctl -w net.ipv6.conf.eth0.accept_ra=0
  4.         accept_ra 0
  5. #👆上下👇等效 , dhcp会获取IPv6,但不会获取route路由网关网关
  6. iface ens18 inet6 dhcp
  7.         accept_ra 0
复制代码
  1. iface ens18 inet6 auto
  2.         dhcp 1
  3.         accept_ra 0
复制代码
👆上下👇等效 , dhcp会获取IPv6,但不会获取route路由网关网关
  1. iface ens18 inet6 dhcp
  2.         accept_ra 0
复制代码
禁用ipv6的dhcp
  1. iface ens18 inet6 auto
  2.         dhcp 0
  3.         # accept_ra 0 相当于 up sysctl -w net.ipv6.conf.eth0.accept_ra=0
  4.         accept_ra 0
复制代码


以下参考







在 Debian/Ubuntu 的 /etc/network/interfaces 中禁用 IPv6 的路由网关,可以通过以下两种方式实现:

     方法 1:禁用接口的 IPv6 自动设置
在接口设置中直接禁用 IPv6,克制体系自动天生路由:
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100/24
  4.     gateway 192.168.1.1
  5.     # 禁用 IPv6 自动配置
  6.     iface eth0 inet6 manual
复制代码

     方法 2:手动删除 IPv6 默认路由
如果仍需启用 IPv6 但不必要默认网关,可在接口启动时删除自动天生的路由:
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100/24
  4.     gateway 192.168.1.1
  5.     # 启用 IPv6(可选)
  6.     iface eth0 inet6 static
  7.         address 2001:db8::1/64
  8.     # 删除 IPv6 默认路由
  9.   
  10.     post-up ip -6 route
  11. del default dev eth0
  12.     pre-down ip -6 route
  13. del default dev eth0
  14.     down ip -6 route
  15. del default dev eth0
  16.     post-down ip -6 route
  17. del default dev eth0
  18.    
  19.    
复制代码

     验证设置

  • 查察 IPv6 路由表:
    1. ip -6 route
    2. show
    复制代码
    确保没有 default via fe80::... dev eth0 或类似条目。
  • 查抄接口状态:
    1. ip -6 addr show dev eth0
    复制代码
    确认 IPv6 地点是否按预期设置。

     注意事项


  • IPv6 禁用影响:确保不必要 IPv6 毗连的服务(如某些云服务、VPN 或内部网络工具)。
  • 长期化收效:修改后需重启网络服务:
    1. sudo systemctl restart networking
    2. # 或
    3. sudo ifdown eth0 && sudo ifup eth0
    复制代码
通过上述设置,可以精准控制 IPv6 路由举动,克制自动天生的默认网关干扰网络战略。







在 Debian/Ubuntu 体系中,若需通过 /etc/network/interfaces 设置文件禁用 IPv6 的路由网关(即克制体系利用 IPv6 的默认网关或静态路由),可以通过以下方法实现:

     方法 1:完全禁用 IPv6 的自动设置和网关
         步调 1:修改 /etc/network/interfaces 文件
在接口设置块中添加以下参数,禁用 IPv6 的自动设置(如 SLAAC)并克制默认网关的天生:
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100/24
  4.     gateway 192.168.1.1
  5. # 禁用 IPv6 的自动配置和路由
  6. iface eth0 inet6 manual
  7.     # 禁用 IPv6 的路由器通告(RA)和自动配置
  8.     pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra      # 关闭 RA 接受
  9.     pre-up echo 1 > /proc/sys/net/ipv6/conf/$IFACE/disable_ipv6  # 可选:完全禁用 IPv6
复制代码
         参数分析:


  • iface eth0 inet6 manual:声明对 IPv6 的设置为手动模式(不自动启用)。
  • accept_ra 0:克制担当 IPv6 的路由器告示(防止自动天生默认网关)。
  • disable_ipv6 1:完全禁用该接口的 IPv6 功能(可选,根据需求选择)。

     方法 2:仅禁用 IPv6 默认网关(保存 IPv6 地点)
若需保存 IPv6 地点但禁用其默认网关,需手动删除默认 IPv6 路由:
         步调 1:设置 IPv6 地点但不设置网关
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100/24
  4.     gateway 192.168.1.1
  5. iface eth0 inet6 static
  6.     address 2001:db8::100/64
  7.     # 不设置 gateway6(避免生成默认路由)
  8.     # 添加以下命令手动删除默认 IPv6 路由(如果存在)
  9.     post-up ip -6 route
  10. del default || true
复制代码
         关键操纵:


  • 不设置 gateway6:不在接口中界说 IPv6 的默认网关。
  • 手动删除默认路由:通过 post-up 在接口启用后删除默认 IPv6 路由(|| true 防止因路由不存在报错)。

     方法 3:通过内核参数全局禁用 IPv6 路由
若需彻底禁用体系的 IPv6 路由功能,可修改内核参数:
         步调 1:编辑 /etc/sysctl.conf
  1. # 禁用所有接口的 IPv6 路由功能
  2. net.ipv6.conf.all.forwarding = 0
  3. net.ipv6.conf.default.forwarding = 0
  4. net.ipv6.conf.all.accept_ra = 0
  5. net.ipv6.conf.default.accept_ra = 0
复制代码
         步调 2:应用设置
  1. sudo sysctl -p
  2.   # 立即生效
复制代码

     验证 IPv6 路由状态
应用设置后,查抄 IPv6 路由表是否已无默认网关:
  1. # 查察 IPv6 路由表ip -6 route
  2. show
  3. # 预期输出:不应包罗 `default via ...` 条目# 正确输出示例:2001:db8::/64 dev eth0 proto static metric 1024 pref medium
复制代码

     常见题目
         1. 重启后 IPv6 路由规复


  • 缘故因由:未在设置文件中彻底禁用 IPv6 的自动设置(如 NetworkManager 或 systemd-networkd 干扰)。
  • 办理:确保 accept_ra=0 和 disable_ipv6=1 在设置文件中收效,或完全卸载 IPv6 相干服务。
         2. 部门服务依赖 IPv6


  • 注意:禁用 IPv6 大概导致某些服务(如 Docker、Kubernetes)非常,需根据现实需求选择。

     总结
场景设置方法完全禁用 IPv6利用 disable_ipv6=1 + 内核参数 net.ipv6.conf.all.disable_ipv6=1禁用 IPv6 默认网关不设置 gateway6,并添加 post-up ip -6 route
del default禁用 IPv6 路由告示设置 accept_ra=0 和 net.ipv6.conf.all.forwarding=0通过以上方法,可机动控制 IPv6 的路由举动,满足差别场景的网络需求。







在 Debian/Ubuntu 体系中,若渴望通过 /etc/network/interfaces 设置文件禁用 IPv6 的路由和网关,可以通过以下步调实现。以下是详细方法和示例:

     方法 1:通过 inet6 设置禁用 IPv6
在接口设置中明确禁用 IPv6 的自动设置,并克制其路由天生。
         步调:

  • 编辑 /etc/network/interfaces:
    1. sudo nano /etc/network/interfaces
    复制代码
  • 为每个接口添加 IPv6 禁用设置:
    1. # 示例:禁用 enp0s3 接口的 IPv6
    2. auto enp0s3
    3. iface enp0s3 inet static
    4.     address 192.168.1.100
    5.     netmask 255.255.255.0
    6.     gateway 192.168.1.1
    7.     # 禁用 IPv6
    8.     iface enp0s3 inet6 manual
    9.     up ip -6 addr flush dev $IFACE
    10.     down ip -6 addr flush dev $IFACE
    复制代码

    • inet6 manual:告诉体系不自动设置 IPv6。
    • up/down 下令:在接口启动或关闭时打扫 IPv6 地点和路由。

  • 重启网络服务:
    1. sudo systemctl restart networking
    2.    # Debian/Ubuntu 18+(需安装 ifupdown)
    3. sudo /etc/init.d/networking restart # 旧版 Ubuntu
    复制代码

     方法 2:直接禁用 IPv6 的路由
如果仅需禁用 IPv6 的路由(如默认网关或自界说路由),可以通过 post-up 和 pre-down 下令删除 IPv6 路由。
         步调:

  • 编辑 /etc/network/interfaces:
    1. sudo nano /etc/network/interfaces
    复制代码
  • 添加 IPv6 路由删除下令:
    1. # 示例:禁用 enp0s3 的 IPv6 路由
    2. auto enp0s3
    3. iface enp0s3 inet static
    4.     address 192.168.1.100
    5.     netmask 255.255.255.0
    6.     gateway 192.168.1.1
    7.     # 删除 IPv6 默认路由
    8.     post-up ip -6 route
    9. del default
    10.     pre-down ip -6 route
    11. add default
    复制代码

    • post-up ip -6 route
      del default:在接口启动时删除 IPv6 默认路由。
    • pre-down ip -6 route
      add default:在接口关闭前规复默认路由(可选,克制辩说)。


     方法 3:彻底禁用 IPv6(保举)
如果必要完全禁用 IPv6(包罗路由、地点和协议),发起团结 sysctl 和 GRUB 设置,同时在 /etc/network/interfaces 中克制 IPv6 的接口设置。
         步调:

  • 在 /etc/network/interfaces 中禁用 IPv6 接口:
    1. # 示例:禁用 enp0s3 的 IPv6
    2. auto enp0s3
    3. iface enp0s3 inet static
    4.     address 192.168.1.100
    5.     netmask 255.255.255.0
    6.     gateway 192.168.1.1
    7.     # 禁用 IPv6
    8.     iface enp0s3 inet6 ignore
    复制代码
  • 通过 sysctl 禁用 IPv6 协议:
    1. # 编辑 sysctl 配置文件
    2. sudo nano /etc/sysctl.conf
    复制代码
    在末了添加以下内容:
    1. net.ipv6.conf.all.disable_ipv6 = 1
    2. net.ipv6.conf.default.disable_ipv6 = 1
    3. net.ipv6.conf.lo.disable_ipv6 = 1
    复制代码
    实行收效:
    1. sudo sysctl -p
    复制代码
  • 通过 GRUB 禁用内核启动参数(可选但更彻底):
    1. # 编辑 GRUB 配置
    2. sudo nano /etc/default/grub
    复制代码
    修改以下两行:
    1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
    2. GRUB_CMDLINE_LINUX="ipv6.disable=1"
    复制代码
    更新 GRUB 并重启:
    1. sudo update-grub
    2. sudo reboot
    复制代码

     验证设置

  • 查抄 IPv6 地点和路由:
    1. ip -6 addr show    # 查察 IPv6 地点ip -6 route
    2. show
    3.    # 查察 IPv6 路由
    复制代码
    如果设置正确,应看不到 IPv6 相干信息。
  • 查抄接口设置:
    1. cat /etc/network/interfaces | grep -i ipv6
    复制代码

     注意事项

  • 接口定名:确保利用正确的接口名称(如 enp0s3 而非 eth0),可通过 ip link 查察。
  • 兼容性:如果体系同时利用 Netplan(Ubuntu 18+默认),需确保设置不辩说,或完全禁用 Netplan。
  • 服务重启:修改设置后需重启网络服务或体系以收效。
  • 回退方法:若禁用后网络非常,可删除相干设置并重启规复。

     完备示例设置
  1. # /etc/network/interfaces 配置示例
  2. auto lo
  3. iface lo inet loopback
  4. auto enp0s3
  5. iface enp0s3 inet static
  6.     address 192.168.1.100
  7.     netmask 255.255.255.0
  8.     gateway 192.168.1.1
  9.     dns-nameservers 8.8.8.8
  10.     # 禁用 IPv6
  11.     iface enp0s3 inet6 ignore
  12.     post-up ip -6 route
  13. del default
  14.     pre-down ip -6 route
  15. add default
复制代码
通过以上方法,可以有用禁用 IPv6 的路由和网关设置。如果必要完全禁用 IPv6,发起团结 sysctl 和 GRUB 的设置以确保彻底禁用。







在 Debian/Ubuntu 体系里,要在 /etc/network/interfaces 设置文件中禁用 IPv6 的路由网关,可以接纳以下两种方法。
     方法一:从接口设置中移除 IPv6 网关设置
若 /etc/network/interfaces 文件中存在 IPv6 网关的设置,可将其直接删除。假设设置文件里有如下 IPv6 相干设置:
  1. iface eth0 inet6 static
  2.     address 2001:db8::100
  3.     netmask 64
  4.     gateway fe80::1
复制代码
你要把 gateway 这一行删掉,让设置变为:
  1. iface eth0 inet6 static
  2.     address 2001:db8::100
  3.     netmask 64
复制代码
     方法二:利用 up 和 down 下令删除 IPv6 路由
借助 up 和 down 下令在接口启动和关闭时删除 IPv6 路由。示比方下:
  1. auto eth0iface eth0 inet6 static
  2.     address 2001:db8::100
  3.     netmask 64
  4.     up ip -6 route
  5. del default via fe80::1 dev eth0 || true    down ip -6 route
  6. add default via fe80::1 dev eth0 || true
复制代码


  • up ip -6 route
    del default via fe80::1 dev eth0 || true:在接口启动时,实行删除默认的 IPv6 路由。|| true 用于包管纵然删除失败,接口也能正常启动。
  • down ip -6 route
    add default via fe80::1 dev eth0 || true:在接口关闭时,实行规复默认的 IPv6 路由。
     方法三:彻底禁用 IPv6
要是你想完全禁用 IPv6,可在 /etc/sysctl.conf 文件中添加如下设置:
  1. net.ipv6.conf.all.disable_ipv6 = 1
  2. net.ipv6.conf.default.disable_ipv6 = 1
  3. net.ipv6.conf.eth0.disable_ipv6 = 1  # 这里的 eth0 需替换成实际的接口名
复制代码
然后运行以下下令使设置收效:
  1. sudo sysctl -p
复制代码
     注意事项


  • 设置收效:修改完 /etc/network/interfaces 文件之后,必要重启网络服务才气让设置收效。你可以利用下面的下令:
  1. sudo systemctl restart networking
复制代码


  • 设置文件备份:在修改设置文件之前,发起先备份原文件,以防设置堕落伍无法规复。
  1. sudo cp /etc/network/interfaces /etc/network/interfaces.bak
复制代码







在Debian/Ubuntu体系中,可以通过以下几种方法禁用IPv6的路由网关:
     方法一:修改网络接口设置文件

  • 编辑/etc/network/interfaces文件:
    找到对应网络接口的设置块,在iface行后添加noipv6选项。
    1. iface eth0 inet static
    2.     address 192.168.1.100
    3.     netmask 255.255.255.0
    4.     gateway 192.168.1.1
    5.     noipv6
    复制代码
  • 重启网络服务:
    1. sudo systemctl restart networking
    复制代码
     方法二:修改内核参数

  • 编辑/etc/sysctl.conf文件:
    添加以下内容以禁用IPv6:
    1. net.ipv6.conf.all.disable_ipv6 = 1
    2. net.ipv6.conf.default.disable_ipv6 = 1
    3. net.ipv6.conf.lo.disable_ipv6 = 1
    复制代码
  • 应用修改:
    1. sudo sysctl -p
    复制代码
     方法三:修改GRUB设置

  • 编辑/etc/default/grub文件:
    在GRUB_CMDLINE_LINUX_DEFAULT行添加ipv6.disable=1参数。
    1. GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"
    复制代码
  • 更新GRUB设置:
    1. sudo update-grub
    复制代码
  • 重启体系:
    1. sudo reboot
    复制代码
     方法四:利用NetworkManager

  • 编辑网络毗连设置:
    利用nmcli下令或编辑/etc/NetworkManager/system-connections/目次下的毗连文件,将ipv6.method设置为ignore。
    1. nmcli con mod "连接名称" ipv6.method ignore
    复制代码
  • 重启NetworkManager服务:
    1. sudo systemctl restart NetworkManager
    复制代码
     验证IPv6是否被禁用
可以利用以下下令来验证IPv6是否被乐成禁用:
  1. ip -6 route
复制代码
如果输出为空,则表现IPv6路由已被禁用。







在Debian/Ubuntu体系中,通过/etc/network/interfaces禁用IPv6路由网关的步调如下:

     步调1:编辑设置文件
  1. sudo nano /etc/network/interfaces
复制代码

     步调2:修改接口设置
找到必要禁用IPv6路由的网卡设置块(如eth0或ens33),添加以下参数:
  1. # 示例:禁用IPv6默认路由auto eth0iface eth0 inet6 static    address 2001:db8::1/64    # 关键参数:克制添加默认路由    up ip -6 route
  2. del default || true    # 可选:显式设置无网关    gateway fe80::1  # 留空或表明此行以完全禁用网关    metric 0         # 低沉IPv6路由优先级(可选)
复制代码

         参数表明

  • up ip -6 route
    del default || true

    • 在接口启动时删除IPv6默认路由,|| true防止删除失败导致服务重启错误。

  • 不指定IPv6网关

    • 若不必要IPv6地点,直接移除inet6设置块。

  • metric参数(可选)

    • 设置IPv6路由优先级低于IPv4(如metric 1024),但需内核支持。


     步调3:重启网络服务
  1. sudo systemctl restart networking
  2.   # Debian/Ubuntu传统方式# 或sudo ifdown eth0 && sudo ifup eth0
复制代码

     验证是否收效
  1. ip -6 route
  2. show
  3. # 输出中不应包罗"default"条目
复制代码

     扩展方法:完全禁用IPv6(慎用)
若需彻底关闭IPv6,编辑/etc/sysctl.conf并添加:
  1. net.ipv6.conf.all.disable_ipv6 = 1
  2. net.ipv6.conf.default.disable_ipv6 = 1
复制代码
实行sudo sysctl -p

收效。

     注意事项

  • 备份原设置
    1. sudo cp /etc/network/interfaces /etc/network/interfaces.bak
    复制代码
  • 依赖网络管理器
    若利用NetworkManager,需确保/etc/network/interfaces中未管理相干接口。
  • IPv6 DHCP题目
    若接口通过DHCP获取IPv6地点,需移除iface eth0 inet6 dhcp设置。

通过上述步调,可有用禁用IPv6的默认路由网关。发起根据现实网络环境选择设置方式。







在 Debian/Ubuntu 体系中,通过 /etc/network/interfaces 禁用 IPv6 的路由网关需团结接口设置与内核参数调解。以下是详细操纵步调:

     一、在接口设置中禁用 IPv6 路由
         1. 关闭接口的 IPv6 初始化
编辑 /etc/network/interfaces,在对应接口设置段中禁用 IPv6 自动初始化:
  1. iface eth0 inet static
  2.     # IPv4 配置(如 address、netmask、gateway)
  3.     ...
  4.     # 禁用 IPv6 初始化
  5.     ipv6init no
复制代码
此设置通过 ipv6init no 克制接口在启动时加载 IPv6 协议栈。
         2. 移除 IPv6 默认路由
若已有 IPv6 路由,需手动删除。可通过 post-up 钩子实行下令:
  1. iface eth0 inet static    ...    # 启动时删除 IPv6 默认路由    post-up ip -6 route
  2. del default || true
复制代码

     二、通过内核参数全局禁用 IPv6 路由
         1. 暂时禁用 IPv6 路由
实行以下下令立即收效(重启失效):
  1. sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
  2. sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
复制代码
这会关闭全部接口的 IPv6 功能,包罗路由。
         2. 永世禁用 IPv6 路由
编辑 /etc/sysctl.conf,添加以下内容:
  1. net.ipv6.conf.all.disable_ipv6=1
  2. net.ipv6.conf.default.disable_ipv6=1
  3. net.ipv6.conf.eth0.disable_ipv6=1  # 指定禁用某接口的 IPv6
复制代码
实行 sudo sysctl -p

加载设置。

     三、可选:通过 GRUB 彻底禁用 IPv6
编辑 /etc/default/grub,在内核参数中添加 ipv6.disable=1:
  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
复制代码
更新 GRUB 并重启体系:
  1. sudo update-grub
  2. sudo reboot
复制代码
此方法全局禁用 IPv6 协议栈,包罗路由功能。

     四、验证与规复

  • 查抄 IPv6 路由状态:
    1. ip -6 route
    2. show
    3.   # 若无输出,则 IPv6 路由已禁用
    复制代码
  • 规复 IPv6 路由:
    • 删除 /etc/sysctl.conf 中的禁用参数并重启。
    • 移除 GRUB 参数中的 ipv6.disable=1 并更新设置。

     注意事项
• 兼容性:Ubuntu 17.10 及以上版本默认利用 Netplan,需确保 ifupdown 包已安装以兼容传统设置。
• 服务影响:禁用 IPv6 大概导致依赖 IPv6 的服务非常(如某些云服务),操纵前需评估需求。
• 接口名称:上述示例中的 eth0 需更换为现实接口名(如 ens33)。
通过上述步调,可有用禁用 IPv6 路由网关,同时保存 IPv4 网络功能。







以下是在 Debian/Ubuntu 体系中,通过编辑 /etc/network/interfaces 设置文件来禁用 IPv6 路由网关的渐渐分析:

     1. 禁用 IPv6 协议
在某些环境下,完全禁用 IPv6 协议是最直接的方法。可以通过以下步调实现:
         1.1 编辑 /etc/network/interfaces 文件
打开设置文件:
  1. sudo nano /etc/network/interfaces
复制代码
         1.2 在接口设置中添加 ipv6-disable
在目标接口的设置段中,添加 ipv6-disable 选项:
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100
  4.     netmask 255.255.255.0
  5.     ipv6-disable
复制代码


  • ipv6-disable:禁用该接口上的 IPv6 协议。
         1.3 生存并退出
生存修改并退出编辑器,如利用 nano,按下 Ctrl + O 生存,Ctrl + X 退出。
         1.4 应用设置重启网络服务或重启体系以应用更改:
  1. sudo systemctl restart networking
复制代码
或
  1. sudo reboot
复制代码

     2. 禁用 IPv6 路由功能
如果必要保持 IPv6 协议启用,但仅禁用路由功能,可以通过以下方法实现:
         2.1 利用 sysctl 禁用 IPv6 转发IPv6 转发是路由的核心功能,禁用转发将克制 IPv6 数据包的路由。
               2.1.1 编辑 /etc/sysctl.conf
  1. sudo nano /etc/sysctl.conf
复制代码
               2.1.2 添加或修改以下内容
  1. net.ipv6.conf.all.forwarding = 0
  2. net.ipv6.conf.default.forwarding = 0
复制代码


  • net.ipv6.conf.all.forwarding = 0:禁用全部接口的 IPv6 转发。
  • net.ipv6.conf.default.forwarding = 0:禁用默认接口的 IPv6 转发。
               2.1.3 应用 sysctl 设置
  1. sudo sysctl -p
复制代码
         2.2 在接口设置中禁用 IPv6 转发
如果只必要禁用特定接口的 IPv6 转发,可以在接口设置中添加 post-up 脚本。
               2.2.1 编辑 /etc/network/interfaces
  1. sudo nano /etc/network/interfaces
复制代码
               2.2.2 添加 post-up 脚本
  1. auto eth0
  2. iface eth0 inet6 static
  3.     address 2001:db8::1
  4.     netmask 64
  5.     post-up echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding
复制代码


  • post-up:在接口启动后实行下令。
  • echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding:禁用 eth0 接口的 IPv6 转发。
               2.2.3 生存并应用设置
生存修改,重启网络服务或重启体系。

     3. 禁用 IPv6 的默认路由网关
如果必要禁用通过特定接口的 IPv6 默认路由网关,可以在接口设置中调解 gateway 设置。
         3.1 编辑 /etc/network/interfaces 文件:
  1. sudo nano /etc/network/interfaces
复制代码
         3.2 设置仅利用 IPv4 网关
在接口设置中,仅设置 IPv4 网关,而不设置 IPv6 网关。
  1. auto eth0
  2. iface eth0 inet static
  3.     address 192.168.1.100
  4.     netmask 255.255.255.0
  5.     gateway 192.168.1.1
复制代码
         3.3 禁用 IPv6 的默认路由
如果在接口中设置了 IPv6 地点,可以克制设置默认的 IPv6 网关。
  1. auto eth0
  2. iface eth0 inet6 static
  3.     address 2001:db8::1
  4.     netmask 64
  5. #Avoid setting gateway for IPv6
复制代码

     4. 验证设置
设置完成后,必要验证 IPv6 路由是否已禁用。
         4.1 查察网络接口状态
  1. ip -6 addr show eth0
复制代码


  • 查抄是否有 IPv6 地点,如果 ipv6-disable 已正确设置,IP 地点大概为空或不存在。
         4.2 查察路由表
  1. ip -6 route
  2. show
复制代码


  • 查抄是否存在默认路由(default via ...),如果禁用乐成,将不会表现 IPv6 的默认路由。
         4.3 测试 IPv6 毗连
实行 ping6 一个外部的 IPv6 地点,查察是否可以大概乐成通达:
  1. ping6 ipv6.google.com
复制代码


  • 如果禁用乐成,大概会出现无法毗连的环境。

     5. 规复默认设置
如果必要规复 IPv6 的路由功能,可以按以下步调操纵:
         5.1 移除 ipv6-disable 选项
编辑 /etc/network/interfaces,删除或表明掉 ipv6-disable 行。
         5.2 规复 sysctl 设置
  1. sudo nano /etc/sysctl.conf
复制代码


  • 删除或表明掉 net.ipv6.conf.all.forwarding = 0 和 net.ipv6.conf.default.forwarding = 0。
  • 应用设置:
    1. sudo sysctl -p
    复制代码
         5.3 重启网络服务或体系
  1. sudo systemctl restart networking
复制代码
或
  1. sudo reboot
复制代码

     6. 注意事项


  • 禁用 IPv6 大概会影响某些依赖于 IPv6 的应用步调或服务,需审慎操纵。
  • 在生产环境中修改网络设置前,发起在测试环境中验证设置,确保不会导致服务停止。
  • 确保在禁用 IPv6 后,体系的其他网络设置仍旧可以大概满足业务需求。

     总结
通过在 /etc/network/interfaces 文件中添加 ipv6-disable 选项,或利用 sysctl 禁用 IPv6 转发,可以有用地禁用 IPv6 的路由网关。设置完成后,通过验证 IPv6 地点、路由表和网络毗连,确保设置收效。根据详细需求选择符合的禁用方法,确保体系的稳固性和安全性。







在 Debian/Ubuntu 体系中,若需在 /etc/network/interfaces 中禁用 IPv6 的路由(默认网关或自动天生的路由),可通过以下步调实现:

     方法 1:完全禁用 IPv6 协议栈(全局收效)
直接关闭 IPv6 功能(影响全部接口):
  1. # 编辑 /etc/sysctl.conf,添加以下内容:net.ipv6.conf.all.disable_ipv6 = 1
  2. net.ipv6.conf.default.disable_ipv6 = 1
  3. # 立即收效sudo sysctl -p
复制代码
此方法会彻底禁用 IPv6,全部接口不再相应 IPv6 哀求。

     方法 2:仅禁用 IPv6 路由(保存 IPv6 地点)
若需保存 IPv6 地点但禁用路由功能,可针对特定接口操纵:
         步调 1:禁用 IPv6 的路由广播和自动设置
在接口设置中添加以下参数:
  1. auto eth0iface eth0 inet static    address 192.168.1.10/24    gateway 192.168.1.1# 禁用 IPv6 的自动设置和路由广播iface eth0 inet6 manual    pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/accept_ra     # 克制吸取路由广播    pre-up echo 0 > /proc/sys/net/ipv6/conf/$IFACE/autoconf      # 克制自动设置地点    post-up ip -6 route
  2. del default dev $IFACE 2>/dev/null || true  # 删除默认路由
复制代码
         步调 2:验证 IPv6 路由
  1. ip -6 route
  2. show
复制代码
若输出中无 default via ... dev eth0,则默认路由已删除。

     方法 3:克制 IPv6 默认网关天生
若接口通过 DHCPv6 获取了默认网关,可逼迫忽略该网关:
  1. auto eth0iface eth0 inet6 manual    # 显式指定无默认网关    up ip link set dev $IFACE up    up ip -6 addr add <IPv6地点>/<前缀> dev $IFACE    up echo "IPv6 地点已设置,但未设置路由"    post-up ip -6 route
  2. del default dev $IFACE 2>/dev/null || true
复制代码

     方法 4:仅禁用 IPv6 路由转发
若需保存当地 IPv6 地点但克制路由转发(实用于路由器场景):
  1. # 编辑 /etc/sysctl.conf,添加:
  2. net.ipv6.conf.all.forwarding = 0
  3. # 立即生效
  4. sudo sysctl -p
复制代码

     验证设置

  • 查抄 IPv6 路由表:
    1. ip -6 route
    2. show
    复制代码
  • 测试 IPv6 连通性:
    1. ping6 ipv6.google.com
    复制代码
    若返回 Network is unreachable,分析 IPv6 路由已禁用。

     注意事项

  • 接口名称:更换 eth0 为现实接口名(如 ens33)。
  • 暂时收效:直接利用 ip -6 route
    del default 可暂时删除默认路由,但重启后失效。
  • 兼容性:Ubuntu 17.10+ 默认利用 Netplan,需通过 YAML 文件设置(参考 Netplan 禁用 IPv6)。

通过以上方法,可机动控制 IPv6 路由举动,既能保存当地 IPv6 地点,又能克制不须要的路由干扰。










回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表