以下是主流科学上网方法的最佳组合示例和优化配置(如果不太了解科学上网和部署,建议从简单到复杂逐步参考)。其特点如下:
-
实现了 V2Ray/Xray 应用(除与 Shadowsocks、mKCP 相关的应用外)可选择使用本地回环连接或 UDS(Unix 域套接字)连接。
-
实现了 Xray 应用(除与 mKCP 相关的应用外)的 SNI 分流连接,并在回落/分流连接中启用了 PROXY 协议支持。
-
实现了 V2Ray/Xray 与 Caddy 应用在使用 UDS(Unix 域套接字)连接时采用抽象模式,无需考虑 UDS 路径及监听进程的访问权限问题。
-
实现了 Xray 对接 Nginx 的 UDS(Unix 域套接字)连接(监听进程)采用附加访问权限形式,简单高效地解决了监听进程的访问权限问题。
-
实现了通过 JSON 配置 Caddy SNI 分流和定向 UDP 转发,可灵活决定是否对不同分流端口或进程开启 PROXY 协议发送。
-
实现了 Caddy 的所有 NaiveProxy 不仅支持 HTTPS 代理应用,还同时支持 HTTP/3 代理应用,即 QUIC 协议传输。
-
实现了由 Caddy 提供 TLS 证书的应用,其证书申请、更新及重载更新证书过程均可全自动化。
-
实现了正常应用与 CDN 流量中转(基于 WebSocket/HTTPUpgrade/gRPC/SplitHTTP over TLS)应用可同时使用,且使用 CDN 进行流量中转也能获取客户端真实 IP。
-
实现了服务端综合应用配置示例中所有非 TCP 传输方式的应用可删除、替换或增加,灵活修改而不影响整体使用。
-
实现了除 V2Ray/Xray 的 mKCP 应用及 Hysteria 应用外,其它应用对外均使用 TCP/UDP 443 端口,各应用互不影响。
-
实现了除 V2Ray/Xray 的 mKCP 应用及 Hysteria 应用外,其它应用均支持流量伪装与防探测,且提供流量伪装与防探测的网站都支持 HTTP 自动跳转到 HTTPS,SSL/TLS 安全评估报告为 A+(非 AES 算法的密码套件配置示例除外),即所有特征完全与真实网站一致。
服务端单一/简单应用配置示例
V2Ray/Xray 的 mKCP 应用
- V2Ray(VMess\VLESS+mKCP+seed)(VMess/VLESS+mKCP+seed 应用。VLESS+mKCP+seed 标记为 A。)
V2Ray/Xray 的反向代理 WebSocket 应用
- V2Ray(VMess+WebSocket)+Nginx\Caddy(VMess+WebSocket+TLS 应用。标记为 B。)
- V2Ray(SS+Door+WebSocket)+Nginx\Caddy(兼容 Shadowsocks 加 v2ray-plugin 插件的 websocket-tls 应用。)
- V2Ray(VLESS+WebSocket)+Nginx\Caddy(VLESS+WebSocket+TLS 应用。)
- V2Ray(Trojan+WebSocket)+Nginx\Caddy(Trojan+WebSocket+TLS 应用。)
V2Ray/Xray 的反向代理 H2C 应用
- V2Ray(VLESS+H2C)+Caddy(VLESS+H2C+TLS 应用。标记为 D。)
- V2Ray(Trojan+H2C)+Caddy(Trojan+H2C+TLS 应用。)
V2Ray/Xray 的反向代理 gRPC 应用
- V2Ray(VMess+gRPC)+Nginx\Caddy(VMess+gRPC+TLS 应用。)
- V2Ray(SS+gRPC)+Nginx\Caddy(兼容 Shadowsocks 加 v2ray-plugin 插件的 grpc-tls 应用。标记为 G。)
- V2Ray(VLESS+gRPC)+Nginx\Caddy(VLESS+gRPC+TLS 应用。)
- V2Ray(Trojan+gRPC)+Nginx\Caddy(Trojan+gRPC+TLS 应用。)
Xray 的 Trojan 回落应用
- Xray(Trojan+TCP+TLS)+Nginx(回落到 Nginx 的 Trojan+TCP+TLS 应用。标记为 F。)
- Xray(Trojan+TCP+TLS)+Caddy(回落到 Caddy 的 Trojan+TCP+TLS 应用。标记为 F。)
Xray 的 XTLS Vision 应用
- Xray(VLESS+Vision+TLS)+Nginx(回落到 Nginx 的 VLESS+Vision+TLS 应用。标记为 E。)
- Xray(VLESS+Vision+TLS)+Caddy(回落到 Caddy 的 VLESS+Vision+TLS 应用。标记为 E。)
Xray 的 REALITY H2/gRPC 应用
- Xray(VLESS+H2C+REALITY)(VLESS+H2C+REALITY 应用。标记为 K。)
- Xray(SS+gRPC+REALITY)(Shadowsocks+gRPC+REALITY 应用。)
Xray 的 REALITY Vision 应用
- Xray(VLESS+Vision+REALITY)(VLESS+Vision+REALITY 应用。标记为 M。)
- Xray(M+K)(以 REALITY Vision 为核心的嵌套应用。)
Xray 的反向代理 HTTPUpgrade 应用
- Xray(VMess+HTTPUpgrade)+Nginx\Caddy(VMess+HTTPUpgrade+TLS 应用。)
- Xray(VLESS+HTTPUpgrade)+Nginx\Caddy(VLESS+HTTPUpgrade+TLS 应用。)
- Xray(Trojan+HTTPUpgrade)+Nginx\Caddy(Trojan+HTTPUpgrade+TLS 应用。)
Xray 的反向代理 SplitHTTP 应用
- Xray(VMess+SplitHTTP)+Nginx\Caddy(VMess+SplitHTTP+TLS 应用。)
- Xray(VLESS+SplitHTTP)+Nginx\Caddy(VLESS+SplitHTTP+TLS 应用。)
- Xray(Trojan+SplitHTTP)+Nginx\Caddy(Trojan+SplitHTTP+TLS应用。)
Caddy的NaiveProxy与Trojan-Go应用
- NaiveProxy(Caddy+forwardproxy)(基于Caddy插件的NaiveProxy应用。标记为N。)
- Trojan-Go(Caddy+caddy-trojan)(基于Caddy插件的Trojan-Go应用。标记为T。)
- Caddy(N+T)(基于Caddy插件的NaiveProxy与Trojan-Go共存应用。)
Hysteria应用
- Hysteria(基于修改QUIC协议实现的双边加速代理应用。)
服务器端综合应用配置示例
以反向代理为核心的综合应用
- V2Ray(B+G+A)+Nginx(反向代理 WebSocket、gRPC 的综合应用。)
- V2Ray(B+D+G+A)+Caddy(N+T)(反向代理 WebSocket、H2C、gRPC 以及 NaiveProxy 与 Trojian-Go 的综合应用。)
以 XTLS Vision 为核心的综合应用
- Xray(E+B+G+A)+Nginx(回落到 Nginx 的综合应用。)
- Xray(E+B+G+A)+Caddy(回落到 Caddy 的综合应用。)
以 REALITY Vision 为核心的综合应用
- Xray(M+B+G+A)+Nginx(由 Nginx 提供证书的综合应用。)
- Xray(M+B+D+G+A)+Caddy(N+T)(由 Caddy 提供证书的综合应用。)
由 Nginx/Caddy 兼顾 SNI 分流实现 XTLS Vision 与 Trojan 回落为核心的综合应用
- Xray(E+F+B+G+A)+Nginx(由 Nginx 兼顾 SNI 分流的综合应用。)
- Xray(E+F+B+D+G+A)+Caddy(N)(由 Caddy 兼顾 SNI 分流的综合应用。)
由 Nginx/Caddy 兼顾 SNI 分流实现 REALITY Vision 与 Trojan 回落为核心的综合应用
- Xray(M+F+B+G+A)+Nginx(由 Nginx 兼顾 SNI 分流的综合应用。)
- Xray(M+F+B+D+G+A)+Caddy(N)(由 Caddy 兼顾 SNI 分流的综合应用。)
注意(以上所有示例):
- Xray 是 V2Ray(v4 版)的超集,包含其全部应用且配置完全兼容,还独有 XTLS Vision(主要解决 TLS in TLS 问题)、REALITY(主要解决基于 SNI 名单阻断问题)等一系列增强应用。
- V2Ray/Xray 示例中各应用都配置了禁用 BT。如不需要,参考 'V2Ray(Other Configuration)' 中 BT_config.json 示例删除相关配置。
- V2Ray/Xray 单一核心应用简记:A=VLESS+mKCP+seed、B=VMess+WebSocket+TLS、D=VLESS+H2C+TLS、E=VLESS+Vision+TLS、F=Trojan+TCP+TLS、G=Shadowsocks+gRPC+TLS、K=VLESS+H2C+REALITY、M=VLESS+Vision+REALITY。
- Caddy 插件单一应用简记:N=NaiveProxy(Caddy+forwardproxy)、T=Trojan-Go(Caddy+caddy-trojan)。
- 目前 Caddy 从 Let's Encrypt 或 ZeroSSL 申请的免费 TLS 证书默认为 ECC 证书。
- 基于安全原因,WebSocket 传输方式的应用目前仅推荐使用 CDN 进行流量中转。
- 使用 Xray 的用户推荐使用 HTTPUpgrade 传输方式的应用替代 WebSocket 传输方式的应用,功能相同且效率更高。
- 若 CDN 流量中转不支持 WebSocket/HTTPUpgrade、gRPC 通过,可使用 SplitHTTP 传输方式的应用替换来解决。
- 若使用不可信的 CDN 进行流量中转,推荐使用自带加密的 VMess 或 Shadowsocks 协议配置;否则推荐使用轻量的 VLESS 或 Trojan 协议配置。
- 综合应用配置示例中非 TCP 传输方式的应用怎么删、换、增,请参考'服务器端单一/简单应用配置示例'中对应示例。
- 流量伪装与防探测网站可由其它 Web 应用软件实现,其支持反向代理应用(反向代理 WebSocket/HTTPUpgrade、gRPC、SplitHTTP 及 H2C)与支持回落应用(提供 H2C server 及 HTTP/1.1 server 的 Web 服务)等取决于自身,其配置自行参考 Caddy 或 Nginx 对应示例。
- 支持本仓库中应用的 Caddy 程序文件已编译好,去本人 Releases 中下载即可。
- Trojan-Go 安卓手机客户端也可以去本人 Releases 中下载(末尾)。
systemd 服务配置示例
服务配置(配置软件服务由 systemd 管理。)
原版客户端配置示例
客户端配置(若使用第三方客户端参考即可。)
服务器端特殊应用配置示例
- V2Ray(Other Configuration) (V2Ray 或 Xray 的特色应用配置方法。)
- Caddy(Other Configuration) (Caddy 的特色应用配置方法。)
更新与贡献
- 根据科学上网软件的更新情况,不定期调整示例,如新增功能和应用等。
- 根据当前科学上网形势,不定期调整示例,如删除目前不安全或已被替代的应用等。
- 欢迎您提交PR,包括对现有配置示例的优化修订,或提交您自己使用的配置模板等。