V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shenyuzhi
V2EX  ›  宽带症候群

IPv6 国内外分流,只能 nat 吗

  •  
  •   shenyuzhi · 2025 年 8 月 3 日 · 4038 次点击
    这是一个创建于 166 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我这边的 ipv4 ,配置了一个很简单的国内外分流,已经运行得相当完美了。

    IPv4 内网(192.168.10.0/24)
    Mikrotik 路由表分流
    如果目标是国内 IP ,出口是 pppoe ,启用 nat
    如果目标是国外 IP ,出口是 wireguard ,启用 nat ,连接某 iplc vps 。

    但是 ipv6 就不太好办了了。
    电信分配了 ipv6 地址,iplc vps 也有一个很大的 ipv6 地址段,而且是静态的,可以在我的内网分配。
    我想实现:访问国内的 ipv6 地址,用电信分配的 ipv6 地址。访问国外的 ipv6 地址,用 vps 的地址。
    除了配置 nat ,有别的办法吗?
    实在是不想 nat
    45 条回复    2025-08-14 11:35:45 +08:00
    mooyo
        1
    mooyo  
       2025 年 8 月 3 日
    写路由表?
    dsx826
        2
    dsx826  
       2025 年 8 月 3 日 via Android   ❤️ 1
    试试前缀转换
    rulagiti
        3
    rulagiti  
       2025 年 8 月 3 日   ❤️ 1
    iptables mark 策略路由
    bclerdx
        4
    bclerdx  
       2025 年 8 月 3 日   ❤️ 1
    我就很好奇,在中国大陆使用个网络,还需要 网民们做“CN”单独分流。这难道不是莫大的讽刺?怎么没见过港澳台地区的人们使用网络还需要单独做“香港”单独分流、“澳门”单独分流 和 “台湾”单独分流呢?
    anonymity
        5
    anonymity  
       2025 年 8 月 3 日
    @bclerdx #4 第一次来中国吗😂
    cyp0633
        6
    cyp0633  
       2025 年 8 月 3 日   ❤️ 1
    我在 Linux 的路由器上用 xray ,国内地址走 freedom ,境外地址走代理(也支持 wireguard ),用 nftables 把路由器流量导入 xray 做透明代理,v4 和 v6 都可以很好地处理
    crysislinux
        7
    crysislinux  
       2025 年 8 月 3 日 via Android
    @bclerdx 竟然还有人给你点赞也是绝了,你是觉得楼主为了这事应该去上访?
    shenyuzhi
        8
    shenyuzhi  
    OP
       2025 年 8 月 3 日
    @dsx826
    这是个不错的主意。虽然 1 对 1nat 也是 nat ,但是看着比共用一个 ipv6 地址出口舒服一些。
    ranaanna
        9
    ranaanna  
       2025 年 8 月 3 日   ❤️ 1
    这是一个局域网内 multiple ipv6 gateways 的问题。

    如果要避免这个问题,
    1. nat 不失为不错的解决方案,当然,会有 nat 带来的问题
    2. 如果 vps 的速度不错,那么单选 vps 的 ipv6 也不错。会有连通性、延迟和速率的问题,但是反正有 ipv4 保底,一般不会对实际体验有很大的影响

    如果要利用这个问题,
    3. 理论上 ipv6 应该是要支持 multiple gateways 的,系统应可以根据源地址的不同选择正确以及更快的地址、网关组合保持通讯。但是实际上当前的各种系统对此的支持都非常不好,所以往往会出现系统选择错误的地址和网关导致通讯中断的情况
    4. 解决的办法是有的,比如 source based routing ,建立一个或多个路由表,指定路由表的地址规则和缺省网关。但这件事是在每个终端上都要做,对于某些终端做起来可能并不容易

    做起来较简单但终端上没有公网 ip ,2 做起来最简单但只有 vps 给的公网 ip ,3 做起来最佛系但肯定会碰到连接问题,4 做起来最复杂但终端上同时有电信和 vps 给的公网 ip
    zhu327
        10
    zhu327  
       2025 年 8 月 3 日
    我的做法对 ipv6 地址下发通告的 dns 服务器不要直接用上游下发的营运商 ipv6 dns, 而是路由本身的链路 ipv6 地址, 比如 fe80::cabf:4cff:fe87:ee68 这样, 然后这样在路由器上通过 dnsmasq 分流需要到国外的域名只返回 ipv4
    wuruxu
        11
    wuruxu  
       2025 年 8 月 3 日
    我使用了 policy route, 把 ipset 中的 ipv6 地址 通过 wg0
    bclerdx
        12
    bclerdx  
       2025 年 8 月 3 日   ❤️ 1
    @anonymity 显然不是。
    thevita
        13
    thevita  
       2025 年 8 月 3 日
    @bclerdx 当然也是需要的,比如国外 VPN 服务商目标客群主要是用来绕过内容商的版权限制,太普遍了.
    bclerdx
        14
    bclerdx  
       2025 年 8 月 3 日   ❤️ 1
    @crysislinux 你难道看不出来我是在说谁呢吗?当然,如果 OP 去运营商或国家信访办上访,也是可以的。OP 也可以不上访。跪久了就不容易起身了。
    MYDB
        15
    MYDB  
       2025 年 8 月 3 日 via iPhone
    全分流到国外 ipv6 就好了,国内完全支持 ipv6 的软件/应用/网页几乎没有,用 ipv6 反而被限制体验
    dream0689
        16
    dream0689  
       2025 年 8 月 3 日 via iPhone
    可以找个国内带 v6 地址的服务器搭 wireguard 中转一下,本地客户端配好海外允许路由的 v6 段。
    heiher
        17
    heiher  
       2025 年 8 月 3 日
    还是和 IPv4 的内外分流一样就可以。我是用类似这样的: https://github.com/heiher/hev-socks5-tproxy?tab=readme-ov-file#netfilter byp4 和 byp6 地址表分别还增加了内地的 IPv4 和 IPv6 地址段。
    wy315700
        18
    wy315700  
       2025 年 8 月 3 日
    @MYDB 2025 年了。。
    kujou
        19
    kujou  
       2025 年 8 月 3 日
    https://github.com/zfl9/chinadns-ng
    这个内外分流如何,基于域名列表和 ip 列表,先判断域名是否在国内域名列表,如果不是,在从 dns 返回的 ip 判断
    zro
        20
    zro  
       2025 年 8 月 3 日
    感觉 Fake-IP 会简单些。。😀
    starryloki
        21
    starryloki  
       2025 年 8 月 4 日
    我的架构和楼主非常相似,也是用 RouterOS 做了双栈的国内外分流,国内 ISP 提供/60 的 IPv6 静态 Prefix ,国外提供/56 的 IPv6 静态 Prefix ,且海外端也是 RouterOS
    如果海外端也是 RouterOS 的话,没有特别好的办法,因为不支持前缀转换。如果是 Linux 或 OpenWRT 的话,可以尝试用基于前缀负掩码的前缀转换尝试
    wm5d8b
        22
    wm5d8b  
       2025 年 8 月 4 日 via Android
    @starryloki RouterOS 也可以前缀转换
    https://ntzyz.space/zh-cn/post/use-netmap-to-get-persistent-ipv6-address-and-control-source-address/
    everfly
        23
    everfly  
       2025 年 8 月 4 日
    IPv6 为啥要 NAT 呢?你给 Mikrotik 配置 iplc vps 静态 IPv6 地址段分配出来的一段/64 地址不好了吗?
    maybeonly
        24
    maybeonly  
       2025 年 8 月 4 日   ❤️ 1
    用运营商 ip 段的话,只能 nat ,或者其等效手段(包括但不限于,nat66 ,snpt ,netmap ,七层代理)
    根本原因是,你的局域网 ip 段是运营商分给你的,而这些 ip 不可能(通常也不被允许)从其他地方发出去,发往这些 ip 段的数据包更是只会通过运营商还给你。

    配置多段 ip 多路由+策略可行吗?理论上可行,但是带来的问题可能远远比收益要多。例如,配置困难,无法处理复杂规则,梯子故障时难以处理等等。

    最后,不要恐惧 nat 。那东西挺好用的,真的。特别是没条件 bgp 的时候。
    keyfunc
        25
    keyfunc  
       2025 年 8 月 4 日
    Fake IP 最简单,我更极端点,所有非 CN 白名单的域名一律不返回 ipv6 的解析,CN2 的 v6 地址很烂
    szdosar
        26
    szdosar  
       2025 年 8 月 4 日
    你的需求无非就是代理和分流 ipv6 ,这事有专门的插件能实现,比如 passwall2 。比你自己瞎琢磨靠谱,别浪费时间,专业的事情,让专业的人做。
    terrancesiu
        27
    terrancesiu  
       2025 年 8 月 4 日
    前缀转换落地的 vps 再 nat 一次即可。这样国内是 240x 的 ip ,境外就是你的 vps 的 v6.
    itiao
        28
    itiao  
       2025 年 8 月 4 日

    可以考虑一下 V 友 yyysuo 的 Mosdns Fakeip 分流
    https://github.com/yyysuo
    https://t.me/+bzSRf6dtG3lhYWVl
    scegg
        29
    scegg  
       2025 年 8 月 4 日
    用两个 VLAN ,推送两套 V6 的 IP 到终端机,让其中一个是默认网关,另一个做类似无类路由的策略只走 CN ?
    scegg
        30
    scegg  
       2025 年 8 月 4 日
    这个模式缺点是需要电脑,但好像手机的话也不用纠结是否 NAT 了。
    guiys
        31
    guiys  
       2025 年 8 月 4 日 via Android
    为啥要一定硬要访问国外 v6 呢?所有国外站的 v6 解析全扔掉,靠 v4 即可。
    除非你的需求是大量 v6-only 的站
    JoeSmith
        32
    JoeSmith  
       2025 年 8 月 4 日
    ip rule ,配合 nft set, xmark , 加路由表
    完全可以实现,我就这么干的,用了很久了

    细节懒得写了,lz 自己研究吧。

    大致的思路如下:
    1. 搞一个 IP 地址列表(网上有的是),可以是中国 IP ,可以是国外 IP ,都可以。区别就是一个当黑名单用,另一个就是当白名单用,看你爱好。
    2. 把这个列表写到一个 nft set 里
    3. 写 nft 规则,匹配 set 的,打 xmark
    4. ip rule ,匹配某 xmark 的,查特定路由表
    5. 在这个特定路由表里,随便写你的路由配置

    这一套下来就实现了分流,v4 v6 通用。
    JoeSmith
        33
    JoeSmith  
       2025 年 8 月 4 日
    我这个用的是 tailscale ,没用 NAT 。
    不过实际上 tailscale exit node 是用 NAT 实现的。
    goofysun
        34
    goofysun  
       2025 年 8 月 4 日
    @bclerdx 这就好比 TK 服务器放在中国会被美国制裁,后面放在中国之外了,还是要被制裁。所有的政权都会对自己控制不了的媒体类限制。只是互联网西方独大了很久而已,YT 、TWITTER 这些上面反中内容,真的假的,谣言什么的泛滥,而中文社区的审核貌似给的是不怎么友好大陆的地区,你以为换成你当权,你能放开?或者按照你的意思,模仿老美立法禁止访问这些就好了。难道法禁和技术禁有很大的道德差异?
    red3a
        35
    red3a  
       2025 年 8 月 4 日
    说说我的现状和历史经验
    现状:
    - IPv4 私有 IP 地址, slaac 分配动态 IPv6 公网地址标配
    - DNS 解析 IPv4/IPv6, 特殊地址只解析 IPv4 走路由表 或者 直接 Fake IP 走 mihimo
    - IPv4 路由表处理, IPv6 全国内

    过去折腾过的(需要 VPS 有两个 prefix routing 的国外 IPv6 地址段, 比如 tunnelbroker 那种, 但是其他的找不到或不划算后来就不弄了)
    - IPv4 私有 IP 地址, slaac 分配动态 IPv6 公网地址标配
    - DNS 解析 IPv4/IPv6
    - IPv4/IPv6 按地址路由, 需要走特殊出口出去的, 做前缀映射, 换 IPv6 prefix
    使用很正常, 但是也有很多不属于架构的问题, 比如境外 BT 流量会消耗比较大(因为无法控制别人怎么检测你的 IP 的), IPv6 的速度可能不行等等
    bclerdx
        36
    bclerdx  
       2025 年 8 月 4 日
    @goofysun 比如 YT 、Twitter 等这列就显示公众互联网,而不控制通过专线能直接访问这些服务的政权部门?一刀切只对公众互联网,而不对特殊政权部门,是这意思吧?这不就是看人下彩蝶吗?恶心!
    sanquan
        37
    sanquan  
       2025 年 8 月 4 日 via iPhone
    ospf 啊
    ankikong
        38
    ankikong  
       2025 年 8 月 4 日
    #4 该评论涉及引战 无意义 @Livid
    hxdyxd
        39
    hxdyxd  
       2025 年 8 月 4 日
    如果是南方,直接全部 HK 出口,不分流。
    延迟没差多少。绕香港还能解决跨网 Q 的问题
    anonymity
        40
    anonymity  
       2025 年 8 月 4 日
    wg 翻 gfw 不会被切吗 我也想搭一个,
    现在用的 zerotier
    txydhr
        41
    txydhr  
       2025 年 8 月 5 日 via iPhone
    @MYDB 张口就来
    Csheng
        42
    Csheng  
       2025 年 8 月 7 日
    @JoeSmith #32 实际上这么干之后,你会发现。。。还不如套个 sing-box 加配置来的简单。。。这玩意开 tun ,监听 dns ,ipset domain 之类的玩法,足够做很细的分流,用 clash api 开个 zashboard ,又能有 ui 管理。实际上还是挺省事的,至少日常切换不至于需要敲代码,至于改配置,倒是挺恶心的人的 json... v4/v6 都能用,不过我只用了 v4 only 。底层原理其实和你说的方案应该是一致的。
    lih24338
        43
    lih24338  
       2025 年 8 月 8 日 via Android
    用代理上网插件不就能行吗
    JoeSmith
        44
    JoeSmith  
       2025 年 8 月 10 日
    @Csheng 敲代码不还有附带逼格的好处嘛。

    其实敲代码也简单的很,并不比在 gui 上点鼠标费事。

    clash 对我来说偏向于黑盒,尤其是 fake IP 那一套尤其不喜欢。
    Ljcbaby
        45
    Ljcbaby  
       2025 年 8 月 14 日
    其实你能同时分下去两个地址的话,啥都不管都行,本来就会把所有的地址都试一遍。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:47 · PVG 09:47 · LAX 17:47 · JFK 20:47
    ♥ Do have faith in what you're doing.