这里是分享怎么搭建主流科学上网的优化配置及最优组合示例(如是不太了解科学上网,建议先依次从简单到复杂参考及部署。),其特点如下:
- 实现了SNI分流使用Local Loopback连接或使用Unix Domain Socket(UDS)连接及启用PROXY protocol支持。
- 实现了反代使用Local Loopback连接或使用Unix Domain Socket(UDS)连接支持。
- 实现了回落/分流使用Local Loopback连接或使用Unix Domain Socket(UDS)连接及启用PROXY protocol支持。
- 实现了Caddy、V2Ray/Xray使用UDS连接时采用Abstract sockets模式(不需考虑文件路径及权限设置问题)。
- 实现了Nginx SNI分流(TCP转发)与定向UDP转发配合以支持SNI分流后的NaiveProxy HTTP/3代理应用。
- 实现了使用json配置Caddy SNI分流,且可针对分流端口或进程是否开启PROXY protocol发送。
- 实现了Caddy与相关应用的TLS证书申请与更新全自动化。
- 实现了服务端综合应用配置示例中使用mKCP、WebSocket、HTTP/2、gRPC传输方式的应用配置可删、可换、可增(REALITY H2/gRPC应用除外),灵活组合而不影响整体架构。
- 实现了正常应用与CDN流量中转(基于WebSocket over TLS或基于gRPC over TLS)同时使用。
- 实现了除V2Ray/Xray的mKCP应用与Hysteria应用之外,其它应用对外都使用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(Trojan+TCP+TLS回落Nginx应用。标记为F。)
- Xray(Trojan+TCP+TLS)+Caddy(Trojan+TCP+TLS回落Caddy应用。标记为F。)
Xray的XTLS Vision应用
- Xray(VLESS+Vision+TLS)+Nginx(VLESS+Vision+TLS回落Nginx。标记为E。)
- Xray(VLESS+Vision+TLS)+Caddy(VLESS+Vision+TLS回落Caddy。标记为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为核心的套娃应用。)
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(以VLESS回落Nginx为核心的综合应用。)
- Xray(E+B+G+A)+Caddy(以VLESS回落Caddy为核心的综合应用。)
以REALITY Vision为核心的综合应用
- Xray(M+B+G+A)+Nginx(由Nginx提供网站实现以REALITY Vision为核心的综合应用。)
- Xray(M+B+D+G+A)+Caddy(N+T)(由Caddy提供网站实现以REALITY Vision为核心的综合应用。)
由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分流实现的综合应用。)
由Nginx专职SNI分流实现兼顾各方优势的综合应用
- Xray(E+F+B+D+G+A)+Caddy(N)+Nginx(以XTLS Vision为核心的综合应用。)
- Xray(M+F+B+D+G+A)+Caddy(N)+Nginx(以REALITY Vision为核心的综合应用。)
注意(以上所有示例):
- Xray是V2Ray的超集,更好的整体性能和独有的XTLS Vision(主要解决TLS in TLS问题)、REALITY(主要解决基于SNI名单阻断问题)等一系列应用增强,且完全兼容V2Ray的v4版。
- 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)。
- 受限应用条件及场景,NaiveProxy的QUIC应用(即Caddy的HTTP/3代理应用)不是所有相关NaiveProxy示例都支持。
- 目前Caddy从Let's Encrypt或ZeroSSL自动申请的TLS证书默认都为ECC证书。
- 综合应用配置示例中使用mKCP、WebSocket、HTTP/2、gRPC传输方式的应用配置可删、可换、可增(REALITY H2/gRPC应用除外);参考‘服务端单一/简单应用配置示例’中对应配置示例修改。
- 当前不推荐使用WebSocket传输方式的应用直接科学上网,套CDN使用无碍。若CDN流量中转(基于WebSocket over TLS或基于gRPC over TLS)使用不可信的CDN进行中转,V2Ray/Xray示例推荐使用自身带加密的VMess或Shadowsocks协议配置;否则推荐使用自身不带加密的VLESS或Trojan协议配置。
- 针对V2Ray特性,当前服务端配置推荐使用非AES算法密码套件配置示例,客户端开启uTLS指纹。 针对Xray特性,当前服务端配置依次推荐使用REALITY Vision配置示例、XTLS Vision配置示例、非AES算法的密码套件配置示例、REALITY配置示例,客户端开启uTLS指纹。
- 流量伪装与防探测网站可由其它WEB应用软件实现,其支持反代(WebSocket、gRPC及H2C)与支持回落(H2C server及HTTP/1.1 server)取决于自身,自行参考Caddy或Nginx对应配置示例。
- 附加相关插件的Caddy程序文件已编译好,去本人Releases中下载即可。
- Trojan-Go安卓手机客户端可以去本人Releases中下载(最末)。
服务端特殊应用配置示例
- V2Ray(Other Configuration) (V2Ray或Xray的特色应用配置方法。)
- Caddy(Other Configuration) (Caddy的特色应用配置方法。)
原版客户端配置示例
Client Configuration(若使用第三方客户端参考即可。)
systemd服务文件
Service Configuration(配置软件服务由systemd管理。)
更新及贡献
- 根据科学上网软件更新不定时调整示例,如科学上网软件有新增功能及应用等。
- 根据当前科学上网情况不定时调整示例,如删除当前情况下不安全或被替代的应用等。
- 欢迎你提交PR,如对现行配置示例优化修订,或将自己使用的配置制作模板提交等。