tcptun

常见问题

常见问题

安装、Native 载体、路由,以及 Android / CLI 版本拆分的运维解答。

常见问题

常见问题

01能直接使用 Xray 配置文件吗?

不能。tcptun 使用自己的 JSON 拓扑。隧道端点是 native;mixed 与 socks5 用于本地/局域网代理跳。

02什么是 native 协议?

native 是 tcptun 互连的私有隧道协议。典型路径是本地 mixed → native 出站 → native 入站 → direct,users[].id 与 token 必须匹配。完整教程见 Native 指南。

03如何跑通第一条 native 隧道?

安装 tcptun,运行 tcptun config native --server <host> --port <port>,编辑生成的服务端/客户端地址与 token,用 tcptun config check 校验,先启动服务端再启动客户端,应用指向 127.0.0.1:1080。

04隧道协议该怎么选?

互连请使用 native,用于吞吐、mux、QUIC、反向发布和 Reality/TLS 载体。mixed 与 socks5 仍用于本地/局域网代理跳。

05如何校验配置?

运行 tcptun config check --config config.json。它会校验并编译,但不监听端口。

06一键安装把二进制放哪,如何钉版本?

默认安装到 /usr/local/bin。用 TCPTUN_INSTALL_DIR 改目录,用 TCPTUN_VERSION 钉版本。安装器从已发布的 npm 包下载平台二进制(cdn.jsdelivr.net/npm/tcptun)。

07支持哪些平台?

macOS、Linux 和 Windows 的 amd64 / arm64(Linux 另含 armv7)。CLI 推荐 npm install -g tcptun 或一键安装器。

08native token 如何配置?

服务端 users[].id 必须等于客户端 token。用 tcptun config native 生成配对配置。

09v0.3.0 的 native + raw + reality 是什么?

这是自动双载体栈:type=native、transport raw、启用 mux、security.type=reality、carrier.mode=auto。服务端在同一地址绑定 TCP 和 UDP;客户端优先 Reality QUIC,失败则回退 Reality TCP 并探测恢复 QUIC。伪装密钥/SNI/dest 由两种载体共享。没有 mux 时 Reality 保持仅 TCP。

10如何选择 carrier.mode?

carrier.mode=auto(生成器默认)在同一地址上绑定 TCP 和 UDP,配合 TLS 或 REALITY。出站 carrier.prefer 为 adaptive(默认)、quic 或 tcp — 严格偏好使用健康的首选载体,仅在不可用时回退。mode=tcp 或 mode=quic 是单一载体。auto 与 quic 必须启用 mux。

11什么时候该启用 mux 或 QUIC?

大量短连接时优先 mux.enabled。v0.3.0 起,native + raw + mux + reality 且 carrier.mode=auto 会优先 QUIC 并回退 Reality TCP。用 carrier.mode=tcp 强制 TCP,或 carrier.mode=quic 强制 QUIC 且无回退。

12可恢复流如何工作?

在 raw + mux + security.type=reality + carrier.mode=auto 的两端设置 mux.resume=true。物理 QUIC/TCP 载体失败后,符合条件的 TCP 逻辑流可以重新附着。它不覆盖 UDP、反向发布、强制 tcp/quic-only 模式或跨进程故障转移;滚动升级期间请关闭,直到两端都运行 v0.3.0 或更新版本。

13什么是 TLS 透传 fallback?

security.type=none 的 native raw TCP 入站可设置 fallback.type=tls_passthrough,把匹配 SNI 的普通 HTTPS 探测转发到固定 dest,同时认证 native mux 流量。这是仅入站伪装,不是 REALITY,也不加密 native 载荷。

14什么是 Native ECH ClientHello 保护?

当 security.type=none 且 client_hello.type=ech 时,隧道只能隐藏被携带的 TLS 1.3 ClientHello 的 SNI(tcptun config native --ech)。后续应用字节仍走 security-none 路径;这不是到目标站点的完整应用层 ECH。

15REALITY 能和 TLS 一起用吗?

不能。REALITY 只与 raw 配合,不能与 security.type=tls 组合。

16address 字段应如何写?

入站和出站的 address 都是 host:port 字符串数组。多个地址是同一逻辑服务的候选入口,首次握手会竞速;它们不是 balance 负载均衡。

17什么是反向发布?

native + raw + mux(group 或 QUIC)可以把 NAT 侧 TCP/UDP 服务发布到服务端:服务端配置 publish,客户端配置 expose,服务名必须一致。

18浏览器生成配置安全吗?

密钥与凭证用 Web Crypto 在本地生成,不会上传。也可以用 CLI:tcptun config <protocol> --server …。

19如何从其他代理配置迁过来?

请重建为 native(或把 mixed/socks5 仅用于本地跳)。tcptun 不会把 Xray JSON 或其他厂商分享链接当作隧道端点加载。

20不提供配置文件时会发生什么?

tcptun 从不在当前目录搜索 server.json、client.json 或 config.json。没有 --config 时,它会预占 127.0.0.1:1080,扫描私有 IPv4 局域网中 SOCKS5:1080,首次握手成功后启动 mixed 代理。--retry 会保留监听并重试发现;不能与 --config 同时使用。

21如何在出站之间负载均衡和切换?

用 balance 出站按权重和 affinity_ttl 组合成员。单个出站上的多个地址只是同一服务的候选入口竞速,不是负载均衡。可嵌入 Runtime 与 Android bridge 也支持对已声明出站的 start/stop、探测和原子切换。

22Android 应用是否对应 CLI v0.5.0?

Android 客户端 v0.5.1 内嵌 tcptun-go v0.5.0(Bridge API 3),与 CLI 核心一致。隧道对端请保持 v0.5.0。Android VPN 配置需要 TLS 或 REALITY,且仅为 Full Tunnel;Reverse Subnet / P2P 是 CLI/服务端能力,应用未暴露。