在轻量级服务器上配置 IPv6 的步骤取决于你使用的操作系统(如 Ubuntu、CentOS、Debian 等)以及你的网络环境。以下是一个通用的指南,适用于大多数 Linux 发行版,比如 Ubuntu 20.04/22.04 或 CentOS 7+/Rocky Linux。
✅ 前提条件
- 服务器支持 IPv6:确认你的服务器提供商支持 IPv6 地址分配(例如阿里云、腾讯云、AWS、DigitalOcean、Vultr 等)。
- 已获取 IPv6 地址段或单个地址:通常由服务商提供,或者可以通过 SLAAC/DHCPv6 自动获取。
- SSH 访问权限。
📌 一、检查当前 IPv6 支持情况
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
如果输出是 1,说明 IPv6 被禁用了,需要先启用:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0
如果你希望永久生效,可以编辑 /etc/sysctl.conf 或创建一个新文件:
echo "net.ipv6.conf.all.disable_ipv6 = 0" | sudo tee -a /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 0" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
📌 二、查看网卡信息
ip a
你会看到类似这样的输出:
inet6 fe80::xxxx:xxxx:xxxx:xxxx dev eth0 scope link
这表示网卡已经启用了 IPv6,但可能只是本地链路地址(link-local),不是公网地址。
📌 三、手动配置静态 IPv6 地址(推荐)
假设你的 IPv6 地址为:
- IPv6 地址:
2001:db8::1 - 子网前缀长度:
64 - 网关:
fe80::1 - DNS:
2001:4860:4860::8888,2001:4860:4860::8844
对于 Ubuntu (使用 Netplan)
编辑 Netplan 配置文件(路径可能不同,通常是 /etc/netplan/*.yaml):
sudo nano /etc/netplan/01-netcfg.yaml
添加如下内容:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 2001:db8::1/64
gateway6: fe80::1
nameservers:
addresses:
- 2001:4860:4860::8888
- 2001:4860:4860::8844
应用配置:
sudo netplan apply
对于 CentOS/Rocky Linux
编辑网卡配置文件,例如:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
添加以下内容:
IPV6INIT=yes
IPV6ADDR=2001:db8::1/64
IPV6_DEFAULTGW=fe80::1%eth0
DNS1=2001:4860:4860::8888
DNS2=2001:4860:4860::8844
重启网络服务:
sudo systemctl restart NetworkManager
# 或者使用传统方式:
sudo systemctl restart network
📌 四、自动配置 IPv6(SLAAC 或 DHCPv6)
如果你的网络支持 SLAAC(无状态地址自动配置),系统可能会自动生成 IPv6 地址。
你也可以使用 dhclient 获取 IPv6 地址(需支持 DHCPv6):
sudo dhclient -6 eth0
📌 五、验证 IPv6 连通性
ping6 2001:4860:4860::8888
curl -6 https://ipv6.google.com
📌 六、防火墙设置(UFW / firewalld)
如果使用 UFW:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
确保 UFW 支持 IPv6(默认是开启的):
grep IPV6 /etc/default/ufw
# 应该输出:IPV6=yes
📌 七、域名解析中添加 AAAA 记录
登录你的 DNS 控制台(如 Cloudflare、阿里云、GoDaddy),为你的域名添加一条 AAAA 记录,指向你的 IPv6 地址。
🧪 示例:测试 IPv6 Web 服务
如果你运行了 Nginx/Apache,在配置中监听 IPv6:
server {
listen [::]:80;
server_name example.com;
...
}
然后从外部通过 IPv6 浏览器访问你的网站。
📝 小贴士
- 如果你用的是云厂商,请先在控制台开通 IPv6。
- 使用
dig AAAA yourdomain.com检查 AAAA 记录是否生效。 - 可以使用 test-ipv6.com 来检测你的 IPv6 是否正常工作。
如果你告诉我你使用的具体发行版和服务器平台(如阿里云、Vultr、本地 VPS 等),我可以给出更精确的配置示例!
是否需要我帮你写一个完整的脚本?
云计算HECS