Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 系統完全禁用 IPv6 的臨時與永久方案

編輯:關於 Linux

雖然 IPv6 是未來趨勢,但在 IPv4/IPv6 雙棧共存環境下,應用程式(如 apt-get、ssh、DNS 解析)常因優先嘗試 IPv6 連線失敗而導致超時。若確認 IPv6 為故障根因,可依需求選擇臨時或永久禁用方案。本文適用於 Ubuntu、Debian、CentOS、RHEL、Fedora、Arch 等主流發行版。

第一步:確認 IPv6 是否已啟用

$ ifconfig
# 或
$ ip addr

輸出中若出現 inet6 開頭的位址(如 inet6 fe80::...),表示 IPv6 已啟用。

方案一:臨時禁用(重啟失效,適合測試)

透過 /proc 檔案系統動態調整核心參數:

  • 禁用單一介面(如 eth0):
    sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6'
    
  • 重新啟用該介面:
    sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/eth0/disable_ipv6'
    
  • 禁用全系統所有介面(含回環):
    sudo sh -c 'echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6'
    

方案二:永久禁用(重啟生效,生產環境建議)

方法 1:修改 /etc/sysctl.conf(推薦)

編輯檔案並加入:

# 禁用全系統 IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用特定介面(視需求添加)
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

套用設定:

sudo sysctl -p /etc/sysctl.conf
# 或直接重啟系統

方法 2:Grub 核心參數(徹底,不載入 IPv6 模組)

編輯 /etc/default/grub,在 GRUB_CMDLINE_LINUX 加入 ipv6.disable=1:

GRUB_CMDLINE_LINUX="... ipv6.disable=1"

更新 Grub 並重啟:

sudo update-grub   # Debian/Ubuntu
sudo grub2-mkconfig -o /boot/grub2/grub.cfg  # CentOS/RHEL
reboot

驗證與回滾

重啟後再次執行 ip addr 確認無 inet6 輸出。若後續需恢復 IPv6,僅需刪除對應設定並重啟或執行 sysctl -p 即可。

運維建議

  • 優先排查應用層 IPv6 相容性(如調整 /etc/gai.conf 優先 IPv4),而非盲目禁用;
  • 容器化環境(Docker/K8s)禁用宿主機 IPv6 可能影響容器網路,需謹慎評估;
  • 監控系統應加入 IPv6 狀態檢查,防止配置漂移。

靈活運用臨時與永久方案,能在故障排除與長期治理間取得平衡,確保業務連續性。

Copyright © Windows教程網 All Rights Reserved