1. 为什么选择IPv6搭建家庭服务器?
最近几年IPv4地址资源越来越紧张,普通家庭用户很难申请到公网IPv4地址。而电信光纤宽带普遍提供了IPv6公网地址,这给我们搭建家庭服务器提供了绝佳机会。相比IPv4需要复杂的端口映射和内网穿透,IPv6的配置简单直接得多。
我家里有台闲置的笔记本,配置不算高但跑个Nginx绰绰有余。之前尝试过用IPv4做内网穿透,不仅速度慢还经常掉线。后来发现电信光猫其实已经分配了IPv6地址,只是我一直没好好利用。经过一番折腾,终于成功用IPv6搭建了可以外网访问的Nginx服务器,整个过程比想象中简单。
2. 光猫桥接模式设置
2.1 获取光猫超级管理员权限
电信光猫默认只给用户提供普通账号,很多高级功能都无法使用。要设置桥接模式,我们需要超级管理员账号telecomadmin。不同型号光猫的默认密码可能不同,我的TEWA-708E光猫默认密码是nE7jA%5m。
登录光猫管理界面需要注意:
- 地址通常是http://192.168.1.1:8080
- 必须加上8080端口
- 使用telecomadmin账号登录
2.2 修改光猫为桥接模式
进入光猫后台后,找到"网络设置"-"宽带设置"-"Internet连接"。这里会看到现有的PPPoE拨号连接,我们需要做的就是:
- 记录下当前的VLAN ID(通常是41)
- 删除现有的PPPoE连接
- 新建一个桥接(Bridge)连接
- 选择相同的VLAN ID
- 绑定到正确的端口(通常是LAN1)
重要提示:修改前建议拍照记录原始配置。如果操作失误导致无法上网,可以拨打电信客服电话,他们会指导你恢复或者提供光猫注册码重新注册设备。
3. 路由器拨号配置
3.1 路由器PPPoE拨号
光猫改为桥接模式后,拨号任务就交给了路由器。以中兴ZXHN E1600为例:
- 进入路由器管理界面(通常是192.168.1.1)
- 找到"网络设置"-"宽带拨号"
- 输入电信提供的宽带账号和密码
- 连接模式选择"自动连接"
- 保存设置
拨号成功后,路由器会获取到公网IPv4和IPv6地址。可以在状态页面查看获取到的IP地址。
3.2 关闭路由器防火墙
为了让外网能够访问内网服务器,需要关闭路由器的IPv6防火墙:
- 进入"安全设置"-"防火墙"
- 找到IPv6防火墙选项
- 选择关闭或设置允许所有入站连接
- 保存设置
不同品牌路由器界面可能不同,但基本原理都一样。如果找不到具体选项,可以尝试在搜索引擎输入"路由器型号+关闭IPv6防火墙"查找具体方法。
4. Nginx配置IPv6监听
4.1 检查Nginx是否支持IPv6
首先确认Nginx编译时启用了IPv6支持:
nginx -V如果输出中包含--with-ipv6,说明已经支持。如果没有,需要重新编译安装Nginx。
4.2 配置Nginx监听IPv6
修改Nginx站点配置文件(通常在/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下):
server { listen 80; listen [::]:80 ipv6only=on; server_name yourdomain.com; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } }关键配置说明:
listen [::]:80表示监听所有IPv6地址的80端口ipv6only=on确保只处理IPv6请求[::]是IPv6的通配符写法,相当于IPv4的0.0.0.0
配置完成后,测试并重载Nginx:
nginx -t # 测试配置 systemctl reload nginx # 重载配置5. 域名解析与公网访问
5.1 获取动态IPv6地址
家庭宽带的IPv6地址通常是动态分配的,可以使用以下命令查看当前获取到的IPv6地址:
ip -6 addr show dev eth0 | grep inet6 | grep global输出中会显示类似240e:3b4:123:456::789/64的地址,这就是你的公网IPv6地址。
5.2 配置DDNS动态解析
由于IP地址会变化,建议使用DDNS服务。以阿里云域名为例:
- 安装阿里云CLI工具
- 创建RAM子账号并授权DNS修改权限
- 编写脚本定期检查IP变化并更新解析记录
示例脚本片段:
#!/bin/bash CURRENT_IP=$(ip -6 addr show dev eth0 | grep inet6 | grep global | awk '{print $2}' | cut -d'/' -f1) ALIYUN_CLI="/usr/local/bin/aliyun" DOMAIN="yourdomain.com" RR="www" $ALIYUN_CLI alidns UpdateDomainRecord \ --RecordId YOUR_RECORD_ID \ --RR $RR \ --Type AAAA \ --Value $CURRENT_IP5.3 手机网络访问测试
最后,关闭手机WiFi,使用4G/5G移动网络访问你的域名。如果一切正常,应该能看到Nginx的默认页面。
常见问题排查:
- 确认路由器已正确获取IPv6前缀
- 检查防火墙是否关闭
- 确认域名解析已生效(可用
dig AAAA yourdomain.com命令检查) - 测试直接使用IPv6地址访问是否可行
整个配置过程中,最关键的环节是光猫桥接和路由器防火墙设置。这两个步骤完成后,剩下的Nginx配置相对简单。我在第一次尝试时,就因为没关闭防火墙折腾了好久。希望这份记录能帮你少走弯路,顺利搭建自己的IPv6家庭服务器。