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

用 WireGuard 连回家,速度非常不稳定

  •  
  •   cyrker · 48 天前 · 3769 次点击
    这是一个创建于 48 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,家里目前两条电信宽带

    A:1000M 下 50M 上,有公网 V4

    B:2000M 下 200M 上,有公网 V6

    我在家里弄了个 easy-wg ,配置文件如下

    volumes:
      etc_wireguard:
    
    services:
      wg-easy:
        image: ghcr.nju.edu.cn/wg-easy/wg-easy:15.0.0-beta.12
        container_name: wg-easy
        restart: unless-stopped
    
        environment:
          - INSECURE=true  # 允许 HTTP 访问 Web UI
    
        networks:
          wg-net:
            ipv4_address: 172.30.0.2
            ipv6_address: fd42:42:42::2
    
        ports:
          - "51820:51820/udp"
          - "51821:51821/tcp"
    
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
    
        sysctls:
          - net.ipv4.ip_forward=1
          - net.ipv4.conf.all.src_valid_mark=1
          - net.ipv6.conf.all.disable_ipv6=0
          - net.ipv6.conf.all.forwarding=1
          - net.ipv6.conf.default.forwarding=1
    
        volumes:
          - etc_wireguard:/etc/wireguard
          - /lib/modules:/lib/modules:ro
    
    networks:
      wg-net:
        driver: bridge
        enable_ipv6: true
        ipam:
          config:
            - subnet: 172.30.0.0/24
              gateway: 172.30.0.1
            - subnet: fd42:42:42::/64
    

    一般是直接通过 v4 连家里的 wg 的,但是 v4 的上传就 50M ,而且还在跑 PT 。有些时候会很卡

    所以想试试用腾讯云 200M 服务器中转一下家里的 IPv6 。

    于是乎在腾讯云上部署了 wg 客户端+easy-wg ,配置文件如下:

    volumes:
      etc_wireguard:
    
    services:
      wg-easy:
        image: ghcr.nju.edu.cn/wg-easy/wg-easy:latest
        container_name: wg-easy
        restart: unless-stopped
    
        environment:
          # VPN 公网访问域名或 IP (客户端用)
          - WG_HOST=xxxx
    
          # WireGuard 使用的端口
          - WG_PORT=12345
          # MTU
          - WG_MTU=1400
    
          # Web UI 登录密码
          - PASSWORD_HASH=$2a$10$
    
          # 分配给客户端的虚拟地址段
          - WG_DEFAULT_ADDRESS=10.99.99.x
    
          # 客户端使用的 DNS
          - WG_DEFAULT_DNS=192.168.99.1
    
          # 允许客户端访问的网段
          - WG_ALLOWED_IPS=192.168.99.0/24
    
          # Web UI 设置
          - TZ=Asia/Shanghai
          - UI_TRAFFIC_STATS=true
          - UI_CHART_TYPE=1
    
        ports:
          - "1234:1234/udp"   # WireGuard VPN 端口
          - "12345:12345/tcp"   # Web UI 管理端口
    
        cap_add:
          - NET_ADMIN
          - SYS_MODULE
    
        sysctls:
          - net.ipv4.ip_forward=1
          - net.ipv4.conf.all.src_valid_mark=1
    
        volumes:
          - etc_wireguard:/etc/wireguard
          - /lib/modules:/lib/modules:ro
    

    wg 客户端的配置文件如下

    [Interface]
    PrivateKey =xxxx
    Address = 10.8.0.3/24, fdcc:ad94:bacf:61a4::cafe:3/112
    #DNS = 223.5.5.5
    MTU = 1420
    
    [Peer]
    PublicKey = xxxx
    PresharedKey = xxxx
    AllowedIPs = 192.168.99.0/24
    PersistentKeepalive = 25
    Endpoint = mydomain:12345
    

    目前用下来发现,不管是直接链接家里的 V4 ,还是使用腾讯云 IP 为入口的 wg 链接

    测速还是看 EMBY 里的电影都很不理想,想问下各位大佬有哪里可以优化,或者有什么更好的方案吗?

    41 条回复    2025-05-20 02:43:44 +08:00
    wtks1
        1
    wtks1  
       48 天前
    腾讯云 200M ,是那个不限流量和邻居们共享 200 兆带宽的那个服务器吗?
    cyrker
        2
    cyrker  
    OP
       48 天前
    @wtks1 #1 对的,但是国内的好像还好 我 iperf 测了几次都跑的挺满的
    x4gz
        3
    x4gz  
       48 天前 via iPhone
    直接用 tailscale 吧
    blbno000
        4
    blbno000  
       47 天前
    WireGuard 基于 udp 协议,openvpn 基于 tcp 协议,实测 WireGuard 不如 openvpn 稳定
    xcodeghost
        5
    xcodeghost  
       47 天前
    很多 VPN 都默认使用 UDP ,这在国外没什么问题,速度快。但国内就不一样了,运营商对 UDP 各种不公开的限制。
    wayne630
        6
    wayne630  
       47 天前
    要套个 udp2raw 才稳定啊。不过在广东这招现在也只能是同一运营商才有效了,跨网跨省限速 2M
    Naples
        7
    Naples  
       47 天前 via Android
    客户端通过 v4 连接腾讯云,MTU 也要按 v6 的来,应该是 1412 ,然后各个出口再做下 clamp mss 兜底。
    cyrker
        8
    cyrker  
    OP
       47 天前
    @blbno000 #4 openvpn 感觉有点重了,wg 轻量一点
    @x4gz #3 有在用,这个 200M 的是在当 derp 服务器,但是速度也不是很好。
    @wayne630 #6 昨天测试了一下 udp2raw 用的参数是 --raw-mode faketcp --cipher-mode xor --auth-mode simple 效果不是很好,不知道是不是得改点啥,而且腾讯云北京和我家都是电信,iperf 测速还可以。
    @Naples #7 各个出口做下 clamp mss 是指腾讯云和家里的 debian 都要做 clamp mss 嘛?
    rulagiti
        9
    rulagiti  
       47 天前
    要么 wg 要么 op ,其它不考虑
    guanzhangzhang
        10
    guanzhangzhang  
       47 天前
    我之前也是 ecs 上 udp2raw ,开了三个进程,不一样的模式,每个地方一个模式不稳地就换另一个模式,然后后面远程家里手机速度不行,就换了 hadscale 了,直接打洞直链不受 ecs 木桶短板效应
    JensenQian
        11
    JensenQian  
       47 天前 via Android
    直接用 ss 回家
    基于 tcp 的试试看
    404not400
        12
    404not400  
       47 天前
    试试 ring.link
    qianxu2001
        13
    qianxu2001  
       47 天前
    你都跑 pt 了,pt 一旦吃满上行啥方案来都没用,开限速呗
    chapiom
        14
    chapiom  
       47 天前 via iPhone
    @blbno000 openvpn 是不是必须要公网 ip ,我电信有公网但是上传只有 30M ,限制在这个速度了。
    cyrker
        15
    cyrker  
    OP
       47 天前
    @JensenQian #11 是整个 本机->腾讯云->家里 debian 这条链路都换成 ss 嘛,还是只把腾讯云->家里 debian 这段换成 ss ?
    @qianxu2001 #13 没跑满的 腾讯云这条链路上传有 200M pt 只占了几十 M
    cyrker
        16
    cyrker  
    OP
       47 天前
    @404not400 #12 这个感觉没什么人提到过诶,是基于 UDP 的吗?
    CKR
        17
    CKR  
       47 天前
    家里搭 SS 服务端只开放 SS 的端口,DDNS 分别配置 V4 和 V6 的解析然后直连就行了,不跨境单纯在国内用基本上都不管你的(除了不同运营商之间的 QOS ,最近晚高峰跨网速度挺爆炸的)。
    richchang
        18
    richchang  
       47 天前   ❤️ 1
    所有 UDP 协议,包括 WireGuard ,都会被严重 QoS 。

    建议用 TCP 协议的方法,比如 SS 。

    没有公网 IP 的可以用我写的这个工具 https://github.com/kanshurichard/GoHomeEasy
    cyrker
        19
    cyrker  
    OP
       47 天前
    @richchang #18 正在尝试 SS ,家里分别有 v4 和 v6 的公网,想试试用腾讯云中转我的 v6 流量
    richchang
        20
    richchang  
       47 天前
    @cyrker 有公网 IPV4 肯定无脑 DDNS+TCP 协议( SS )连回家。

    IPV6 有时也会被严重 QoS ,只有 IPV4+TCP 是最稳的,而且都有公网 IP 了也没必要中转。
    cyrker
        21
    cyrker  
    OP
       47 天前
    @richchang #20 因为我本地实际上是没有 V6 的..所以我需要一个有 V6 并且带宽足够的来中转一下,V4 那条公网宽带的上传只有 50M ,并且大部分时间会在跑 PT ,所以我想用 V6 这条上传带宽比较大的来访问家里的内容
    richchang
        22
    richchang  
       47 天前
    @cyrker 没有公网 IP 的情况,您可以看看我写的这个方案,目前我测试可以实现和公网 IP 下一样的速度和 QoS: https://github.com/kanshurichard/GoHomeEasy
    cyrker
        23
    cyrker  
    OP
       47 天前
    @richchang #22 不是不是,是我「想要访问 Home 的设备」例如手机之类的 没有 IPV6 无法直连家里的 IPV6 公网,所以想用腾讯云的 V4 中转一下
    richchang
        24
    richchang  
       47 天前
    @cyrker 我的这个方案,全程只需走 ipv4 ,而且不需要公网 ip ,就能满足连回家里任意设备的需求,您可以看一下。
    ajyz
        25
    ajyz  
       47 天前
    之前也是用的 WireGuard ,因为硬路由支持作为服务器,但不知道从哪个版本开始,速度不稳定,不知道是路由器固件问题还是运营商问题,后来就改用 surge 的 ponte 了,发现同样是 udp 协议,ponte 稳得多,配置也简单,所以就一直用 ponte 了。之前用 WireGuard 为了避免同步规则后配置冲突,还用模块来避免,徒增麻烦
    cyrker
        26
    cyrker  
    OP
       47 天前
    @richchang #24 老哥这个项目,访问回家里的速度是受什么因素影响嘞,我现在这个方案主要是受腾讯云服务器的影响
    richchang
        27
    richchang  
       47 天前 via iPhone
    @cyrker 这个就是直连家里,和有公网 ip 时代是一样的,理论上只跟家里的上行速度有关。
    JensenQian
        28
    JensenQian  
       47 天前
    @cyrker 对,不过墙的话 ss 没事
    但是腾讯云那边可能会阻断的
    我不太知道,其他基于 tls 的协议的话腾讯云我感觉可能会阻断
    cyrker
        29
    cyrker  
    OP
       47 天前
    @JensenQian #28 我现在是家里部署 ss 服务端,腾讯云用 nginx 的 stream 模块来转发流量,好像这样不会被阻断?目前用着还 ok
    JensenQian
        30
    JensenQian  
       47 天前
    @cyrker 不过我还是提醒下你
    腾讯之前一堆人被封号就是因为拿来转发代理
    我的建议是别折腾
    cyrker
        31
    cyrker  
    OP
       47 天前
    @JensenQian #30 转发回家 不是出境也不行嘛?
    snylonue
        32
    snylonue  
       46 天前
    试试 tailscale ?虽然也是 wireguard 但是不知道为什么快得多
    msn1983aa
        33
    msn1983aa  
       46 天前
    用 cloudflare 的 zerotrust 创个 tunnel 连回去还挺不错的
    JensenQian
        34
    JensenQian  
       46 天前
    @cyrker 都不行,之前还有 frp 穿透被干的
    ,你搜下
    cyrker
        35
    cyrker  
    OP
       46 天前
    @snylonue #32 我也有在用的 晚高峰其实也非常爆炸..
    @JensenQian #34 先用着吧 反正是月付的机器
    Int100
        36
    Int100  
       44 天前 via iPhone
    wg 是 udp ,国内可能存在 qos 问题,tcp/udp 都是四层(传输层)协议.

    换 ipsec esp 三层(网络层)封装可以完美承载 tcp/udp 同时避免 qos.
    VwEI
        37
    VwEI  
       44 天前
    http 伪装白名单
    AlphaTauriHonda
        38
    AlphaTauriHonda  
       40 天前 via iPhone
    cyrker
        39
    cyrker  
    OP
       39 天前
    @AlphaTauriHonda #38 这个是不是就和 wg 一样,但是能抗 qos ?
    phenixc
        40
    phenixc  
       38 天前
    我家里有 v6 没有 v4, 有个 v4 的 4m 云服务器。采用的方案是 ss 回家
    家里和云服务器 tailscale 组网,通过 v6 直连。然后家里搭建一个 ss 节点监听 v6,云服务器搭建一个 ss 节点监听 v4 ,小火箭 fallback 策略 ss6 和 ss4,有 v6 的地方直接就 v6 回家,没有 v6 的地方自动切换 v4 中转回家。
    AlphaTauriHonda
        41
    AlphaTauriHonda  
       27 天前 via iPhone
    @cyrker 对的,还能过墙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1046 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:23 · PVG 07:23 · LAX 16:23 · JFK 19:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.