代理协议
协议类型

协议类型

Stash 支持多种类型的代理协议。

每个代理必须含有以下参数:

  • name:代理名称,每个代理的名称是唯一的
  • type:代理类型
  • server:服务器地址,可以是域名或者 IP 地址
  • port:端口

代理可能支持以下参数:

  • udp:布尔值,是否启用 UDP 转发
  • tls:布尔值,是否基于 TLS 转发
  • skip-cert-verify:布尔值,是否忽略证书验证

不同类型的代理还需要指定一些参数,可以参考下文。

Shadowsocks

- name: ss1
  type: ss
  server: server
  port: 443
  cipher: chacha20-ietf-poly1305
  password: 'password'
  udp: true
  plugin: null
  plugin-opts:
    mode:
    host:

支持以下的加密方式(cipher):

  • aes-128-gcm
  • aes-192-gcm
  • aes-256-gcm
  • aes-128-cfb
  • aes-192-cfb
  • aes-256-cfb
  • aes-128-ctr
  • aes-192-ctr
  • aes-256-ctr
  • rc4-md5
  • chacha20
  • chacha20-ietf
  • xchacha20
  • chacha20-ietf-poly1305
  • xchacha20-ietf-poly1305

支持以下的插件(plugin):

plugin: obfs
plugin-opts:
  mode: tls # 混淆模式,可以选择 http 或 tls
  host: bing.com # 混淆域名,需要和服务器配置保持一致
plugin: v2ray-plugin
plugin-opts:
  mode: websocket # 暂时不支持 QUIC 协议
  tls: true # wss
  skip-cert-verify: true # 不验证证书
  host: bing.com
  path: '/'
  headers: # 自定义请求头
    key: value

ShadowsocksR

- name: ssr
  type: ssr
  server: server
  port: 443
  cipher: chacha20-ietf
  password: 'password'
  obfs: ''
  protocol: ''
  obfs-param: ''
  protocol-param: ''

支持的加密方式(cipher)与 Shadowsocks 相同。

支持的混淆方式(obfs):

  • plain
  • http_simple
  • http_post
  • random_head
  • tls1.2_ticket_auth
  • tls1.2_ticket_fastauth

支持的协议(protocol):

  • origin
  • auth_sha1_v4
  • auth_aes128_md5
  • auth_aes128_sha1
  • auth_chain_a auth_chain_b

SOCKS5

- name: socks
  type: socks5
  server: server
  port: 443
  # username: username
  # password: password
  # tls: true
  # skip-cert-verify: true
  # udp: true

HTTP

- name: http
  type: http
  server: server
  port: 443
  headers:
    key: value
  tls: true # https
  skip-cert-verify: true
  # username: username
  # password: password

VMess

- name: vmess
  type: vmess
  server: server
  port: 443
  uuid: d0529668-8835-11ec-a8a3-0242ac120002
  cipher: auto
  network:

支持加密方式(cipher):

  • auto
  • aes-128-gcm
  • chacha20-poly1305
  • none

支持的承载网络(network):

  • ws
  • h2
  • http
  • grpc
network: ws
ws-opts:
  path: /path
  headers:
    Host: v2ray.com
  max-early-data: 2048
  early-data-header-name: Sec-WebSocket-Protocol
network: h2
tls: true
h2-opts:
  host:
    - http.example.com
    - http-alt.example.com
  path: /

Snell

- name: snell
  type: snell
  server: server
  port: 443
  psk: yourpsk
  udp: true # 需要 v3 以上服务端
  version: 3
  # obfs-opts:
  # mode: http # 或 tls
  # host: bing.com

Snell UDP 需要 v3 版本以上的服务端支持。

支持的混淆模式(obfs-opts.mode)支持:

  • http
  • tls

Trojan

- name: trojan
  type: trojan
  server: server
  port: 443
  password: yourpassword
  # udp: true
  # sni: example.com # Server Name Indication,如果空会使用 server 中的值
  # alpn:
  #   - h2
  #   - http/1.1
  # skip-cert-verify: true

支持的承载网络(network):

  • ws
  • grpc

Hysteria

Hysteria 是一个功能丰富的,专为恶劣网络环境进行优化的网络工具(双边加速),比如卫星网络、拥挤的公共 Wi-Fi、在中国连接国外服务器等。 基于修改版的 QUIC 协议。

Hysteria 服务端部署请参考这里

- name: hysteria
  type: hysteria
  server: server
  port: 443
  up-speed: 100 # 上传带宽(单位:Mbps)
  down-speed: 100 # 下载带宽(单位:Mbps)
  # auth: "" # bytes encoded in base64
  # obfs: ""
  # obfs-protocol: "" # wechat-video or blank
  # udp: true
  # sni: example.com # Server Name Indication,如果空会使用 server 中的值
  # alpn:
  #   - hysteria
  # skip-cert-verify: true

上传、下行带宽单位为 Mbps,请尽量正确填写,超出实际带宽会有反效果。

auth 必须为 base64 编码,如服务端使用 string 密码,需要手动进行 base64 编码,例如:

$ echo 'your_password' | base64
eW91cl9wYXNzd29yZAo=

VLESS

XTLS 协议在 TLS 环境下摆脱冗余加密,提供更优秀的转发性能。

- name: vless
  type: vless
  server: server
  port: 443
  uuid: d0529668-8835-11ec-a8a3-0242ac120002
  # flow: xtls-rprx-direct
  # skip-cert-verify: true
  # network: h2
  # tls: true
  # ws-opts:
  #   path: /path
  #   headers:
  #     Host: v2ray.com
  # grpc-opts:
  #   grpc-service-name: "example"
  # h2-opts:
  #   host:
  #     - http.example.com
  #     - http-alt.example.com
  #   path: /

支持的 XTLS 模式(flow):

  • xtls-rprx-origin
  • xtls-rprx-direct
  • xtls-rprx-splice

TUIC

TUIC 是一个轻量的基于 QUIC 的代理协议,由 rust 语言编写,你可以在这里找个更多信息。

- name: tuic
  type: tuic
  server: server
  port: 443
  token: 'your_token'
  udp: true
  skip-cert-verify: true
  sni: ''
  alpn:
    - h3
💡

需要注意的是,Stash 客户端不支持 ALPN 为空,默认的 ALPN 为 h3。请在服务端加上 --alpn h3 参数。

请在服务端选择适合的拥塞控制算法 --congestion-controller 参数以充分利用带宽。