V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bigbigpeng3
V2EX  ›  WireGuard

wireguard 如何回家再科学?

  •  
  •   bigbigpeng3 · 2023-06-06 19:29:20 +08:00 · 7400 次点击
    这是一个创建于 571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前的配置是

    家里没有公网 IP

    1 台国内 VPS 作为 Wireguard 服务器

    家里 1 台软路由搭建了 openwrt 搭建了 openclash 科学,以及 wireguard 转发请求,让外面的设备可以访问局域网。

    目前的想法是想在外面直接通过 wireguard 实现回家并通过 openwrt openclash 科学。

    目前的状态是 可以回家并访问家里的局域网设备。对于怎么科学这部分有点没有头绪。求大佬们指点迷津!

    第 1 条附言  ·  2023-06-07 17:16:07 +08:00
    感谢各位大佬的回复,我也一直在找自己合适的方式。

    我现在的状态是

    家里没有公网 IP
    1 台公网 VPS 作为 wireguard server/gateway 转发内网请求
    家里一台 Linux 作为一个 wireguard peer 转发内网请求,同时搭配了 clash 以及 DNS 代理。可以作为透明网关科学。

    目前觉得可行方案有

    1 #15 楼 vps frp 映射家里的 Linux 作为 wireguard server ,然后出门在外的设备直接 wireguard 全局回家。按道理是可行的。但是因为要重新搞一套 server 方案。目前放弃。

    2 #17 #18 楼 Clash.meta 方案。目前测试成功。这套方案客户端开一个代理软件即可。而且折腾下来比较流畅。

    3 Wireguard through all traffic to peer. 流量全部交给某一个客户端代理,这套方案是我最初始的想法。折腾了最多的时间,没有成功。后续会继续关注。


    对于 2 方案,下面给出具体的一些资料,以及注意点。

    具体原理就是 clash.meta proxy 里面加上你的 wireguard 节点。在 mac 上我试过 clash/clash pro ,连接 wireguard 没有成功。所以使用 clash.meta 。也有可能是我使用 /配置问题。

    mac 端 app
    https://github.com/MetaCubeX/ClashX.Meta/releases

    iOS 端 app(导入配置太大,会导致 app 特别卡)
    https://t.me/meta_for_ios
    为什么不使用小火箭? Stash ?因为可能后续会分享给别的朋友使用。不想使用付费的 App 。所以付费的 app 都没有测试。

    小注意点:
    建议使用 Clash.meta 的事例配置,里面包含了基础配置,以及 wireguard 事例配置。
    https://wiki.metacubex.one/example/

    配置文件需要修改一下你的 wireguard 网络,以及你的内网,让 wireguard 去代理。
    比如我的是 10.0.0.1/24 192.168.1.1/24

    - IP-CIDR,10.0.0.0/8,wireguard,no-resolve
    - IP-CIDR,192.168.0.0/16,wireguard,no-resolve
    26 条回复    2024-11-06 10:59:57 +08:00
    lhbc
        1
    lhbc  
       2023-06-06 19:33:59 +08:00 via Android
    那访问科学的网站的数据链路就变成
    手机-->VPS-->家-->家里的 clash-->科学节点-->最终目标
    不怕延迟爆表吗
    这里几乎每一环节都封装了另一层协议
    bigbigpeng3
        2
    bigbigpeng3  
    OP
       2023-06-06 19:38:33 +08:00
    @lhbc 我目前买的国内的 VPS ,有时候远程控制家里的电脑,延迟可以接受,ping 家里的设备 20ms 左右。科学 150ms 左右。主要想试试看看,这样回家 科学就一起了。。。哈哈哈哈,奇怪的需求。
    bigshawn
        3
    bigshawn  
       2023-06-06 19:39:16 +08:00 via iPhone
    既然已经通了,那就直接代理填 openclash 所在设备的 IP+端口不就行了。
    bigbigpeng3
        4
    bigbigpeng3  
    OP
       2023-06-06 19:48:33 +08:00
    @bigshawn 感谢🙏,这个思路电脑确实可以,iphone/android/ipad 移动设备好像只能开一个 VPN ,这些设备如何处理呢
    bigbigpeng3
        5
    bigbigpeng3  
    OP
       2023-06-06 19:51:14 +08:00
    我看到之前有个帖子讨论过这种问题

    https://v2ex.com/t/920102
    /t/920102

    里面大佬有提到说:
    “家里开个 wireguard ,内网网段走 wg proxy ,外网走你的机场”

    没太看明白,这种情况,wireguard 怎么配置?
    Jays
        6
    Jays  
       2023-06-06 19:52:26 +08:00
    @lhbc
    我的比他貌似还复杂
    双线 电信+移动

    电信 op 拨号 wireguard 回家正常
    移动 旁路 op 光猫拨号

    手机-->电信家-->家里移动 clash-->科学节点-->最终目标

    不知能不能实现,主要是有的时候,wireguard 和 clashAndroid 没办法同时开启。
    bigbigpeng3
        7
    bigbigpeng3  
    OP
       2023-06-06 19:56:22 +08:00
    @bigbigpeng3 还是说就是 wireguard 和机场分别开 VPN 。我目前就是这种方案。但是开一个 VPN ,另一个 VPN 就会关闭掉。
    bigshawn
        8
    bigshawn  
       2023-06-06 19:57:38 +08:00 via iPhone
    @bigbigpeng3 加一个 sock5 或者 http 节点咯,如果有其他需求还可以规则搞起来,套娃嘛。
    bigshawn
        9
    bigshawn  
       2023-06-06 20:02:34 +08:00 via iPhone
    @bigshawn 看错了,你是用 wireguard 连回家的,要用规则得 surge ,没有的话 wireguard 规则比较弱,建议一把梭,全局回家得了。
    bobryjosin
        10
    bobryjosin  
       2023-06-06 20:04:52 +08:00
    简单粗暴,家里开两个 wireguard 接口,接口 A 与 vps 互联,在 vps 转发 openwrt B 接口的端口,客户端连接 vps 上转发的端口就可以了,客户端路由全部流量到 openwrt ,隧道套隧道,不过我自己的话是单独开一台虚拟机当 wireguard 服务器,openwrt 就当一个纯网关。
    cinhoo
        11
    cinhoo  
       2023-06-06 20:10:16 +08:00
    clash 走 wireguard 协议
    XIU2
        12
    XIU2  
       2023-06-06 20:15:55 +08:00
    问下,在家里搭建 Wireguard ,然后在外面链接家里的 Wireguard (当然人还是在国内),会不会有什么风险,比如运营商不允许、或者被攻击什么的?
    xpn282
        13
    xpn282  
       2023-06-06 20:20:27 +08:00
    @bigbigpeng3
    我就是那个小火箭贴的 op

    看来还是有公网 ip 好啊,不用折腾那么多。
    直接小火箭解决全部。完美分流。
    zbinlin
        14
    zbinlin  
       2023-06-06 21:20:29 +08:00
    你将 openwrt 的 wireguard 作为 server ,在 vsp 直接转发 wiregaurd 的 UDP 端口不就行了。
    zbinlin
        15
    zbinlin  
       2023-06-06 21:27:02 +08:00
    注:上面的方需要两个 wireguard 连接,一个是 vps <-> openwrt ,另一个是 外面的设置 <-> openwrt 。

    另一种方式是 vps <-> openwrt ,然后在 vps 上转换 openclash 的 stream 到 openwrt 上,然后外面的设备连接 vps 上的转发端口
    locoz
        16
    locoz  
       2023-06-06 22:05:50 +08:00
    @bigbigpeng3 #5 为什么是配置 wireguard ?你不是已经完成了 wireguard 的配置,让外网设备能连入内网了吗?在已在网关上做了透明代理的情况下,你只需要将 wireguard 分配给外网设备的 IP 也加入转发就行了,和内网设备的处理没有什么区别,甚至 openclash 不能自动做到这个效果让我有点诧异。
    CuteKitten
        17
    CuteKitten  
       2023-06-07 06:15:22 +08:00 via Android
    没必要非得绕回去上网吧,你这样配置国内的连接也绕回去了,还不如把出口放到国内 vps 上。
    clashmeta 把规则写好,内网走 wg ,国外走节点,国内走直连,这不比绕回去再上网快多了。
    yuchenr
        18
    yuchenr  
       2023-06-07 07:35:06 +08:00
    我是用 WireGuard 全局回家。
    wg 和 clash 在同一台机器上,wg 的接口做的 nat 。
    clash.meta tun 模式,auto-route 。

    为了减少绕路,建议在 wg 的入口和 clash 的出口在一个网段。
    yuchenr
        19
    yuchenr  
       2023-06-07 07:43:08 +08:00
    家里没公网的话:
    外部设备直连 vps ,然后再用 clash 分流,国内通过 VPS 直接出,科学和家里的网段在 clash 里分流给家里的 openclash (走 wg )
    bigbigpeng3
        20
    bigbigpeng3  
    OP
       2023-06-07 17:19:51 +08:00
    @CuteKitten @yuchenr 感谢回复,你们的方案目前折腾起来比较流畅!
    gray0128
        21
    gray0128  
       2023-06-09 22:07:36 +08:00
    tailscale 的 Exit Node
    xiaofami
        22
    xiaofami  
       312 天前
    如果不限定 wireguard 且家里有公网 IP ,使用 openconnect 最简单。举个例子,家里内网是 192.168.1.0/24 , DHCP 范围为 192.168.100 - 192.168.1.200 , openconnect 服务端开启 proxy arp ,分配 192.168.1.80/28 IP 段 (占用 10.89.1.80-10.89.1.95 地址,实际可用 14 个 IP 地址,由 openconnect 服务端管理分配),DNS 服务器填写运行 ocserv 的 openwrt 自身地址( openwrt 上同时运行了 clash )。这样通过 openconnect 连回家后既能访问内网设备又能通过 clash 出国,非常便利
    qike006
        23
    qike006  
       123 天前
    @bigbigpeng3 楼主的方案 2 是如何配置的?还有具体的记录吗?测试了很多次一直有问题。
    bigbigpeng3
        24
    bigbigpeng3  
    OP
       123 天前
    @qike006 1 在 config 文件里面加上你 wireguard 的配置,作为其中一个节点。
    2 按照你的 wireguard 分配的 IP ,以及你联通的内网的 IP ,将下方的 IP 改为你自己的加到 config 文件
    - IP-CIDR,10.0.0.0/8,wireguard,no-resolve
    - IP-CIDR,192.168.0.0/16,wireguard,no-resolve
    后续只要匹配上的流量,会自动走 wireguard 。
    3 最好用 clash.meta 之类的,可以支持 wireguard 协议的。改完重新加载配置。时间太久远了,目前只记得这枚多了
    ciichen
        25
    ciichen  
       53 天前 via iPhone
    刚刚搞定了,记录一下
    1. openwrt 的 dns server 监听接口包含 wireguard 的接口。
    2. openwrt wireguard 防火墙区域,设置转发到 wan/lan ,允许来自 lan 转发。入站/出站/转发都接受。
    3. 客户端的 wireguard (手机等),设置 dns 为 openwrt lan 地址。配置对端可路由地址为全部公网地址段,lan 地址段,wireguard 地址段。
    bigbigpeng3
        26
    bigbigpeng3  
    OP
       52 天前
    @ciichen 牛逼,给后面的人一种方案吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   926 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:53 · PVG 05:53 · LAX 13:53 · JFK 16:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.