Debian下使用HE隧道/48 地址

Debian HE IPv6隧道 和VPS原生IPv6共存的配置。

VPS本身提供的IPV6不知何故被电信联通屏蔽了,国内只有移动可以访问。特别申请了HE隧道,可以通过隧道来访问IPV6。

没有IPv6地址的VPS直接按官方模板添加即可。对于有IPV6的VPS直接添加HE上模板的配置,不同的VPS商家提供的debian系统策略不同,有的会覆盖掉原有的原生IPv6;有的则会报错,因为会有双网关,网络重启会提示失败。遇到报错,我们只需要注释掉VPS原生的IPV6地址配置的gateway即可(前方加#),然后用官方模板提供的配置加入到 /etc/network/interfaces 里即可,相当于关闭掉了原生IPv6。

Debian下使用HE隧道/48 地址

以上述图片为例

对于有原生IPV6地址的debian VPS,需要原生地址和隧道地址/64共同使用使用,无需注释掉原有VPS原生的IPV6网关,可以如下设置:

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:470:1234:abc::2   #此处为 Clinet IPv6 Address
        netmask 64                     #不变
        endpoint 66.220.7.82           #此处为 Server IPv4 Address
        local 9.5.2.7                  #此处为 Clinet IPv4 Address
        ttl 255

        post-up   ip -6 route add default via 2001:470:1234:abc::1 dev he-ipv6 table 301 #此处为 Server IPv6 Address,可以认为是网关。表301 可以是100等其他
        post-up   ip -6 rule add from 2001:470:1234:abc::1/64 table 301  #此处为Server IPv6 Address/64

        pre-down  ip -6 rule del from 2001:470:1234:abc::1/64 table 301  #此处为Server IPv6 Address /64
        pre-down  ip -6 route del default via 2001:470:1234:abc::1 dev he-ipv6 table 301   #此处为 Server IPv6 Address

完成后 systemctl restart networking ,如果提示有错误可以 reboot 后再 systemctl restart networking 看看,一般就没问题了。

如果有/48的IPv6,按如下设置,注意我们要设置本地IPv6地址为2001:470:6666:a1bc::20 这样地址是不行的,必须使用/64前缀的ip地址。

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        ddress 2001:470:1234:abc::2    #此处为 Clinet IPv6 Address,不能为你想要的/48 IPv6地址,前缀必须是官方提供的/64的前缀,如上面图片中地址
        netmask 64                     #不变
        endpoint 66.220.7.82           #此处为 Server IPv4 Address
        local 9.5.2.7                  #此处为 Clinet IPv4 Address
        ttl 255

        post-up ip -6 route add default via 2001:470:1234:abc::1 dev he-ipv6 table 301 metric 100 #此处为 Server IPv6 Address,在路由表301中添加一条默认 IPv6 路由,优先级100,指向 HE 隧道网关
        post-up ip -6 rule add from 2001:470:1f18:255::1/64 table 301   #此处为 Client IPv6 Address /64,策略路由规则,匹配 源地址
        post-up ip -6 rule add from 2001:470:6666::/48 table 301        #Routed IPv6 Prefixes /48 地址,策略路由匹配更大的 /48 段
        post-up ip -6 route add local 2001:470:6666::/48 dev lo        #在本地路由表中把整个/48前缀标记为本地地址,当外部访问/48的其他地址时,Debian不会把流量转发到默认路由,而是直接交给本地栈处理
        
        pre-down ip -6 route del default via 2001:470:1234:abc::1 dev he-ipv6 table 301 metric 100  #这些del需要有,不然易重启网络失败
        pre-down ip -6 rule del from 2001:470:1f18:255::1/64 table 301
        pre-down ip -6 rule del from 2001:470:6666::/48 table 301
        pre-down ip -6 route del local 2001:470:6666::/48 dev lo

# 增加本地新的IPV6 地址,确认你的是网口是不是eth0
iface eth0 inet6 static
        address 2001:470:6666:472a::1234
        netmask 64

完成后 systemctl restart networking ,如果提示重启失败 可以用ip -6 rule show table 301 ip -6 route show table 301,看看有哪些规则,可以删除掉规则或路由 ip -6 rule del table 301 ip -6 rule flush ip -6 route flush table 301 。然后再进行重启网络,如果配置失败可能需要进入VPS 供应商控制台进行修改,不同的VPS网络部署方案不一,遇到问题可以尝试问问AI.

本机测试访问:

curl -6 --interface 2001:470:1234:abc::2 https://icanhazip.com
curl -6 --interface 原生ipv6 https://icanhazip.com

其他服务器访问任意/48 前缀的IPv6地址,均可ping通

如: ping 2001:470:6666:abc::d34

客户端设备访问/48内的IPv6只可以与2001:470:6666:472a::1234 这地址进行通讯。

如果该段ip质量不错,代理软件sing-box,配置文件 outbound 里的 direct 可以加入 "inet6_bind_address":"2001:470:6666:472a::1234"。使用该ip出站,这样google就会认为是2001:470:6666:472a::1234和自己通讯的。

如果只想用/48内的IPv6,可以自定义1个/64的ipv6地址,如:2001:470:6666:a1b1::2 。a1b1为自己定义的子段。不能直接为/48,否则会被认为是2001:470:6666:0000::/64 。必须加自定义子段配置为/64,debian不会自动分配/48 的ip。配置如下:

auto he-ipv6
iface he-ipv6 inet6 v4tunnel
        address 2001:470:6666:a1b1::2   #此处为加入子段的自定义/48 内IP
        netmask 64                     #不变
        endpoint 66.220.7.82           #此处为 Server IPv4 Address
        local 9.5.2.7                  #此处为 Clinet IPv4 Address
        ttl 255

        post-up   ip -6 route add default via 2001:470:6666:a1b1::1 dev he-ipv6 table 301 #也需要配备为加入字段的 /48内ip
        post-up   ip -6 rule add from 2001:470:6666:a1b1::1/64 table 301  

        pre-down  ip -6 rule del from 2001:470:6666:a1b1/64 table 301  
        pre-down  ip -6 route del default via 2001:470:6666:a1b1::1 dev he-ipv6 table 301

检测默认从哪个IPv6地址走的:

root@test:~#ip -6 route get 2001:4860:4860::8888
2001:4860:4860::8888 from :: via fe80::302:2ff1:d03:408 dev eth0 proto ra src 2001:470:abcd:1234::2  metric 1024 hoplimit 64 pref medium

返回内容里的src 后面就是服务器内部访问网站使用的默认IPv6地址。

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/kxsw/2484.html

(0)

BandWh.com 折腾之路●一起折腾

上一篇 2025年3月19日 14:13
下一篇 2022年9月22日 11:18
瓦工BIGGERBOX-20-1024

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

请文明评论!