Linux 配置双栈协议(IPv4 + IPv6)详解
在现代网络架构中,IPv4 地址 的枯竭已成为全球性问题,而 IPv6 的部署正在逐步加速。
为了兼顾兼容性与未来性,越来越多的服务器选择启用 双栈协议(Dual Stack),即同时支持 IPv4 和 IPv6。
一、什么是双栈协议?
双栈协议指的是在同一网络接口上同时启用 IPv4 和 IPv6。
这样一来,系统可以根据网络环境和 DNS 解析结果,自动选择最优协议进行通信。
在双栈环境下,如果 DNS 解析返回 AAAA(IPv6)与 A(IPv4)记录,系统会优先尝试 IPv6。
二、检查系统支持情况
在配置前,先确认系统是否启用了 IPv6 内核模块。
# 查看IPv6模块加载情况
lsmod | grep ipv6# 如果未加载,可执行以下命令
sudo modprobe ipv6
确认网络接口是否支持 IPv6:
ip -6 addr show
若输出中含有 inet6
地址,说明系统 IPv6 已启用。
三、配置网络接口
以 Ubuntu / Debian 系统为例,编辑 /etc/netplan/
下的配置文件。
network:version: 2ethernets:ens33:dhcp4: truedhcp6: trueaddresses:- 192.168.1.10/24- 2401:db00::10/64gateway4: 192.168.1.1gateway6: 2401:db00::1nameservers:addresses:- 8.8.8.8- 2001:4860:4860::8888
保存并应用配置:
sudo netplan apply
四、验证连接
验证 IPv4 与 IPv6 是否都能正常通信:
# IPv4 测试
ping -4 www.google.com# IPv6 测试
ping -6 www.google.com
若两者均能正常应答,即代表双栈配置成功。
五、防火墙与服务配置
同时启用 IPv4 与 IPv6 时,别忘了更新防火墙策略:
# IPv4规则
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT# IPv6规则
sudo ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
对于运行中的服务(如 Nginx、SSH),确保配置文件监听双协议端口:
# Nginx 示例
listen 80;
listen [::]:80;
六、验证 DNS 响应优先级
某些系统默认优先 IPv6,可以通过修改 /etc/gai.conf
文件调整策略:
# 启用 IPv4 优先
precedence ::ffff:0:0/96 100
修改后重新测试:
curl -v https://www.google.com
七、更多资料
- Linux 官方 IPv6 配置指南:https://www.kernel.org/doc/html/latest/networking/ipv6.html
- Ubuntu Netplan 官方文档:https://netplan.io/examples/
🔧 相关文章推荐
- Linux 网络性能优化指南
- Nginx 高并发配置实践