每台 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,请换成实际数值。
步骤 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
想用图形界面的话:打开“控制面板 > 网络和共享中心 > 更改适配器设置”,在网络适配器按右键选“属性 > Internet 协议版本 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 技术支持会协助您。