VPS IPv6 設定教學:Ubuntu Netplan、Debian、Rocky Linux 與 Windows Server

9 分鐘閱讀 4 次閱讀 0
本文目錄

每台 JUSTG 雲端伺服器除了 IPv4 之外,都免費提供 IPv6 位址。IPv6 讓您多一條獨立的管道連到 VPS,讓網站能被只支援 IPv6 的行動網路存取,在需要額外位址時也是免費的替代方案。本文說明如何在 Debian、Ubuntu(Netplan)、CentOS、Rocky Linux、AlmaLinux 以及 Windows Server 2016/2019/2022 上檢查並設定 IPv6,用 ping -6 與 curl -6 測試連線,透過 IPv6 SSH 登入,並以 IPv6 防火牆保護新位址。

步驟 1:取得 IPv6 位址與閘道

登入 JUSTG 客戶中心,在「我的產品與服務」開啟您的 VPS,伺服器詳細資料中會列出分配的 IPv6 位址、前綴長度與 IPv6 閘道。如果找不到,請提交工單,技術支援會提供給您。本文使用文件專用數值:位址 2001:db8::10/64、閘道 2001:db8::1、IPv4 203.0.113.50,請換成實際數值。

修改網路設定可能會中斷 SSH 或 RDP 連線。請先從客戶中心開啟 VNC 主控台備用,並在編輯前備份設定檔。

步驟 2:檢查 IPv6 是否已設定

部分系統映像會自動設定 IPv6。在 Linux 執行:

ip -6 addr show
ip -6 route show
ip link

如果看到 inet6 2001:db8::10/64 scope global,且有經由閘道的預設路由,表示 IPv6 已可使用,可直接跳到步驟 6。以 fe80:: 開頭的只是鏈路本地位址,並不足夠。請從 ip link 記下網路介面名稱(例如 eth0 或 ens3)。

步驟 3:Ubuntu 使用 Netplan 設定靜態 IPv6

Ubuntu 18.04 以後使用 Netplan。開啟 /etc/netplan/ 中的 YAML 檔(常見為 50-cloud-init.yaml 或 01-netcfg.yaml),在既有 IPv4 設定旁加入 IPv6 位址與路由,縮排必須使用空白:

network:
  version: 2
  ethernets:
    eth0:
      addresses:
        - 203.0.113.50/24
        - "2001:db8::10/64"
      routes:
        - to: default
          via: 203.0.113.1
        - to: "::/0"
          via: "2001:db8::1"
      nameservers:
        addresses: [1.1.1.1, 8.8.8.8]

驗證並套用。netplan try 若在 120 秒內未確認(例如連線中斷),會自動還原:

sudo netplan generate
sudo netplan try
sudo netplan apply

若檔案是由 cloud-init 產生,請避免重新開機後被覆蓋:

echo "network: {config: disabled}" | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

步驟 4:Debian(/etc/network/interfaces)與 CentOS/Rocky(nmcli)設定 IPv6

Debian(ifupdown):在 /etc/network/interfaces 中既有 IPv4 區塊下方,為介面加入 inet6 區塊:

iface eth0 inet6 static
    address 2001:db8::10/64
    gateway 2001:db8::1
sudo systemctl restart networking

CentOS Stream、Rocky Linux 與 AlmaLinux 使用 NetworkManager。先列出連線,再把綁定該介面的連線改成手動 IPv6(名稱可能是 System eth0、eth0 或 Wired connection 1):

nmcli connection show
sudo nmcli connection modify "System eth0" ipv6.method manual \
    ipv6.addresses 2001:db8::10/64 ipv6.gateway 2001:db8::1
sudo nmcli connection up "System eth0"

步驟 5:Windows Server 設定 IPv6

以 系統管理員身分開啟命令提示字元,找出介面名稱(通常是 Ethernet),加入位址與預設路由:

netsh interface ipv6 show interfaces
netsh interface ipv6 add address "Ethernet" 2001:db8::10/64
netsh interface ipv6 add route ::/0 "Ethernet" 2001:db8::1

想用圖形介面的話:開啟「控制台 > 網路和共用中心 > 變更介面卡設定」,在網路介面卡按右鍵選「內容 > 網際網路通訊協定第 6 版 (TCP/IPv6)」,選擇「使用下列 IPv6 位址」,輸入位址、子網路首碼長度 64 與預設閘道。

步驟 6:用 ping -6 與 curl -6 測試 IPv6 連線

# Linux
ping -6 -c 4 www.google.com
curl -6 https://ifconfig.co

# Windows (PowerShell)
ping -6 www.google.com

ping 有回應、curl 回傳您伺服器的 IPv6 位址,就代表對外 IPv6 正常。要測試從外部連入,請從另一台支援 IPv6 的電腦 ping 您 VPS 的 IPv6。

步驟 7:透過 IPv6 位址 SSH 連線

現在可以從有 IPv6 的電腦直接登入 IPv6 位址。OpenSSH 預設就會監聽 IPv6;若沒有,請確認 /etc/ssh/sshd_config 中的 AddressFamily 為 any 或 inet6。

ssh root@2001:db8::10
ssh -6 root@2001:db8::10

步驟 8:設定 IPv6 防火牆(ufw、firewalld、ip6tables)

常見錯誤是把 IPv4 鎖好了,IPv6 卻完全敞開。ufw 與 firewalld 一條規則就能同時處理兩種協定:

# Debian / Ubuntu: make sure /etc/default/ufw contains IPV6=yes
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose

# CentOS / Rocky / AlmaLinux (firewalld covers IPv4 and IPv6)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload

若您用 ip6tables 手動管理規則,務必允許 ICMPv6,否則鄰居探索(NDP)會失效,IPv6 將無法運作:

ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
ip6tables -P INPUT DROP

# Debian / Ubuntu: save the rules
apt install iptables-persistent
netfilter-persistent save

在 Windows Server 上,Windows Defender 防火牆的規則預設同時套用到 IPv4 與 IPv6,除非您限制了位址範圍。

常見問題

JUSTG 雲端伺服器的 IPv6 真的免費嗎?

是的。約翰尼斯堡、莫斯科、東京與首爾的所有 JUSTG 雲端伺服器都免費提供 IPv6。

套用設定後連線中斷了怎麼辦?

從客戶中心開啟 VNC 主控台,還原網路設定檔的備份,或修正縮排(Netplan)、連線名稱(nmcli)後再套用一次。

IPv6 可以取代額外的 IPv4 嗎?

對支援 IPv6 的訪客與服務而言可以。若 IPv4 因您自身的使用而被封鎖,仍可使用免費 IPv6 連線,或在客戶中心透過升級選項加購 IPv4。

如 VPS 的 IPv6 仍無法使用,請提交工單並附上 ip -6 addr 與 ip -6 route 的輸出,JUSTG 技術支援會協助您。

这篇文章有帮助吗?