1. 为什么我们需要IPv6?
最近几年,越来越多的朋友发现家里的宽带已经拿不到IPv4公网地址了。我自己用的移动宽带就是这样,光猫改桥接后用软路由拨号,拿到的永远是个100开头的内网IP。打电话给运营商,客服很客气地告诉我:"现在IPv4地址已经分完了,家庭宽带没法给公网IP。"这让我很头疼,因为我需要远程访问家里的NAS和监控摄像头。
IPv6的出现完美解决了这个问题。它就像是给互联网世界重新划分了一块超级大的新大陆,地址数量多到难以想象(具体是2的128次方个)。每个设备都能分到一个全球唯一的公网地址,再也不用担心端口映射的问题。我实测下来,IPv6的访问速度和稳定性完全不输IPv4,有些场景下甚至更快。
2. OpenWrt软路由的IPv6基础配置
2.1 准备工作
我用的是esir大神编译的OpenWrt高大全固件(版本R21.8.6 GDQ v9.1),这个固件对IPv6支持很完善。首先确保你的光猫已经改成桥接模式,软路由通过PPPoE拨号。这里有个小技巧:建议先用电脑直连光猫拨号,测试能否获取到IPv6地址,确认运营商已经分配了IPv6前缀。
2.2 WAN口配置
进入OpenWrt后台,找到"网络-接口",编辑WAN6接口:
- 基本设置:协议选"DHCPv6客户端",请求IPv6地址和前缀都选"自动"
- 高级设置:勾选"使用内置的IPv6管理","强制链路"建议不勾选
- 物理设置:和WAN口保持一样,都是eth0(具体看你的网卡)
- 防火墙设置:分配到WAN区域
保存后稍等1分钟,在"状态-概览"里应该就能看到获取到的IPv6地址了。如果没出现,可以尝试重启接口或者重新拨号。
3. LAN口和DHCPv6配置
3.1 LAN口设置
现在我们要让内网设备也能获取IPv6地址:
- 进入LAN口配置页面
- 基本设置:IPv6分配长度建议填64(和运营商给的前缀一致)
- 高级设置:勾选"总是广播默认路由"
- DHCP服务器:IPv6设置里,"路由通告服务"选"服务器模式","DHCPv6服务"选"服务器模式","NDP代理"选禁用
这里有个容易踩坑的地方:不同运营商的前缀长度可能不一样。移动一般是/60,电信可能是/56。如果设置不对,客户端可能拿不到公网IPv6地址。可以通过ssh登录路由器,用ip -6 addr show命令查看实际获取的前缀。
3.2 DHCP/DNS设置
为了让内网设备能正常解析IPv6网站:
- 进入"网络-DHCP和DNS"
- 取消勾选"禁止解析IPv6 DNS记录"
- 在"高级设置"里,建议把DNS服务器改成
240c::6666和240c::6644(国内比较快的IPv6 DNS)
配置完成后,用手机或电脑连接WiFi,在cmd里输入ipconfig /all(Windows)或ifconfig(Mac/Linux),应该能看到以2409开头的公网IPv6地址。
4. 防火墙和端口开放
IPv6和IPv4最大的不同就是:每个设备都有公网地址,所以防火墙配置特别重要。我建议这样设置:
- 进入"网络-防火墙-通信规则"
- 添加新规则:
- 名称:Allow IPv6 Input
- 协议:TCP+UDP
- 源区域:wan
- 目标区域:设备(比如NAS的IPv6地址)
- 目标端口:需要开放的端口号
- 建议开启"启用防御"和"启用SYN-flood防御"
特别注意:IPv6的防火墙是状态化防火墙,和IPv4的NAT不一样。如果你想开放某个端口,必须明确添加规则。我刚开始用的时候,就因为没配置防火墙,导致外网始终访问不了家里的服务。
5. DDNS动态域名解析
有了公网IPv6,接下来就要解决地址变化的问题。我用的是阿里云解析,具体步骤:
- 首先在阿里云购买一个域名,获取AccessKey
- 安装ddns-scripts_aliyun插件:
opkg update opkg install ddns-scripts_aliyun - 配置DDNS:
config ddns 'global' option use_curl '1' option check_interval '10' config service 'aliyun' option enabled '1' option service_name 'aliyun.com' option domain '你的域名' option username 'AccessKey ID' option password 'AccessKey Secret' option interface 'wan' option ip_source 'interface' option ip_interface 'wan6' - 保存后执行
/etc/init.d/ddns restart
测试时可以用logread -f查看日志,确认解析是否成功。我实测下来,阿里云的更新速度很快,地址变化后1分钟内就能生效。
6. 常见问题排查
在配置过程中,我遇到过几个典型问题:
获取不到IPv6前缀:这种情况多半是运营商没分配。可以尝试:
- 在WAN6接口的"高级设置"里勾选"发送DHCPv6前缀请求"
- 修改"请求IPv6地址"为"强制"
设备拿不到公网IPv6:检查LAN口的IPv6分配长度是否匹配运营商前缀。比如运营商给的是/60,那么LAN口应该设成/64。
外网无法访问:
- 确认防火墙规则正确
- 检查客户端是否真的获取到了公网IPv6(2409开头)
- 用
ping -6 240c::6666测试IPv6网络是否通畅
DDNS不更新:
- 检查AccessKey权限是否足够
- 确认
ip_source设置的是interface - 查看
/var/log/ddns.log获取详细错误信息
7. 实际应用场景
配置完成后,这些应用场景特别实用:
- 远程桌面:直接通过IPv6地址连接家里的电脑,速度比TeamViewer快很多
- NAS访问:不用再折腾内网穿透,文件传输速度拉满
- 家庭监控:摄像头直接通过域名访问,画面延迟明显降低
- 游戏联机:PS5/Xbox用IPv6联机,NAT类型直接变成开放型
我家的智能家居设备现在全部通过IPv6连接,响应速度比之前用IPv4转发快了不少。特别是看4K视频的时候,缓冲时间缩短了60%以上。
8. 安全建议
虽然IPv6很方便,但安全不能忽视:
- 定期更换防火墙规则:只开放必要的端口
- 使用强密码:所有对外服务都要设置复杂密码
- 关闭不必要的服务:比如路由器的Telnet、FTP等
- 监控连接:安装
vnstat等工具监控流量 - 考虑启用IPv6的隐私扩展:防止设备被追踪
经过三个月的使用,IPv6的稳定性完全超出我的预期。现在远程访问家里设备再也不用折腾内网穿透了,直接一个域名搞定所有需求。如果你也遇到IPv4公网地址的问题,强烈建议试试IPv6方案,配置一次就能永久解决远程访问的痛点。