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

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

  •  
  •   cyrker · 8 天前 · 2874 次点击

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

    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 里的电影都很不理想,想问下各位大佬有哪里可以优化,或者有什么更好的方案吗?

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

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

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

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

    换 ipsec esp 三层(网络层)封装可以完美承载 tcp/udp 同时避免 qos.
    VwEI
        37
    VwEI  
       4 天前
    http 伪装白名单
    AlphaTauriHonda
        38
    AlphaTauriHonda  
       9 小时 25 分钟前 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2551 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:30 · PVG 23:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.