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

WireGuard 远程组网的问题

  •  
  •   blueboyggh · 2022-08-05 09:41:19 +08:00 · 3727 次点击
    这是一个创建于 836 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我家里有一台 Ubuntu 的服务器,我想在外网连接到服务器上去,想使用 WireGuard ,家中网络有公网 IP

    现在服务器已经安装好了 WG ,外网也能连上去了,但是目前的配置是外网终端的所有流量都走 WG 了,如果我想外网终端只有访问家里服务器的时候才走 WG ,其他流量还走原有网络,应该怎么设置?

    以下是我的外网终端配置:UBUNTU 服务器的 WG 地址是 192.168.190.1

    [Interface] PrivateKey = XX Address = 192.168.190.2/32 DNS = XX

    [Peer] PublicKey = XX PresharedKey = XX AllowedIPs = 0.0.0.0/0 (这里我尝试过改成 192.168.190.0/24 ,这样确实流量走原有网络了,然而并 ping 不通 192.168.190.1 ) Endpoint = XX

    具体应该怎么修改设置或者做其他的配置呢?

    25 条回复    2022-08-05 14:30:18 +08:00
    dcty
        1
    dcty  
       2022-08-05 09:47:40 +08:00 via Android   ❤️ 1
    有公网直接弄个 ss 也行
    blueboyggh
        2
    blueboyggh  
    OP
       2022-08-05 09:51:28 +08:00
    @dcty ss 的话,我外网终端还要科学的,会冲突吧
    dcty
        3
    dcty  
       2022-08-05 09:58:47 +08:00
    @blueboyggh #2
    不会的,直接分流就好了。
    DOMAIN,google.com,翻墙节点
    ....
    IP-CIDR 192.168.0.0/16,SS_Home
    IP-CIDR 10.0.0.0/8,SS_Home
    IP-CIDR 172.16.0.0/12,SS_Home
    blueboyggh
        4
    blueboyggh  
    OP
       2022-08-05 10:01:29 +08:00
    @dcty 谢谢,我用的是 V2ray ,而且是浏览器插件分流的,所以 SS 这种可能还是不太适合我
    dcty
        5
    dcty  
       2022-08-05 10:08:17 +08:00
    @blueboyggh #4
    好的。
    但是我想说的是,v2ray 的分流规则也是可以这么干的。
    blueboyggh
        6
    blueboyggh  
    OP
       2022-08-05 10:13:08 +08:00
    @dcty 嗯,我明白,主要是我怕配置错了,然后国内流量也科学了
    yyysuo
        7
    yyysuo  
       2022-08-05 10:18:14 +08:00   ❤️ 1
    你家里的分流规则做好,在内网的任意一台设备上搞个 wireguard ,就算所有的流量都回家,也是分流好的啊。我现在就直接用 vpn 回家。
    blueboyggh
        8
    blueboyggh  
    OP
       2022-08-05 10:19:39 +08:00
    @yyysuo 所有流量都回家,我外网终端访问互联网就要绕一次家里,速度就慢了啊
    SenLief
        9
    SenLief  
       2022-08-05 10:26:14 +08:00
    没太看懂,你家里用公用 IP ,那直接用外网的链接服务器不就好了嘛?外网和家里没必要打隧道吧。
    6IbA2bj5ip3tK49j
        10
    6IbA2bj5ip3tK49j  
       2022-08-05 10:30:58 +08:00   ❤️ 1
    allowed ips 那儿填写你 ubuntu wg ip 和内网网段。
    举例:
    allowed ips: 192.168.255.1/32, 192.168.2.0/24,
    spirit1002
        11
    spirit1002  
       2022-08-05 10:35:39 +08:00   ❤️ 1
    `这里我尝试过改成 192.168.190.0/24 ,这样确实流量走原有网络了,然而并 ping 不通 192.168.190.1 )`

    同时要把上面的 Address 从 192.168.190.2/32 改成 192.168.190.2/24
    blueboyggh
        12
    blueboyggh  
    OP
       2022-08-05 10:43:05 +08:00
    @SenLief 主要是我还想连上家里的 NAS
    SenLief
        13
    SenLief  
       2022-08-05 10:52:59 +08:00   ❤️ 1
    @blueboyggh 你家里有公网 ip ,那只需要在路由器配置 upnp 或者自己端口映射就可以了。
    Tink
        14
    Tink  
       2022-08-05 10:54:43 +08:00 via Android   ❤️ 1
    路由表有点问题吧,应该是你家里内网的路由信息在最上面,然后指定下一跳走 wireguard ,其他的路由信息在这个后面,默认就行
    mcluyu
        15
    mcluyu  
       2022-08-05 11:04:04 +08:00   ❤️ 1
    建议把 WG 的子网和你的服务器局域网分开网段, 我之前也是全设一个网段没搞通,不一定是这个问题但是可以试一下, 我的客服端配置:

    [Interface]
    PrivateKey = XXX
    Address = 10.10.10.2/32
    DNS = 114.114.114.114

    [Peer]
    PublicKey = XXXX
    PresharedKey = XXXX
    AllowedIPs = 192.168.31.0/24, 10.10.10.1/24
    Endpoint = XXXX
    PersistentKeepalive = 25
    blueboyggh
        16
    blueboyggh  
    OP
       2022-08-05 11:16:26 +08:00   ❤️ 1
    @SenLief 端口映射的话,SMB 共享用不了,又不想把 SMB 暴露到公网
    blueboyggh
        17
    blueboyggh  
    OP
       2022-08-05 11:16:35 +08:00
    @spirit1002 好像可以了,感谢!
    yyysuo
        18
    yyysuo  
       2022-08-05 11:17:37 +08:00
    @blueboyggh wireguard 就是全局的,配规则很麻烦,所以建议你用 ss 或者 v2ray 什么的,默认的规则就可以。
    villivateur
        19
    villivateur  
       2022-08-05 11:32:03 +08:00   ❤️ 1
    服务端有个 Route Allowed IPs 选项,如果客户端要访问同一个服务器的其他网段,建议也开一下
    me221
        20
    me221  
       2022-08-05 11:41:55 +08:00   ❤️ 1
    AllowedIPs = 你的 wg 网段,你的家庭网段

    就可以了

    WireGuard 组网教程: https://www.procustodibus.com/blog/2020/11/wireguard-point-to-site-config
    yohole
        21
    yohole  
       2022-08-05 12:04:42 +08:00   ❤️ 1
    你这个问题我这两天刚解决了,看下我说的对不对
    1.wireguard 只能解决都有有安装 wireguard 软件的终端组网,形成一个局域网,任何没有安装 wireguard 客户端的终端想通过公网 IP 访问 wireguard 内网,这个很简单,本身就支持,只需要 iptable 设置端口转发就行

    2.如果不在 wireguard 内网的终端想访问 wireguard 内网中,任意一台服务器另外所在的局域网(暂时称为 eth0 网卡所在的网段吧),这个时候可以简单地在有公网 IP 的那台服务器简单搭建一个 SS 或者 tinyproxy 都可以解决

    3.然后通过设置 AllowedIPs ,以增加路由表的方式也是可行,但是有很多限制和灵活度不高,有一些需求实现不了,所以我觉得有公网 IP 的话,其实不用 wireguard 都行,直接搭建 SS 之类的就好
    blueboyggh
        22
    blueboyggh  
    OP
       2022-08-05 12:33:50 +08:00
    @yohole 感谢,用楼上那个把 Address 也改成 /24 的方法已经成功了,不过还是很感谢
    bjfane
        23
    bjfane  
       2022-08-05 13:55:43 +08:00   ❤️ 1
    32 就是一个具体的 ip, 24 就是这个网断, 在 wg 叫 remote access to lan.
    zhixiao
        24
    zhixiao  
       2022-08-05 14:19:35 +08:00   ❤️ 1
    我是通过 surge 分流配置的
    pcbl
        25
    pcbl  
       2022-08-05 14:30:18 +08:00 via Android   ❤️ 1
    统一走家里服务器也不算慢(感觉是不慢),顺便还能共用软路由的梯子。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3615 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:46 · PVG 08:46 · LAX 16:46 · JFK 19:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.