IPv6 部署完整指南
随着 IPv4 地址资源的日益枯竭,IPv6 已成为网络基础设施升级的必然趋势。搬瓦工的 KVM 方案部分机房已原生支持 IPv6,通过正确配置可以让你的 VPS 同时通过 IPv4 和 IPv6 对外提供服务。本文将全面介绍 IPv6 在搬瓦工 VPS 上的部署方法,包括地址配置、双栈网络设置和各类应用的 IPv6 适配。
一、IPv6 基础知识
- 地址格式:128 位地址,以冒号分隔的 8 组十六进制数表示,如 2001:0db8:85a3::8a2e:0370:7334。
- 前缀长度:类似于 IPv4 的子网掩码,常见的如 /64、/48、/128。
- 链路本地地址:fe80:: 开头,仅在本地链路有效。
- 全球单播地址:2000:: 至 3fff:: 范围,用于公网通信。
- 环回地址:::1,等同于 IPv4 的 127.0.0.1。
二、检查 IPv6 支持
首先确认搬瓦工 VPS 是否已分配 IPv6 地址:
# 查看是否有 IPv6 地址
ip -6 addr show
# 测试 IPv6 连通性
ping6 -c 4 ipv6.google.com
# 检查内核是否支持 IPv6
cat /proc/net/if_inet6
如果没有看到全球单播地址(2xxx:: 开头),需要在搬瓦工 KiwiVM 控制面板中检查是否已启用 IPv6。
三、手动配置 IPv6 地址
3.1 Ubuntu/Debian(Netplan)
cat > /etc/netplan/01-ipv6.yaml <<EOF
network:
version: 2
ethernets:
eth0:
dhcp4: true
addresses:
- "你的IPv6地址/64"
routes:
- to: "::/0"
via: "IPv6网关地址"
EOF
netplan apply
3.2 CentOS(NetworkManager)
nmcli con mod eth0 ipv6.addresses "你的IPv6地址/64"
nmcli con mod eth0 ipv6.gateway "IPv6网关地址"
nmcli con mod eth0 ipv6.method manual
nmcli con up eth0
3.3 通用方式(ip 命令临时配置)
ip -6 addr add 你的IPv6地址/64 dev eth0
ip -6 route add default via IPv6网关地址 dev eth0
四、启用 IPv6 内核参数
cat >> /etc/sysctl.conf <<EOF
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.default.forwarding = 1
EOF
sysctl -p
五、DNS 配置
添加 IPv6 DNS 解析服务器:
cat >> /etc/resolv.conf <<EOF
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
EOF
六、Web 服务器 IPv6 适配
6.1 Nginx 配置
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
...
}
6.2 Apache 配置
Listen [::]:80
Listen [::]:443
七、SSH 通过 IPv6 连接
确保 SSH 服务监听 IPv6 地址,编辑 /etc/ssh/sshd_config:
ListenAddress ::
ListenAddress 0.0.0.0
systemctl restart sshd
从客户端通过 IPv6 连接:
ssh -6 user@你的IPv6地址
ssh user@你的IPv6地址
八、IPv6 防火墙配置
IPv6 使用 ip6tables(而非 iptables)管理防火墙规则:
# 允许 ICMPv6(IPv6 依赖 ICMPv6 正常工作)
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
# 允许已建立的连接
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许环回
ip6tables -A INPUT -i lo -j ACCEPT
# 允许 SSH
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许 HTTP/HTTPS
ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT
# 默认拒绝
ip6tables -A INPUT -j DROP
使用 UFW 管理时,UFW 默认会同时管理 IPv4 和 IPv6 规则,确认 /etc/default/ufw 中 IPV6=yes。
九、IPv6 隧道方案
如果 VPS 不原生支持 IPv6,可以通过隧道获取 IPv6 地址:
9.1 Hurricane Electric (HE) 隧道
在 tunnelbroker.net 注册并创建隧道后:
ip tunnel add he-ipv6 mode sit remote HE服务器IPv4 local 你的VPS_IPv4 ttl 255
ip link set he-ipv6 up
ip addr add 分配的客户端IPv6地址/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
十、验证与测试
# 测试 IPv6 连通性
ping6 -c 4 google.com
# 查看 IPv6 路由表
ip -6 route show
# 测试 IPv6 Web 访问
curl -6 https://ipv6.google.com
# 检查 DNS AAAA 记录
dig AAAA example.com
十一、常见问题
IPv6 地址无法 ping 通
确认 IPv6 网关和前缀长度配置正确,检查防火墙是否放行了 ICMPv6。
应用不监听 IPv6
很多应用默认只监听 IPv4,需要在配置中明确指定监听 IPv6 地址或使用 :: 表示监听所有地址。
总结
IPv6 部署是网络基础设施现代化的重要一步。在搬瓦工 VPS 上启用 IPv6 可以让你的服务同时对 IPv4 和 IPv6 用户提供访问,也有助于解决 IPv4 地址不足的问题。配合 iptables 防火墙教程 和 nftables 防火墙教程,可以为 IPv6 网络构建完善的安全策略。购买搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net。