V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tediorelee
V2EX  ›  问与答

求助 wireguard+ipv6 在 openwrt 上的实现

  •  
  •   tediorelee · 2022-10-21 10:44:27 +08:00 · 2650 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了一些教程跟着搞了一下但是无法连接上,不知道哪里的原因

    1.新建了一个 wireguard 接口 wg0 如图
    - openwrt 做主路由,内网 ip 是 192.168.2.1
    - 给 wg0 接口的虚拟内网 ip 是 192.168.5.1/24
    - wg0 的监听端口随便给了一个 11451
    - peer 那边的配置 ip 给了一个 192.168.5.2/32
    - 防火墙自定义规则那里只加了一条:<iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -o br-lan -j MASQUERADE>


    2.wg0 接口我选择的防火墙区域是 LAN 如图


    3.客户端的配置我是这样写的
    - peer 的 endpoint 我指向的是公网 ipv6 的 ddns 地址+上面的端口
    - dns 我填的是 openwrt 主机的 ip


    4.手机上添加这个配置文件之后,无法连接,求助我错在哪一步?
    16 条回复    2022-11-13 16:09:52 +08:00
    vigidroid
        1
    vigidroid  
       2022-10-21 13:33:46 +08:00
    10c2*** 这个是谁的 pub key ,我看你两端都写了。而[peer]部分应该写对方的 pub key 。
    然后你的防火墙规则那里我没用过,不知道会不会影响。
    最后你需要在防火墙里打开 ipv6 的 11451 端口,从你的内容里没看到有设置。
    ShineyWang
        2
    ShineyWang  
       2022-10-21 13:47:51 +08:00
    wireguard 我也试过好几次都不行
    后来发现 tailscale 可以不用配置...
    mcluyu
        3
    mcluyu  
       2022-10-21 13:53:15 +08:00
    把日志放出来看看,另外就是楼上说的,服务端的 peer 公钥要写客户端的公钥。

    起码得先保证你的网络能通过 ipv6 互相联通, 然后就是握手信息那些,服务端能不能正确获取到客服端 ip
    tediorelee
        4
    tediorelee  
    OP
       2022-10-21 14:39:41 +08:00
    @vigidroid 10c2 开头这个是 client 端的 pub key
    tediorelee
        5
    tediorelee  
    OP
       2022-10-21 14:45:30 +08:00
    @vigidroid
    @mcluyu
    这样算是在防火墙上打开了 11451 这个端口吗?
    tediorelee
        6
    tediorelee  
    OP
       2022-10-21 14:45:52 +08:00
    @tediorelee 图片忘记粘贴了
    vigidroid
        7
    vigidroid  
       2022-10-21 17:29:20 +08:00 via Android
    @tediorelee 记不清了,应该不是到所有主机,是到本机
    yaott2020
        8
    yaott2020  
       2022-10-21 17:55:01 +08:00 via Android
    你的 iptables 规则有问题吧,删掉 -o br-lan 试试
    muhahaha
        9
    muhahaha  
       2022-10-21 22:57:59 +08:00 via iPhone
    问一个额外的问题,OpenVPN 和 wireguard 有多大区别
    aphorism
        10
    aphorism  
       2022-10-21 23:20:01 +08:00
    1 、客户端的配置中的[Peer]中的 publickey 应该写服务端的公钥,就是你列出的那个  duV+ 开头的那个。
    2 、在客户端是否可以连接到 ipv6 的对端?可以 Ping 一下地址试试
    3 、iptables 的规则中确实可以去掉 -o  那个选项试试。
    tediorelee
        11
    tediorelee  
    OP
       2022-10-21 23:21:11 +08:00
    @muhahaha 这个我也不太懂了
    aphorism
        12
    aphorism  
       2022-10-21 23:22:06 +08:00   ❤️ 1
    @muhahaha

    Openvpn 一般采用 AES 做加密,WireGuard 协议使用 Chacha20-Poly1305 ,后者在一般的没有 AES 指令集的 Arm 处理器上速度几乎比前者要高一个数量级。
    tediorelee
        13
    tediorelee  
    OP
       2022-10-21 23:29:01 +08:00
    @aphorism
    @vigidroid 感谢各位大哥,又重新试了一下,client 端 pubkey 换成了正确的那个,防火墙规则中删掉了- o 的字段,重启接口之后能够连接上了, respect!
    wlxb2019
        14
    wlxb2019  
       2022-11-12 18:07:18 +08:00 via iPhone
    @tediorelee 我的 op 路由器只有 IPv6 公网 IP 地址,IPv4 地址是大内网,我的设置跟你一样,我在 iPhone 上连接不通
    tediorelee
        15
    tediorelee  
    OP
       2022-11-12 19:48:09 +08:00
    @wlxb2019 如果所有配置都跟我一样的话应该是能够使用的才对呀,多检查一下配置呢
    wlxb2019
        16
    wlxb2019  
       2022-11-13 16:09:51 +08:00
    @tediorelee 是跟你的配置方法和思路是一样的啊。我现在是通过翻墙实现了 vpn 功能,效果一样,但不是 VPN ,我觉得很恶心,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 16:20 · PVG 00:20 · LAX 08:20 · JFK 11:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.