隨著 IPv4 地址枯竭,IPv6 部署已成必然趨勢。在 Linux 服務器上配置 IPv6 地址,既要掌握臨時命令行配置(測試驗證用),又要會修改網絡腳本實現重啟持久化。本文以 RHEL/CentOS 系列為例,兼顧 Debian/Ubuntu 差異,手把手教你完成 IPv6 靜態地址配置、默認網關設置、連通性測試與遠程驗證全流程。
eth02400:A480:AAAA:200::159/642400:A480:AAAA:200::12400:3200::1 (示例,請替換為實際可用 IPv6 DNS)# 啟用接口 IPv6
sudo sysctl -w net.ipv6.conf.eth0.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
# 添加地址
sudo ip -6 addr add 2400:A480:AAAA:200::159/64 dev eth0
# 添加默認路由
sudo ip -6 route add default via 2400:A480:AAAA:200::1 dev eth0
# 驗證
ip -6 addr show dev eth0
ip -6 route show
ping6 ipv6.google.com
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改/追加以下鍵值(保留原有 IPv4 配置):
IPV6INIT="yes"
IPV6ADDR="2400:A480:AAAA:200::159/64"
IPV6_DEFAULTGW="2400:A480:AAAA:200::1"
IPV6_AUTOCONF="no" # 禁用 SLAAC 自動配置,避免衝突
IPV6_FAILURE_FATAL="no" # IPv6 失敗不影響 IPv4
# 可選:指定 DNS
DNS1="2400:3200::1"
DNS2="2400:3200:baba::1"

# CentOS 7/8/9 (systemd)
sudo systemctl restart NetworkManager
# 或傳統 network 服務
sudo systemctl restart network
sudo vi /etc/netplan/01-netcfg.yaml
# 縮進必須為空格,勿用 Tab
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 2400:A480:AAAA:200::159/64
gateway6: 2400:A480:AAAA:200::1
nameservers:
addresses: [2400:3200::1, 2400:3200:baba::1]
dhcp6: false
accept-ra: false
sudo netplan apply
iface eth0 inet6 static
address 2400:A480:AAAA:200::159
netmask 64
gateway 2400:A480:AAAA:200::1
dns-nameservers 2400:3200::1 2400:3200:baba::1
autoconf 0
sudo systemctl restart networking
ping6 ipv6.baidu.com 或 ping6 2400:da00::6666 (清華 IPv6 鏡像)ip -6 route 應包含 default via 2400:A480:AAAA:200::1 dev eth0ip -6 addr show eth0 應顯示 2400:a480:aaaa:200::159/64 scope global
使用支援 IPv6 的 SSH 客戶端 (OpenSSH、PuTTY、SecureCRT、MobaXterm、Windows 10+ 內建 SSH) 直接連接 IPv6 地址:
ssh user@2400:A480:AAAA:200::159
# 或帶區域 ID (鏈路本地地址時需用)
ssh user@fe80::215:5dff:fe12:3456%eth0



| 現象 | 可能原因 | 解決 |
|---|---|---|
| ping6 不通,但 IPv4 正常 | 防火牆阻擋 IPv6 ICMP | ip6tables -A INPUT -p icmpv6 -j ACCEPT 或 firewall-cmd --permanent --add-protocol=ipv6-icmp |
| 地址顯示 tentative (DAD 失敗) | 地址衝突/重複 | 檢查網段內其他設備,更換 Interface ID |
| 重啟後配置丟失 | NetworkManager 覆蓋 / 管理權衝突 | nmcli con mod eth0 ipv6.method manual ipv6.addresses '2400:A480:AAAA:200::159/64' ipv6.gateway '2400:A480:AAAA:200::1'; nmcli con up eth0 |
| SSH 連不上 | sshd 未監聽 :::22 / 防火牆 / SELinux | ss -ntlp | grep :22 確認監聽 ::;放行 22 端口;setsebool -P sshd_use_tcp_wrapper 1 |
Linux 配置 IPv6 核心在於:接口啟用 IPv6 → 靜態地址/前綴長度 → 默認網關 → DNS → 防火牆放行 ICMPv6/SSH → 持久化寫入對應發行版配置文件。RHEL 系改 ifcfg-ethX,Debian 系用 Netplan 或 interfaces。配置完成後,務必用 ping6 測外網、用 IPv6 SSH 客戶端測遠程,雙向通暢才算大功告成。