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

Wireguard/OpenVPN 客户端如何获取 IPv6 地址

  •  
  •   DopaminePlz · 20 小时 16 分钟前 · 724 次点击

    家里网络拓扑:OpenWrt 路由器--内网 NAS 。Wireguard 服务端运行在家里的 NAS 上,ip6tables 配置了 IPv6 伪装,办公室里仅有 IPv4 内网地址的客户端可以被伪装为家里 NAS 的公网 IPv6 地址。请问客户端可以从家里路由器获取独立的公网 IPv6 地址而非 NAS 的公网 IPv6 地址吗?如何做?

    7 条回复    2024-12-21 15:32:36 +08:00
    dalaoshu25
        1
    dalaoshu25  
       20 小时 2 分钟前
    可以,我做到了,不是很难,我用 RouterOS 实现的,需要写一个简单的脚本和配置 netmap 方式的 NAT 规则。

    但是没必要,莫非你要从外边发起对你办公室里这个客户端的直接访问?

    wireguard 的地址分配都是静态的,无论 wg 节点之间是用 IPv4 还是 v6 连接,每个 wg 节点本身都可以同时配置 IPv4 和 IPv6 地址。你只需要给这些节点分配好静态的私有 IPv6 地址,比如我用 fd80::1/64 fd80::100/64 等等,然后在你的出口路由器上把这些 fd80::地址伪装成出口的 v6 地址即可。
    xqzr
        2
    xqzr  
       16 小时 27 分钟前
    wg 在 Linux 上可以用内核的 accept_ra
    ranaanna
        3
    ranaanna  
       15 小时 3 分钟前
    如果家里的 ipv6 前缀固定,那么只要将 nas 上的 wireguard 的 Address 配置中的 ipv6 地址从内网地址改成与 LAN 前缀不同、但在运营商分配的前缀中的公网地址,再将原先的地址伪装命令去掉即可。确保系统 net.ipv6.conf.all.forwarding=1 或 2 。相应地客户端的地址也作修改,/64 地址的前缀与服务端相同。不需要 NAT 比原先的更简单

    更进一步地,甚至可以在客户端的网卡上指定一个其他的/64 前缀地址,再通过 RA 给办公室的所有设备分配家里的公网 ipv6 地址,让它们都可以通过家里的 ipv6 上网,而且,在防火墙允许的前提下,可以直接被访问

    当然如果家里的 ipv6 前缀是动态的,则需要根据变化相应地调整服务端和客户端的 ipv6 地址。不知道是否有现成的实现
    ysc3839
        4
    ysc3839  
       14 小时 27 分钟前
    OpenVPN 的话有个最简单的方案,就是用二层 tap VPN ,直接接入路由器 LAN ,能直接拿到 LAN 的 IP 地址。
    不过该方案不适用于 Android 、iOS 等移动操作系统,macOS 似乎也不支持 tap 。
    Ipsum
        5
    Ipsum  
       9 小时 52 分钟前
    家宽还是算了吧,动态 v6 ,每次拨号都要重新来一遍。直接 nat6 完事
    shenyuzhi
        6
    shenyuzhi  
       4 小时 51 分钟前 via iPhone
    这个问题我考虑过。
    wg 不能动态分配 ipv6 ,只能写死。
    如果你家里的前缀是固定的,那就写死。
    不然只有两种办法
    1 NAT
    2 先建立隧道,然后想办法用别的什么协议分配 ipv6 地址。
    cloudflare warp 也是写死的 ipv6 地址然后 nat
    dalaoshu25
        7
    dalaoshu25  
       3 小时 18 分钟前 via iPhone
    @shenyuzhi 至少在 RouterOS 里超简单,电信局不是给了/56 嘛,从这里面拿一个/64 给 wg 接口,然后外面连进来的 wg 客户就用这个前缀做 natmap 即可,会者不难,我已经设置好用了半年多了,只是实在没有什么实用意义。莫非还要在 wg 客户端上建立 web 服务器给别人访问不成。不过远程 ssh 登录进来是可以用的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2509 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.