使用 Bird + NDP 实现 IPv6 全段映射并持久化配置

前言

很多朋友拿到了一个完整的 IPv6 /64 段地址,但只能使用其中一个 IP,其余 IP 都无法使用或访问。这篇文章将完整介绍如何通过 Bird + ndppd + ip route + sysctl 实现对整个 IPv6 段的可用性,并设置为 重启自动生效


一、准备工作:基础网络环境

确保你已经具备以下环境:

  • 正常联网的 VPS
  • 拥有一个完整的 IPv6 /64 段,例如:2001:db8:abcd:0012::/64
  • 可以访问 ip 命令、编辑配置文件等基本权限(root)

二、设置本地 IPv6 路由

我们需要让系统接受并处理整个 IPv6 段的地址。

ip -6 route add local 2001:db8:abcd:0012::/64 dev eth0

⚠️ 请将 eth0 替换为你的网卡名(可通过 ip a 查看,如 ens3, enp1s0 等)。


三、允许绑定非本地 IPv6 地址

某些程序(如 nginx)默认不允许绑定未在接口上显式配置的 IP,启用以下参数即可解除限制:

sysctl net.ipv6.ip_nonlocal_bind=1

四、配置 NDP 代理(ndppd)

新建或编辑 /etc/ndppd.conf 文件:

route-ttl 30000

proxy enp1s0 {  # ⚠️ 请替换为你实际的网卡名称
   router no
   timeout 500
   ttl 30000
   rule 2001:db8:abcd:0012::/64 {  # ⚠️ 替换为你实际的 IPv6 段
       static
   }
}

然后启动 ndppd

ndppd -d  # 测试运行(推荐先试试)
# 确认无误后使用 systemctl 启动或设置开机启动

五、设置 ip_nonlocal_bind 为开机自启

编辑 sysctl 配置文件:

echo "net.ipv6.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
sysctl -p

六、让本地 IPv6 路由在开机后自动添加

方法 A(推荐):使用 systemd service

新建文件 /etc/systemd/system/ip6-local-route.service,内容如下:

[Unit]
Description=Add local IPv6 route for full /64 segment
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/sbin/ip -6 route add local 2001:db8:abcd:0012::/64 dev eth0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

保存后执行以下命令使其生效:

systemctl daemon-reexec
systemctl daemon-reload
systemctl enable ip6-local-route.service
systemctl start ip6-local-route.service

方法 B(兼容旧系统):使用 /etc/rc.local

在某些老系统中可以使用 /etc/rc.local

echo 'ip -6 route add local 2001:db8:abcd:0012::/64 dev eth0' >> /etc/rc.local
chmod +x /etc/rc.local

注意:如果系统默认未启用 rc.local,还需使用 systemd 启用它。


七、验证是否生效

  1. 使用 ping6 google.com 检查是否能从外部访问 /64 段中的任意 IP。
  2. 使用 ss -tuln6 确认服务是否已绑定到这些 IPv6 地址。
  3. 使用脚本批量监听所有 IP,可用于测试。

结语

通过以上配置,即使你只被分配到了一个 IPv6 地址,只要你掌握了整个 /64 段,就可以自己启用所有地址,实现大规模服务部署、IPv6 端口映射或 NAT64 转发等用途。

欢迎分享给更多需要用到 IPv6 全段的开发者朋友!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
隐藏
变装