有时间再细写。自己参考着自己改成自己的。不会的问AI
此方法可保留所有IPV6,并且可以使用任意一个ipv6入站(即可ping通,可tcp通)
找自己的网卡配置在哪 /etc/network
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto ens3
iface ens3 inet dhcp
iface ens3 inet6 static
address 2604:2dc0:202:300::1065/128
# address 2001:470:b:79a::1/64
# gateway 2604:2dc0:202:300::1
# 接口启动后,为这个接口设置专门的路由表
# '100' 是我们自定义的路由表ID,你可以换成别的数字
post-up ip -6 route add 2604:2dc0:202:300::1 dev ens3 table 100
post-up ip -6 route add default via 2604:2dc0:202:300::1 dev ens3 table 100
# 添加路由规则:从原生IPv6地址发出的流量,使用表 '100'
post-up ip -6 rule add from 2604:2dc0:202:300::1065/128 table 100
# 接口关闭时,删除对应的规则和路由,保持干净
pre-down ip -6 rule del from 2604:2dc0:202:300::1065/128 table 100
pre-down ip -6 route flush table 100
# --- 【he/64】为 ens3 绑定 HE 的路由块 IP ---
# 这个 IP 是 HE 分配的,但需要绑定在物理网卡上才能使用
post-up ip -6 addr add 2001:470:b:79a::1/64 dev ens3
# --- 【he/64】为这个新 IP 添加策略路由规则,让其流量走 HE 隧道 (table 101) ---
post-up ip -6 rule add from 2001:470:b:79a::1/64 table 101
# --- 【he/64】接口关闭时,清理对应的 IP 和规则 ---
pre-down ip -6 rule del from 2001:470:b:79a::1/64 table 101
pre-down ip -6 addr del 2001:470:b:79a::1/64 dev ens3
auto he-ipv6
iface he-ipv6 inet6 static
address 2001:470:a:79a::2
netmask 64
# gateway 2001:470:a:79a::1
# 使用 pre-up 和 post-down 手动管理隧道
pre-up ip tunnel add he-ipv6 mode sit remote 216.218.226.238 local 51.81.187.16 ttl 255
pre-up ip link set he-ipv6 up
# 接口启动后,为隧道设置专门的路由表
# '101' 是我们为隧道定义的路由表ID
post-up ip -6 route add 2001:470:a:79a::1 dev he-ipv6 table 101
post-up ip -6 route add default via 2001:470:a:79a::1 dev he-ipv6 table 101
# 添加路由规则:从隧道IPv6地址发出的流量,使用表 '101'
post-up ip -6 rule add from 2001:470:a:79a::2/128 table 101
# 接口关闭时,删除规则、路由和隧道
pre-down ip -6 rule del from 2001:470:a:79a::2/128 table 101
pre-down ip -6 route flush table 101
post-down ip link set he-ipv6 down
post-down ip tunnel del he-ipv6