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

IPv4 位址耗盡,IPv6 部署已成必然。Linux 系統配置 IPv6 與 IPv4 邏輯相似,但位址格式、前綴長度、預設閘道表示法有所不同。本文以 Red Hat 系(CentOS/RHEL/Rocky/AlmaLinux)為例,示範靜態 IPv6 設定、服務重啟、連通性測試與遠端驗證完整流程。

環境假設

  • 介面:eth0
  • IPv6 位址:2400:A480:AAAA:200::159
  • 前綴長度:/64(隱含於位址,或顯式設定)
  • 預設閘道:2400:A480:AAAA:200::1
  • DNS:2400:3200::1、2400:3200:baba::1(依 ISP 提供)

方法一:修改網路腳本檔(傳統 network-scripts,RHEL 7/8 相容)

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

新增/修改以下參數:

IPV6INIT="yes"
IPV6ADDR="2400:A480:AAAA:200::159/64"
IPV6_DEFAULTGW="2400:A480:AAAA:200::1"
# 可選:DNS
# IPV6_DNS1="2400:3200::1"
# IPV6_DNS2="2400:3200:baba::1"

# 確保啟用 IPv6
NETWORKING_IPV6="yes"

方法二:NetworkManager (nmcli) 動態配置(RHEL 8/9、Fedora 推薦)

# 設定 IPv6 靜態位址
sudo nmcli con mod eth0 ipv6.method manual \
    ipv6.addresses "2400:A480:AAAA:200::159/64" \
    ipv6.gateway "2400:A480:AAAA:200::1" \
    ipv6.dns "2400:3200::1 2400:3200:baba::1"

# 套用
sudo nmcli con up eth0

查看結果:

nmcli -p device show eth0 | grep -i ipv6

方法三:systemd-networkd(Arch、Container、Cloud-init 常用)

# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0

[Network]
IPv6=yes
Address=2400:A480:AAAA:200::159/64
Gateway=2400:A480:AAAA:200::1
DNS=2400:3200::1
DNS=2400:3200:baba::1

# 重啟
sudo systemctl restart systemd-networkd

方法四:Netplan(Ubuntu 18.04+ 預設)

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp6: false
      addresses:
        - "2400:A480:AAAA:200::159/64"
      gateway6: "2400:A480:AAAA:200::1"
      nameservers:
        addresses:
          - "2400:3200::1"
          - "2400:3200:baba::1"

sudo netplan apply

重啟網路服務並驗證

sudo systemctl restart networksudo nmcli con up eth0 或 sudo systemctl restart NetworkManagersudo systemctl restart systemd-networkdsudo netplan apply
發行版/管理器重啟指令
network-scripts (RHEL 7)
NetworkManager
systemd-networkd
Netplan

驗證位址生效

ip -6 addr show dev eth0
# 應看到 2400:A480:AAAA:200::159/64 scope global

測試外網連通性

ping -c 4 ipv6.google.com
# 或
ping -c 4 ipv6.baidu.com
# 或
curl -6 https://ipv6.test-ipv6.com/

追蹤路由

traceroute6 ipv6.google.com
# 或
tracepath6 ipv6.google.com

遠端測試(從支援 IPv6 的客戶端)

  • SSH:ssh user@2400:A480:AAAA:200::159(需客戶端有 IPv6 連線)
  • 瀏覽器:https://[2400:A480:AAAA:200::159]/(方括號必須)
  • SecureCRT / PuTTY / MobaXterm:直接輸入 IPv6 位址連線。

常見問題排查

現象可能原因對策
ping6 不通、無路由缺少預設閘道、或閘道不在同一 /64確認 ip -6 route show 有 default via ... dev eth0
位址顯示 tentative / dadfailed重複位址偵測 (DAD) 失敗,位址衝突換一個 Interface ID(後 64 bits),重啟介面
ssh 連線逾時防火牆擋 ICMPv6 / TCP 22firewall-cmd --permanent --add-service=ssh、允許 ICMPv6
NetworkManager 覆蓋手動設定連線設定為 DHCPv6 或 SLAAC用 nmcli 設定 ipv6.method manual
IPv6 位址每次重開機改變啟用了隱私延伸 (Privacy Extensions / SLAAC)靜態設定優先,或關閉 ipv6.privacy

防火牆放行 IPv6 服務

# firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-icmp-block-inversion
sudo firewall-cmd --permanent --add-icmp-type=router-advertisement
sudo firewall-cmd --permanent --add-icmp-type=neighbor-solicitation
sudo firewall-cmd --permanent --add-icmp-type=neighbor-advertisement
sudo firewall-cmd --reload

# iptables/ip6tables (legacy)
sudo ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo ip6tables -A INPUT -p icmpv6 -j ACCEPT

啟用 IPv6 轉發(路由器/VPN 閘道場景)

# /etc/sysctl.d/99-ipv6-forward.conf
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.default.forwarding=1

sudo sysctl --system

完成上述步驟,您的 Linux 伺服器即具備完整 IPv6 連線能力。建議同步向 DNS 註冊 AAAA 記錄、設定 IPv6 防火牆規則、監控 IPv6 流量,迎接全面 IPv6 時代。

Copyright © Windows教程網 All Rights Reserved