logo NodeSeekbeta

【教程】使用usque为纯IPv6的小鸡添加IPv4出口,防止送中,摆脱笨重的warp-cli和warp-svc

123
  • 学习

  • 原理是什么?

  • @CM #14 ok,修改了一下代码,我这边的alpine环境跑通了,你这边可以测试一下

  • 安装完,之后需要更新或怎么样么

  • @chevis #16
    需要更新的话再执行一下脚本,不需要更新就不用了

  • 支持佬...

  • 创建连线成功脚本:

    sudo tee /usr/local/sbin/usque-ipv4-route-up >/dev/null <<'EOF'
    #!/bin/sh
    set -eu
    
    IFACE="${USQUE_IFACE:-tun0}"
    
    /usr/sbin/ip -4 link show dev "$IFACE" >/dev/null 2>&1
    /usr/sbin/ip -4 route replace default dev "$IFACE" metric 50
    
    /usr/bin/logger -t usque-route \
      "IPv4 default route installed via ${IFACE}, endpoint=${USQUE_ENDPOINT:-unknown}"
    EOF
    
    sudo chmod 755 /usr/local/sbin/usque-ipv4-route-up
    

    创建断线清理脚本

    sudo tee /usr/local/sbin/usque-route-down >/dev/null <<'EOF'
    #!/bin/sh
    
    IFACE="${USQUE_IFACE:-tun0}"
    
    ip -4 route del default dev "$IFACE" metric 50 2>/dev/null ||
    ip -4 route del default dev "$IFACE" 2>/dev/null ||
    true
    
    logger -t usque-route \
      "IPv4 default route removed from ${IFACE}"
    EOF
    
    sudo chmod 755 /usr/local/sbin/usque-route-down
    

    修改楼主的usque.service 文件

    root@ip-172-26-4-164:~# systemctl cat usque.service
    # /etc/systemd/system/usque.service
    [Unit]
    Description=Usque Native Tunnel Service
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    #ExecStart=/usr/local/bin/usque -c /usr/local/etc/usque/config.json nativetun -6
    ExecStart=/usr/local/bin/usque -c /usr/local/etc/usque/config.json nativetun -6 --on-connect /usr/local/sbin/usque-route-up --on-disc>
    ExecStopPost=/usr/local/sbin/usque-route-down
    Restart=on-failure
    RestartSec=5
    User=root
    
    [Install]
    WantedBy=multi-user.target
    ...skipping...
    # /etc/systemd/system/usque.service
    [Unit]
    Description=Usque Native Tunnel Service
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    #ExecStart=/usr/local/bin/usque -c /usr/local/etc/usque/config.json nativetun -6
    ExecStart=/usr/local/bin/usque -c /usr/local/etc/usque/config.json nativetun -6 --on-connect /usr/local/sbin/usque-route-up --on-disc>
    ExecStopPost=/usr/local/sbin/usque-route-down
    Restart=on-failure
    RestartSec=5
    User=root
    
    [Install]
    WantedBy=multi-user.target
    

    然后清理掉ipv42tun.service -> sudo systemctl disable --now ipv42tun.service.
    重新启动systemctl restart usque.service 这样,可以一个服务去搞定ipv4 默认路由的注入和撤销。
    运行逻辑:

    Lightsail 原生 IPv6
      ├─ SSH
      ├─ usque MASQUE IPv6 外层连接
      └─ Cloudflare WARP endpoint
             │
             ▼
    usque 首次连接成功
      └─ --on-connect
           └─ default dev tun0 metric 50
    
    usque 临时断线
      ├─ 保留 default dev tun0
      └─ IPv4 流量进入 tun0,触发重新连接
    
    usque 重连成功
      └─ --on-connect 再次校正默认路由
    
    systemctl stop/restart usque
      └─ ExecStopPost 删除旧 IPv4 默认路由
    
  • @子澄 #13 感谢大佬整理 我试试跑通了 f佬脚本 获取5次失败 这个一下就获取到了

123

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72269位seeker

🎉欢迎新用户🎉