本页目录
每台 DediJet 服务器都免费附带一个路由 /64 IPv6 子网,一键安装会自动为您配置好 IPv6。您可以按照本指南检查该配置、在自定义安装后重建配置,或启用子网中的更多地址。
路由 /64 的工作原理
一个 /64 包含 2^64 个地址,约 18 百亿亿个。“路由”是指上游路由器会把发往该子网的所有流量都发送到您的服务器,由您决定使用哪些地址以及在哪里使用。无需逐个申请地址:只需从该前缀中取一个地址添加到网络接口上,它就可以被访问。
您的前缀可在控制面板中查看:打开该服务器,然后选择“网络”。本指南以 2001:db8:1234:5678::/64 作为前缀,2001:db8:1234:5678::1 作为服务器的主地址,enp1s0 作为网络接口;ip -br link 可显示您的接口名称。IPv6 网关为链路本地地址 fe80::1。请核对控制面板中的值,如有不同,请以控制面板为准。
查看当前已有的配置:
ip -6 addr show dev enp1s0 scope global
ip -6 route show default如果显示了您的地址以及经由 fe80::1 的默认路由,说明 IPv6 已配置完成,您可以直接跳到下文的检查步骤。
配置地址和网关
请使用当前管理 IPv4 配置的同一工具:/etc/netplan/ 中有 YAML 文件表示使用 Netplan(Ubuntu 的标准工具,部分 Debian 镜像也在使用),存在 /etc/network/interfaces 表示使用 ifupdown(传统 Debian),而 AlmaLinux 和 Rocky Linux 使用 NetworkManager。
提示:通过 SSH 修改网络配置可能导致连接中断。请准备好 IPMI 控制台:它无需经过服务器网络即可访问服务器。
Ubuntu:Netplan
编辑 /etc/netplan/ 中的现有文件(文件名不固定),在 IPv4 设置旁添加 IPv6 地址和默认路由:
network:
version: 2
ethernets:
enp1s0:
addresses:
- 203.0.113.10/24
- 2001:db8:1234:5678::1/64
routes:
- to: default
via: 203.0.113.1
- to: default
via: fe80::1其中的 IPv4 行仅为示例:请原样保留您自己的地址、路由以及任何 nameservers 部分。然后使用带自动回滚保护的方式应用配置:
netplan trynetplan try 会应用更改,如果您没有在 120 秒内按 Enter 确认保留,更改就会自动回滚。如果配置错误导致 SSH 会话中断,请等待两分钟后重新连接。如果 Netplan 警告权限过于宽松,请运行 chmod 600 /etc/netplan/*.yaml。
Debian:ifupdown
在 /etc/network/interfaces 中,于 IPv4 配置段下方为同一网络接口添加一个 inet6 配置段:
iface enp1s0 inet6 static
address 2001:db8:1234:5678::1/64
gateway fe80::1不要通过 SSH 重启网络接口,而是实时应用相同的设置;下次启动时将由配置文件接管:
ip -6 addr add 2001:db8:1234:5678::1/64 dev enp1s0
ip -6 route add default via fe80::1 dev enp1s0AlmaLinux 和 Rocky Linux:NetworkManager
nmcli connection show
nmcli connection modify enp1s0 ipv6.method manual ipv6.addresses 2001:db8:1234:5678::1/64 ipv6.gateway fe80::1
nmcli connection up enp1s0将后两条命令中的 enp1s0 替换为第一条命令输出的连接名称,如果名称包含空格,请加上引号。重新激活连接时也会重新应用 IPv4 配置,因此 SSH 会话可能会短暂停顿。
无论使用哪种工具,都请在业务空闲时重启一次,确认配置在重启后依然有效。
检查 IPv6 是否正常工作
ping -6 -c 4 2606:4700:4700::1111
curl -6 -sI https://www.debian.org
ip -6 route get 2606:4700:4700::1111对公共 DNS 解析服务器的 ping 应能收到回复,curl 应能输出 HTTP 头。最后一条命令会在 src 之后显示服务器用于出站流量的源地址。然后从外部进行测试:在一台具备 IPv6 的机器上 ping 或通过 SSH 连接 2001:db8:1234:5678::1。
使用 /64 中的更多地址
根据需要添加地址,例如每个网站或服务各用一个。使用相同的 /64 前缀长度,并且不要添加第二个网关:
- Netplan:在
addresses下再添加一行,例如- 2001:db8:1234:5678::25/64。 - ifupdown:再添加一个
iface enp1s0 inet6 static配置段,其中只包含address 2001:db8:1234:5678::25/64。 - NetworkManager:先运行
nmcli connection modify enp1s0 +ipv6.addresses 2001:db8:1234:5678::25/64,然后运行nmcli connection up enp1s0。
如需在永久配置之前先试用某个地址,可使用 ip -6 addr add 2001:db8:1234:5678::25/64 dev enp1s0,它会立即生效,并在重启后消失。
位于网桥后面的虚拟机和容器需要由宿主机为其地址提供路由(参见安装 Proxmox VE)。为此启用转发后,Linux 会忽略路由器通告(RA),但由于此处配置的是静态网关,这并无影响。如果您需要独立的网络,例如为每个网桥或每个客户分配一个 /64,可免费申请一个 /56(包含 256 个 /64 子网):请提交工单。
保持地址稳定
服务器需要固定地址:DNS 记录、防火墙白名单和反向 DNS 都指向这些地址。专为笔记本电脑设计的隐私扩展会添加定期轮换的临时地址,而 SLAAC 会自动生成地址。上文的静态配置可以同时避免这两种情况。如果 ip -6 addr 列出了标记为 temporary 或 mngtmpaddr 的额外地址,请在 /etc/sysctl.d/60-ipv6.conf 中为该网络接口及新接口关闭隐私扩展:
net.ipv6.conf.enp1s0.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0使用 sysctl --system 加载该配置。如果使用 NetworkManager,请改为在连接上设置 ipv6.ip6-privacy 0。
为 IPv6 配置防火墙
与 IPv4 地址一样,您的 IPv6 地址也可以从互联网直接访问,监听 [::] 或 * 的服务会同时接受两种协议的连接。ss -tlnp 可显示各服务在哪些地址和端口上监听。请确保您的防火墙也覆盖 IPv6:
- ufw 会过滤 IPv6,前提是在
/etc/default/ufw中设置了IPV6=yes(默认即如此)。 - firewalld 的区域(zone)同时适用于 IPv4 和 IPv6。
- nftables 中
inet族的表可同时匹配两种协议。 - iptables 规则不会覆盖 IPv6:请添加对应的
ip6tables规则,或改用 nftables。
警告:不要一刀切地屏蔽 ICMPv6。邻居发现(类型
后续步骤
为您的服务添加 AAAA 记录,为每个发送邮件的地址设置反向 DNS;如果还需要更多 IPv4,请阅读添加额外 IPv4 地址。仍未解决?请通过技术支持提交工单,并附上 ip -6 addr 和 ip -6 route 的输出。