Skip to content

MTCP

TCP data channel with multiplexing function. Multiplexing supports xtaci/smux and hashicorp/yamux backends, selected via the mux.type option. 3.3.0

Usage

gost -L mtcp://:8000
services:
- name: service-0
  addr: :
  handler:
    type: auto
  listener:
    type: mtcp
    metadata:
      mux.version: 2
      mux.keepaliveDisabled: false
      mux.keepaliveInterval: 10s
      mux.keepaliveTimeout: 30s
      mux.maxFrameSize: 32768
      mux.maxReceiveBuffer: 4194304
      mux.maxStreamBuffer: 65536

Options

mux.version (int, default=2)
SMUX protocol version.
mux.keepaliveDisabled (bool, default=false)
Whether to disable keep-alive.
mux.keepaliveInterval (duration, default=10s)
Heartbeat interval.
mux.keepaliveTimeout (duration, default=30s)
Heartbeat timeout.
mux.maxFrameSize (int, default=32768)
Maximum frame length.
mux.maxReceiveBuffer (int, default=4194304)
Receive buffer size.
mux.maxStreamBuffer (int, default=65536)
Steam Buffer Size.
mux.type (string, default=smux) 3.3.0
Mux backend type. Supported values: smux (default), yamux.
mux.maxStreamWindow (int) 3.3.0
Maximum stream window size (bytes) for yamux backend. Only effective when mux.type is yamux.

Proxy

MTCP tunnel can be used in combination with various proxy protocols.

HTTP Over MTCP

gost -L http+mtcp://:8443
services:
- name: service-0
  addr: :8443
  handler:
    type: http
  listener:
    type: mtcp

SOCKS5 Over MTCP

gost -L socks5+mtcp://:8443
services:
- name: service-0
  addr: :8443
  handler:
    type: socks5
  listener:
    type: mtcp

Relay Over MTCP

gost -L relay+mtcp://:8443
services:
- name: service-0
  addr: :8443
  handler:
    type: relay
  listener:
    type: mtcp

Port Forwarding

MTCP tunnel can also be used as port forwarding.

Server

gost -L mtcp://:8443/:8080 -L http://:8080

is equivalent to

gost -L forward+mtcp://:8443/:8080 -L http://:8080
services:
- name: service-0
  addr: :8443
  handler:
    type: forward
  listener:
    type: mtcp
  forwarder:
    nodes:
    - name: target-0
      addr: :8080
- name: service-1
  addr: :8080
  handler:
    type: http
  listener:
    type: tcp

Comments