Th0rgal/satmux
运维与部署面向高延迟 GEO 机上 Wi-Fi,用预热的 BBR TCP 多路复用和 1-RTT TLS 中继加速网页与 API 访问。
项目介绍
satmux 针对非 Starlink 机上 Wi-Fi 的几个具体问题:机舱 :443 中间设备在负载下重置连接、DNS 被劫持、每个 GEO 往返约 620 ms 的握手开销,以及丢包导致的 Cubic 拥塞窗口反复减半。它在卫星出口附近的小型 Linux VM 上运行服务端,从笔记本保持 12 条预热的非 443 TCP 通道连到该 VM,绕开机舱代理。本地 SOCKS5(127.0.0.1:1080)和 HTTP CONNECT(127.0.0.1:8080)端点在 1 ms 内本地返回 OK,把流打开请求与 TLS ClientHello 合并在同一个 TCP 突发中;127.0.0.1:8081 路径则由地面端完成 DNS、校验过的 TLS 1.3 和重定向,再用 zlib 压缩明文响应后穿过卫星链路。地面到客舱的套接字启用 BBR 和 MSS 1280,另有 0600 本地 Unix socket 用于把 gh CLI 流量接入。项目完全基于 Python 3 标准库,无外部依赖。
快速使用
需要一个靠近卫星下行落地点的 Linux VM(Python 3.9+,开放 TCP 端口 8444),以及有效的付费客舱 Wi-Fi 会话。先在原始客舱 Wi-Fi 上运行 curl ipinfo.io,确认出口国家或 ASN,再选择 VM 区域。
笔记本上生成预共享密钥:
git clone https://github.com/Th0rgal/satmux.git && cd satmux
openssl rand -hex 32 > mux.psk && chmod 600 mux.psk
把 satmux.py 和密钥传到服务器并启动:
scp satmux.py mux.psk root@<SERVER_IP>:/root/
ssh root@<SERVER_IP> 'nohup env SATMUX_PSK=$(cat /root/mux.psk) python3 /root/satmux.py server --port 8444 >/var/log/satmux.log 2>&1 &'
笔记本上启动客户端并开启 macOS、git、gh 路由:
SATMUX_PSK=$(cat mux.psk) python3 satmux.py client --host <SERVER_IP> --port 8444 --carriers 12 &
./bin/satmux-macos on <SERVER_IP>
之后可以跑基准或并行分段下载:
./bin/satmux-bench
./bin/satmux-get https://example.com/archive.tar.gz
落地后执行 ./bin/satmux-macos off,恢复 macOS Wi-Fi 代理、~/.gitconfig、gh 的 http_unix_socket 和 launchctl 环境变量,然后销毁临时 VM。按资料中的 Inmarsat GX Ka 波段实测(约 620 ms RTT),六源突发从 19.13 s、3 个失败降到 5.35 s、0 个失败。
使用约束
- GEO 物理延迟下限约 580–650 ms 不会改变;satmux 减少的是额外往返,不是一次轨道跳的延迟。
- 每席位限速(典型 4–5 Mbps)仍会限制
.mp4、.zip这类已压缩二进制;zlib 主要改善 HTML、JSON、代码和 API 流量。 - 使用你已认证的客舱 Wi-Fi 租约,不绕过强制门户。
- 安装步骤和
satmux-macos辅助脚本面向 macOS 客户端,地面端是 Linux VM。 - 飞行期间应暂停 Tailscale、WireGuard 等 UDP VPN,被阻断的 UDP 重试会占用客舱空口时间。
HotRepo 点评
该项目在 2026-11-07 进入 HotRepo 新项目榜,从增长窗口开始约 3.5 小时内记录到 124 Star、3 Fork。只有这一条单次快照,无法用同口径时间序列判断热度走势,也没有记录到 GitHub 全语言日榜名次。从已有材料看,值得关注的是它聚焦的场景、在真实 Inmarsat GX 链路上的基准,以及基于标准库的实现和明确列出的性能上限,而不是泛泛的加速宣传。它适合需要在卫星 Wi-Fi 上写代码或浏览网页的人,不是通用网络加速器。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。