📌 目标
✅ 仅允许中国主要 IPv6 地址段的 出站 和 入站
✅ 阻止所有其他 IPv6 出站和入站流量
完整操作步骤
🟢 步骤 1:安装 ipset
和 iptables-persistent
首先,确保系统安装了 ipset
(用于管理 IP 地址列表)和 iptables-persistent
(用于持久化规则)。
🟢 步骤 2:创建 IPv6 地址列表
使用 ipset
定义 中国主要 IPv6 地址段,用于放行。
然后,添加中国的主要 IPv6 地址段:
🟢 步骤 3:配置 ip6tables
规则
1. 清除旧规则
2. 允许本地回环
3. 允许已建立的连接
4. 允许中国 IPv6 地址段的入站流量
sudo ip6tables -A INPUT -m set --match-set china6 src -j ACCEPT
5. 允许中国 IPv6 地址段的出站流量
🟢 步骤 4:持久化规则
1. 保存 ipset
规则
让 ipset
规则在开机时自动恢复:
echo "ipset restore < /etc/ipset.rules" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local
2. 保存 ip6tables
规则
然后启用 iptables-persistent
:
🟢 步骤 5:验证配置
1. 检查 ipset
是否生效
2. 检查 ip6tables
规则是否生效
sudo ip6tables -L -v
3. 测试 IPv6 出站(应该成功)
4. 测试 IPv6 出站(应该失败)
ping6 -c 4 2606:4700:4700::1111 # Cloudflare(非中国)
5. 测试 IPv6 入站
使用其他设备(如 VPS 或朋友的 IPv6 服务器),尝试访问你的服务器:
如果来源是 中国 IPv6,应该成功;如果是 非中国 IPv6,应该失败。
PS:清除现有的防火墙规则:
sudo ip6tables -F # 清空所有规则
sudo ip6tables -X # 删除所有自定义链
总结
✅ 默认封锁所有 IPv6 流量
✅ 仅允许中国 IPv6 地址段的入站和出站
✅ 允许本地回环和已建立的连接
✅ 开机自动恢复 ipset
和 ip6tables
规则
这样配置后,你的服务器 只能 与中国的 IPv6 地址通信,其他国家的 IPv6 地址将全部被拦截。🚀
如果你有其他需求,比如允许特定端口,或者允许某些非中国 IPv6 地址,欢迎继续交流!😊
sudo ip6tables -F
sudo ip6tables -X
sudo ip6tables -Z
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END