你的位置:首页 > 互联网IT

gost,gost3,gost-v3,http代理,socks5代理,转发端口,shadowsocks代理,SS代理,负载均衡,中转服务,端口映射

系统:Windows/linux

软件:gost v3.0

功能:http代理,socks5代理,转发端口,shadowsocks代理,SS代理,负载均衡,中转服务,端口映射

官网:https://gost.run/

项目地址:https://github.com/go-gost/gost

gost-v3-beta.6(使用很久,稳定版本)

本地下载1-Windows-32位:gost-windows-386-3.0.0-beta.6.zip

本地下载2-Windows-64位:gost-windows-amd64-3.0.0-beta.6.zip

本地下载3-linux-32位:gost-linux-386-3.0.0-beta.6.gz

本地下载4-linux-64位:gost-linux-amd64-3.0.0-beta.6.gz

gost-v3.0.0-rc8

本地下载5-Windows-32位:gost_3.0.0-rc8_windows_386.zip

本地下载6-Windows-64位:gost_3.0.0-rc8_windows_amd64.zip

本地下载7-linux-32位:gost_3.0.0-rc8_linux_386.tar.gz

本地下载8-linux-64位:gost_3.0.0-rc8_linux_amd64.tar.gz

项目地址下载地址:https://github.com/go-gost/gost/releases


同类型gost-v2.0(gost2)版本

https://www.zhuguodong.com/?id=700


-----------------------------------------------------------

QQ截图20230928195343.jpg gost,gost3,gost-v3,http代理,socks5代理,转发端口,shadowsocks代理,SS代理,负载均衡,中转服务,端口映射 互联网IT


Windows隐藏运行软件,cmd隐藏运行,bat隐藏运行,命令窗口隐藏运行

https://www.zhuguodong.com/?id=520


linux隐藏运行软件

nohup /root/gost -L ss://aes-256-cfb:123456@:23333 >/dev/null 2>&1 &

nohup 《内容替换》 >/dev/null 2>&1 &


-----------------------------------------------------------


简单配置运行:

Windows:新建 gost.bat 文件

linux:命令窗口隐藏运行,gost要加入权限:chmod +x gost


-----------------------------------------------------------


这篇文章以命令方式展开教材,有配置文件功能,更强大,下一篇文章讲解


开始

http/socks5代理搭建

Windows配置:同一端口支持http/socks5协议,客户端连接自动匹配协议

start "" "gost.exe" -L :8080


start "" "gost.exe" -L 123456:123456@:8080


start "" "gost.exe" -L 123456:123456@:8080?dns=8.8.8.8:53/tcp

start "" "gost.exe" -L 123456:123456@:8080?dns=8.8.8.8:53/udp


linux配置:同一端口支持http/socks5协议,客户端连接自动匹配协议

nohup /root/gost -L :8080 >/dev/null 2>&1 &


nohup /root/gost -L 123456:123456@:8080 >/dev/null 2>&1 &


nohup /root/gost -L 123456:123456@:8080?dns=8.8.8.8:53/tcp >/dev/null 2>&1 &

nohup /root/gost -L 123456:123456@:8080?dns=8.8.8.8:53/udp >/dev/null 2>&1 &


说明:程序名称 -L=用户:密码@:端口?dns=8.8.8.8:53/tcp (指定DNS,不指定默认是使用系统DNS,DNS解析指定传输模式TCP/UDP,默认是大部分支持TCP/UDP)


-----------------------------------------------------------


http代理搭建

Windows配置

start "" "gost.exe" -L http://:8080

start "" "gost.exe" -L http://123:123456@:8080

linux配置

nohup /root/gost -L http://:8080 >/dev/null 2>&1 &

nohup /root/gost -L http://123:123456@:8080 >/dev/null 2>&1 &



socks5代理搭建

Windows配置

start "" "gost.exe" -L socks5://:8080

start "" "gost.exe" -L socks5://123:123456@:8080

linux配置

nohup /root/gost -L socks5://:8080 >/dev/null 2>&1 &

nohup /root/gost -L socks5://123:123456@:8080 >/dev/null 2>&1 &


说明:程序名称 -L 协议://用户:密码@:端口


-----------------------------------------------------------


SS代理配置,shadowsocks代理搭建

Windows配置

start "" "gost.exe" -L ss://aes-256-cfb:123456@:23333

start "" "gost.exe" -L ssu://aes-256-cfb:123456@:23333?ttl=60s


linux配置

nohup /root/gost -L ss://aes-256-cfb:123456@:23333 >/dev/null 2>&1 &

nohup /root/gost -L ssu://aes-256-cfb:123456@:23333?ttl=60s >/dev/null 2>&1 &


说明:程序名称 -L 协议://加密方式(客户端大多数加密方式都支持):密码@:端口,特别说明(sS是tcp,SSu是UDP传输)



转发设置,转发配置,中转服务,端口映射,端口转发

Windows配置

start "" "gost.exe" -L tcp://:8080/8.8.8.8:8080

start "" "gost.exe" -L udp://:8080/8.8.8.8:8080


linux配置

nohup /root/gost -L tcp://:8080/8.8.8.8:8080 >/dev/null 2>&1 &

nohup /root/gost -L udp://:8080/8.8.8.8:8080 >/dev/null 2>&1 &


说明:程序名称 -L 传输协议(TCP或者UDP)://:本地端口/IP或者域名:远程端口


-----------------------------------------------------------


中转服务,转发设置,转发配置,中转再中转服务,加密中转服务,端口转发,转发加密

编号一中转服务器(或者本地)-编号二中转服务器(境外服务器)-编号三目标服务器,编号四SS客户端

Windows配置

编号三目标服务器:

start "" "gost.exe" -L ss://aes-256-cfb:123456@:23333

编号二中转服务器(境外服务器):

start "" "gost.exe" -L ss+ohttp://:22000

用户模式

start "" "gost.exe" -L ss+ohhtp://aes-256-cfb:123456@:22000

编号一中转服务器(或者本地):

start "" "gost.exe" -L tcp://:23333/8.8.8.8:23333 -F ss+ohttp://1.1.1.1:22000

用户模式

start "" "gost.exe" -L tcp://:23333/8.8.8.8:23333 -F ss+ohttp://aes-256-cfb:123456@1.1.1.1:22000

说明:程序 -L tcp://:23333/编号三目标服务器IP或者域名:23333 -F ss+ohttp://加密方式:密码@编号二中转服务器(境外服务器)IP或者域名:22000

编号四SS客户端

电脑,配置编号三目标服务器信息,IP是编号一中转服务器(或者本地127.0.0.1)

https://www.zhuguodong.com/?id=462

安卓

https://www.zhuguodong.com/?id=465

苹果

https://www.zhuguodong.com/?id=448


linux配置

编号三目标服务器:

nohup /root/gost -L ss://aes-256-cfb:123456@:23333 >/dev/null 2>&1 &

编号二中转服务器(境外服务器):

nohup /root/gost -L ss+ohttp://:22000 >/dev/null 2>&1 &

用户模式

nohup /root/gost -L ss+ohhtp://aes-256-cfb:123456@:22000 >/dev/null 2>&1 &

编号一中转服务器(或者本地):

nohup /root/gost -L tcp://:23333/8.8.8.8:23333 -F ss+ohttp://1.1.1.1:22000 >/dev/null 2>&1 &

用户模式

nohup /root/gost -L tcp://:23333/8.8.8.8:23333 -F ss+ohttp://aes-256-cfb:123456@1.1.1.1:22000 >/dev/null 2>&1 &

说明:程序 -L tcp://:23333/编号三目标服务器IP或者域名:23333 -F ss+ohttp://加密方式:密码@编号二中转服务器(境外服务器)IP或者域名:22000

编号四SS客户端

电脑,配置编号三目标服务器信息,IP是编号一中转服务器(或者本地127.0.0.1)

https://www.zhuguodong.com/?id=462

安卓

https://www.zhuguodong.com/?id=465

苹果

https://www.zhuguodong.com/?id=448


-----------------------------------------------------------


gost协议,传输协议可以组合使用

处理器+监听器组合传输;处理器与处理器,监听器与监听器不能组合

比喻:

服务器端配置:

Windows配置:

举例6个组合:

start "" "gost.exe" -L http+ws://vpn:vpnvpn@:22000

start "" "gost.exe" -L SOCKS5+tls://:22000

start "" "gost.exe" -L SS+ohttp://:22000


linux配置:

nohup /root/gost -L ss+otls://vpn:vpnvpn@:22000 >/dev/null 2>&1 &

nohup /root/gost -L Relay+mws://:22000 >/dev/null 2>&1 &

nohup /root/gost -L SSH+FTCP://:22000 >/dev/null 2>&1 &


说明:程序 -L 协议组合://用户:密码@:端口(没有用户密码,默认匿名连接)


客户端配置:

Windows配置:

举例6个组合:

start "" "gost.exe" -L :8000 -F=http+ws://vpn:vpnvpn@www.badiu.com:22000


说明:程序 -L (:8000,端口默认同时支持http/socks5) -F=(服务端协议一致)://用户:密码@服务器IP或者域名:端口


start "" "gost.exe" -L tcp://:8080/8.8.8.8:8080 -F=SOCKS5+tls://www.badiu.com:22000


说明:端口转发用法


start "" "gost.exe" -L socks5://123:123456@:8080 -F=SS+ohttp://www.badiu.com:22000


说明:socks5用法


linux配置:


start "" "gost.exe" -L ss://aes-256-cfb:123456@:8080 -F=ss+otls://vpn:vpnvpn@8.8.8.8:22000


说明:SS用法,同理linux案例就不多演示了


-----------------------------------------------------------


gost协议总览表

监听器(Listeners)

TCP

UDP

TLS

MTLS

MWS

HTTP2

H2[C)

gRPC

QUIC

PHT

HTTP3

KCP

SSH

SSHD

RED

REDU

RTCP

RUDP

DNS

TUN

TAP

ICMP

OHTTP

OTLS

FTCP


处理器[Handlers)

HTTP

HTTP2

SOCKS4

SOCKS5

Auto

Relay

TCP

UDP

RTCP

RUDP

SS

SSU

SNI

SSH

SSHD

DNS

RED

REDU

TUN

TAP


-----------------------------------------------------------


gost协议,转发链,多协议连续组合设置,中转设置,多链连接,多链设置

Windows/linux配置


gost -L tcp://:8080/8.8.8.8:8080 -F=SOCKS5://www.badiu.com:22000 -F=http://vpn:vpnvpn@www.badiu.com:22000


说明:(落地IP是目标服务器8.8.8.8)程序 端口转发:目标IP端口 中转SOCKS5 中转http 目标服务器 (-F后面还可以添加代理)


gost -L  -L socks5://123:123456@:8080 -F=SOCKS5://www.badiu.com:22000 -F=http://vpn:vpnvpn@www.badiu.com:22000


说明:(落地IP是中转http)程序 SOCKS5代理 中转SOCKS5 中转http (-F后面还可以添加代理)


-----------------------------------------------------------


gost限制带宽设置,限制网速,网速设置,网络限制


gost -L "ss://aes-256-cfb:www.maiduoa.com@:23100?limiter.in=2MB&limiter.out=2MB&limiter.conn.in=2200KB&limiter.conn.out=2200KB"


gost -L ":8080?limiter.in=100MB&limiter.out=100MB&limiter.conn.in=10MB&limiter.conn.out=10MB"


说明:服务器速度入100MB/10000KB,服务器速度出100MB/10000KB,线路速度入10MB/1000KB,线路速度出10MB/1000KB


-----------------------------------------------------------


gost自定义dns设置


start "" "gost.exe" -L 123456:123456@:8080?dns=8.8.8.8:53/tcp

start "" "gost.exe" -L 123456:123456@:8080?dns=8.8.8.8:53/udp


nohup /root/gost -L 123456:123456@:8080?dns=8.8.8.8:53/tcp >/dev/null 2>&1 &

nohup /root/gost -L 123456:123456@:8080?dns=8.8.8.8:53/udp >/dev/null 2>&1 &


SS案例:

start "" "gost.exe" -L ss://aes-256-cfb:123456@:8080?dns=8.8.8.8:53/tcp


说明:程序名称 -L=用户:密码@:端口?dns=8.8.8.8:53/tcp (指定DNS,不指定默认是使用系统DNS,DNS解析指定传输模式TCP/UDP,默认是大部分支持TCP/UDP)


-----------------------------------------------------------


gost负载均衡,转发链,选择器


选择器负责在一个可选择的对象列表中使用选择策略选择出零个或一个对象,目前选择器所支持的对象有节点和转发链两种。 选择器可以应用于转发链组,转发链,转发链中的跳跃点,和转发器上。选择器在GOST中可以用来实现负载均衡。


strategy (string, default=round)


    指定选择策略。


        round - 轮询

        rand - 随机

        fifo - 自上而下,主备模式

        hash - 基于特定Hash值(客户端IP或目标地址)


maxFails (int, default=1)

    指定最大失败次数,当失败次数超过此设定值时,此对象会被标记为失败(Fail)状态,失败状态的对象不会被选择使用。

failTimeout (duration, default=10s)

    指定失败状态的超时时长,当一个对象被标记为失败后,在此设定的时间间隔内不会被选择使用,超过此设定时间间隔后,会再次参与选择。


转发链


转发链中的每一层级跳跃点上可以设置一个选择器,默认选择器使用轮询策略进行节点选择。

命令行


gost -L http://:8080 -F "socks5://192.168.1.1:1080,192.168.1.2:1080?strategy=rand&maxFails=1&failTimeout=10s"


gost -L tcp://:8080/8.8.8.8:8080 -F "socks5://123456:123456@192.168.1.1:123456:123456@1080,192.168.1.2:1080?strategy=rand&maxFails=1&failTimeout=10s"


说明:程序名称 -L TCP转发 -F "socks5代理组 用户:密码@IP:端口 ?strategy=rand(round - 轮询)&maxFails=1(指定最大失败次数)&failTimeout=10s(指定失败状态的超时时长)"


-----------------------------------------------------------


gost使用配置文件


-C - 指定外部配置文件。

使用配置文件gost.yml

gost -C gost.yml


-O - 指定配置输出格式,目前支持yaml或json。

输出yaml格式配置

gost -L http://:8080 -O yaml

输出json格式配置

gost -L http://:8080 -O json

将json格式配置转成yaml格式

gost -C gost.json -O yaml


-D - 开启Debug模式,更详细的日志输出。

gost -L http://:8080 -D


-V - 查看版本,显示当前运行的GOST版本号。

gost -V


-api - 指定WebAPI地址。

gost -L http://:8080 -api :18080


-metrics - 指定prometheus metrics API地址。

gost -L http://:8080 -metrics :9000


-----------------------------------------------------------


gost命令行参数


GOST目前有以下几个命令行参数项:


    -L - 指定本地服务,可设置多个。


此参数值为类URL格式(方括号中的内容可以省略):


[scheme://][username:password@host]:port[?key1=value1&key2=value2]


或用于端口转发模式


scheme://[bind_address]:port/[host]:hostport[?key1=value1&key2=value2]


scheme


    可以是处理器(Handler)与监听器(Listener)的组合,也可以是单独的处理器(监听器默认为tcp)或监听器(处理器默认为auto),例如:


        http+tls - 处理器http与监听器tls的组合,指定HTTPS代理服务

        http - 等价与http+tcp,处理器http与监听器tcp的组合,指定HTTP代理服务

        tcp - 等价与tcp+tcp,处理器tcp与监听器tcp的组合,指定TCP端口转发

        tls - 等价与auto+tls,处理器auto与监听器tls的组合


示例


gost -L http://:8080


gost -L http://:8080 -L socks5://:1080?foo=bar


gost -L http+tls://gost:gost@:8443


gost -L tcp://:8080/192.168.1.1:80


gost -L tls://:8443


转发地址列表


端口转发模式支持转发目标地址列表形式:


gost -L tcp://:8080/192.168.1.1:80,192.168.1.2:80,192.168.1.3:8080


    -F - 指定转发服务,可设置多个,构成转发链。


此参数值为类URL格式(方括号中的内容可以省略):


[scheme://][username:password@host]:port[?key1=value1&key2=value2]


scheme


    可以是连接器(Connector)与拨号器(Dialer)的组合,也可以是单独的连接器(拨号器默认为tcp)或拨号器(连接器默认为http),例如:


        http+tls - 连接器http与拨号器tls的组合,指定HTTPS代理节点

        http - 等价与http+tcp,处理器http与监听器tcp的组合,指定HTTP代理节点

        tls - 等价与http+tls


Example


gost -L http://:8080 -F http://gost:gost@192.168.1.1:8080 -F socks5+tls://192.168.1.2:1080?foo=bar


节点组


也可以通过设置地址列表构成节点组:


gost -L http://:8080 -F http://gost:gost@192.168.1.1:8080,192.168.1.2:8080


    -C - 指定外部配置文件。


Example


使用配置文件gost.yml


gost -C gost.yml


    -O - 指定配置输出格式,目前支持yaml或json。


Example


输出yaml格式配置


gost -L http://:8080 -O yaml


输出json格式配置


gost -L http://:8080 -O json


将json格式配置转成yaml格式


gost -C gost.json -O yaml


    -D - 开启Debug模式,更详细的日志输出。


Example


gost -L http://:8080 -D


    -V - 查看版本,显示当前运行的GOST版本号。


Example


gost -V


    -api - 指定WebAPI地址。


Example


gost -L http://:8080 -api :18080


    -metrics - 指定prometheus metrics API地址。


Example


gost -L http://:8080 -metrics :9000


scheme参数在命令行中的问题


macOS系统默认的zsh不支持命令行参数使用?和&,所以在macOS环境下,如果你的scheme包含特殊字符,请使用双引号"",否则会报错:“zsh: no matches found: ...”。

Bash

gost -L http://:8080 -L socks5://:1080?foo=bar

Zsh

gost -L http://:8080 -L "socks5://:1080?foo=bar"


-----------------------------------------------------------


配置文件


GOST配置文件使用yaml或json格式,完整的配置文件的结构如下:

yaml格式:


------------------------------


services:

- name: service-0

  addr: ":8080"

  interface: eth0

  sockopts:

    mark: 1

  admission: admission-0

  bypass: bypass-0

  resolver: resolver-0

  hosts: hosts-0

  handler:

    type: http

    auth:

      username: user

      password: pass

    auther: auther-0

    chain: chain-0

    retries: 1

    metadata: 

      foo: bar

      bar: baz

  listener:

    type: tcp

    auth:

      username: user

      password: pass

    auther: auther-0

    chain: chain-0

    tls:

      certFile: cert.pem

      keyFile: key.pem

      caFile: ca.pem

    metadata:

      abc: xyz

      def: 456

  forwarder:

    nodes:

    - name: target-0

      addr: 192.168.1.1:1234

    - name: target-1

      addr: 192.168.1.2:2345

    selector:

      strategy: rand

      maxFails: 1

      failTimeout: 30s


chains:

- name: chain-0

  selector:

    strategy: round

    maxFails: 1

    failTimeout: 30s

  hops:

  - name: hop-0

    interface: 192.168.1.2

    sockopts:

      mark: 1

    selector:

      strategy: rand

      maxFails: 3

      failTimeout: 60s

    bypass: bypass-0

    nodes:

    - name: node-0

      addr: ":1080"

      interface: eth1

      sockopts:

        mark: 1

      bypass: bypass-0

      connector:

        type: socks5

        auth:

          username: user

          password: pass

        metadata:

          foo: bar

      dialer:

        type: tcp

        auth:

          username: user

          password: pass

        tls:

          caFile: "ca.pem"

          secure: true

          serverName: "example.com"

        metadata:

          bar: baz 


tls:

  certFile: "cert.pem"

  keyFile: "key.pem"

  caFile: "ca.pem"


authers:

- name: auther-0

  auths:

  - username: user1

    password: pass1

  - username: user2

    password: pass2


admissions:

- name: admission-0

  whitelist: false

  matchers:

  - 127.0.0.1

  - 192.168.0.0/16


bypasses:

- name: bypass-0

  whitelist: false

  matchers:

  - "*.example.com"

  - .example.org

  - 0.0.0.0/8


resolvers:

- name: resolver-0

  nameservers:

  - addr: udp://8.8.8.8:53

    chain: chain-0

    ttl: 60s

    prefer: ipv4

    clientIP: 1.2.3.4

    timeout: 3s

  - addr: tcp://1.1.1.1:53

  - addr: tls://1.1.1.1:853

  - addr: https://1.0.0.1/dns-query

    hostname: cloudflare-dns.com


hosts:

- name: hosts-0

  mappings:

  - ip: 127.0.0.1

    hostname: localhost

  - ip: 192.168.1.10

    hostname: foo.mydomain.org

    aliases:

    - foo

  - ip: 192.168.1.13

    hostname: bar.mydomain.org

    aliases:

    - bar

    - baz


log:

  output: stderr

  level: debug

  format: json

  rotation:

    maxSize: 100

    maxAge: 10

    maxBackups: 3

    localTime: false

    compress: false


profiling:

  addr: ":6060"


api:

  addr: ":18080"

  pathPrefix: /api

  accesslog: true

  auth:

    username: user

    password: pass

  auther: auther-0


metrics:

  addr: :9000

  path: /metrics


--------------------------------


json格式:


{

  "services": [

    {

      "name": "service-0",

      "addr": ":8080",

      "interface": "eth0",

      "admission": "admission-0",

      "bypass": "bypass-0",

      "resolver": "resolver-0",

      "hosts": "hosts-0",

      "handler": {

        "type": "http",

        "auth": {

          "username": "gost",

          "password": "gost"

        },

        "auther": "auther-0",

        "retries": 1,

        "chain": "chain-0",

        "metadata": {

          "bar": "baz",

          "foo": "bar"

        }

      },

      "listener": {

        "type": "tcp",

        "auth": {

          "username": "user",

          "password": "pass"

        },

        "auther": "auther-0",

        "chain": "chain-0",

        "tls": {

          "certFile": "cert.pem",

          "keyFile": "key.pem",

          "caFile": "ca.pem"

        },

        "metadata": {

          "abc": "xyz",

          "def": 456

        }

      },

      "forwarder": {

        "nodes": [

          {

            "name": "target-0",

            "addr": "192.168.1.1:1234"

          },

          {

            "name": "target-1",

            "addr": "192.168.1.2:2345"

          }

        ],

        "selector": {

          "strategy": "round",

          "maxFails": 1,

          "failTimeout": 30

        }

      }

    }

  ],

  "chains": [

    {

      "name": "chain-0",

      "selector": {

        "strategy": "round",

        "maxFails": 1,

        "failTimeout": 30

      },

      "hops": [

        {

          "name": "hop-0",

          "interface": "192.168.1.2",

          "selector": {

            "strategy": "rand",

            "maxFails": 3,

            "failTimeout": 60

          },

          "bypass": "bypass-0",

          "nodes": [

            {

              "name": "node-0",

              "addr": ":1080",

              "interface": "eth1",

              "bypass": "bypass-0",

              "connector": {

                "type": "socks5",

                "auth": {

                  "username": "user",

                  "password": "pass"

                },

                "metadata": {

                  "foo": "bar"

                }

              },

              "dialer": {

                "type": "tcp",

                "auth": {

                  "username": "user",

                  "password": "pass"

                },

                "tls": {

                  "caFile": "ca.pem",

                  "secure": true,

                  "serverName": "example.com"

                },

                "metadata": {

                  "bar": "baz"

                }

              }

            }

          ]

        }

      ]

    }

  ],

  "authers": [

    {

      "name": "auther-0",

      "auths": [

        {

          "username": "user1",

          "password": "pass1"

        },

        {

          "username": "user2",

          "password": "pass2"

        }

      ]

    }

  ],

  "admissions": [

    {

      "name": "admission-0",

      "whitelist": false,

      "matchers": [

        "127.0.0.1",

        "192.168.0.0/16"

      ]

    }

  ],

  "bypasses": [

    {

      "name": "bypass-0",

      "whitelist": false,

      "matchers": [

        "*.example.com",

        ".example.org",

        "0.0.0.0/8"

      ]

    }

  ],

  "resolvers": [

    {

      "name": "resolver-0",

      "nameservers": [

        {

          "addr": "udp://8.8.8.8:53",

          "chain": "chain-0",

          "prefer": "ipv4",

          "clientIP": "1.2.3.4",

          "ttl": 60,

          "timeout": 30

        },

        {

          "addr": "tcp://1.1.1.1:53"

        },

        {

          "addr": "tls://1.1.1.1:853"

        },

        {

          "addr": "https://1.0.0.1/dns-query",

          "hostname": "cloudflare-dns.com"

        }

      ]

    }

  ],

  "hosts": [

    {

      "name": "hosts-0",

      "mappings": [

        {

          "ip": "127.0.0.1",

          "hostname": "localhost"

        },

        {

          "ip": "192.168.1.10",

          "hostname": "foo.mydomain.org",

          "aliases": [

            "foo"

          ]

        },

        {

          "ip": "192.168.1.13",

          "hostname": "bar.mydomain.org",

          "aliases": [

            "bar",

            "baz"

          ]

        }

      ]

    }

  ],

  "tls": {

    "certFile": "cert.pem",

    "keyFile": "key.pem",

    "caFile": "ca.pem"

  },

  "log": {

    "output": "stderr",

    "level": "debug",

    "format": "json",

    "rotation": {

      "maxSize": 100,

      "maxAge": 10,

      "maxBackups": 3,

      "localTime": false,

      "compress": false

    }

  },

  "profiling": {

    "addr": ":6060",

    "enabled": true

  },

  "api": {

    "addr": ":18080",

    "pathPrefix": "/api",

    "accesslog": true,

    "auth": {

      "username": "user",

      "password": "password"

    },

    "auther": "auther-0"

  },

  "metrics": {

    "addr": ":9000",

    "path": "/metrics"

  }

}


-----------------------------


服务(Service)


name (string, required)

    服务名称

addr (string, required)

    服务地址

interface (string)

    网络接口名或IP地址

sockopts (object)

    Socket参数

admission (string, ref)

    admission名称,引用admissions.name

bypass (string, ref)

    bypass名称,引用bypasses.name

resolver (string, ref)

    resolver名称,引用resolvers.name

hosts (string, ref)

    hosts名称,对应hosts.name

handler (object, required)

    处理器对象

listener (object, required)

    监听器对象

forwarder (object)

    转发器对象,用于端口转发


处理器(Handler)


type (string, required)

    处理器类型

auther (string)

    认证器名称,引用authers.name

auth (object)

    认证信息,如果设置了auther,此字段无效。

chain (string, ref)

    转发链名称,引用chains.name

retries (int, default=0)

    请求处理失败后重试次数

metadata (map)

    处理器实例相关参数


监听器(Listener)


type (string, required)

    监听器类型

chain (string, ref)

    转发链名称,对应chains.name

auther (string)

    认证器名称,引用authers.name

auth (object)

    认证信息,如果设置了auther,此字段无效。

tls (object)

    监听器实例TLS配置

metadata (map)

    监听器实例相关参数


转发器(Forwarder)


nodes (objects)

    转发目标节点列表

selector (object)

    负载均衡策略


转发链(Chain)


name (string, required)

    转发链名称

selector (object)

    转发链层级节点选择器,用于负载均衡

hops (hop-list)

    跳跃点列表


跳跃点(Hop)


name (string, required)

    跳跃点名称

interface (string)

    网络接口名或IP地址

sockopts (object)

    Socket参数

selector (object)

    跳跃点层级节点选择器,如果设置,则覆盖转发链层级选择器

bypass (string, ref)

    bypass名称,引用bypasses.name

nodes (node-list)

    节点列表


节点(Node)


name (string, required)

    节点名称

addr (string, required)

    节点地址

interface (string)

    网络接口名或IP地址,如果设置,则会覆盖hop.interface

sockopts (object)

    Socket参数,如果设置,则会覆盖hop.sockopts

bypass (string, ref)

    bypass名称,引用bypasses.name。

connector (object)

    连接器对象

dialer (object)

    拨号器对象


连接器(Connector)


type (string, required)

    连接器类型

auth (object)

    认证信息

metadata (map)

    连接器实例相关参数


拨号器(Dialer)


type (string, required)

    拨号器类型

auth (object)

    认证信息

tls (object)

    TLS配置

metadata (map)

    拨号器实例相关参数


TLS


certFile (string)

    证书公钥文件

keyFile (string)

    证书私钥文件

caFile (string)

    CA证书文件

secure (bool, default=false)

    开启服务器证书和域名校验

serverName (string)

    服务器域名,用于域名校验


认证器(Auther)


name (string, required)

    名称

auths (list)

    认证信息列表


认证信息(Auth)


username (string)

    用户名

password (string)

    密码


节点选择器(Selector)


strategy (string, default=round)


    节点选择策略:


        round, rr - 轮询

        random, rand - 随机

        fifo - 主备模式


maxFails (int, default=1)

    节点连接最大失败次数

failTimeout (duration, default=30s)

    节点失败标记超时时长


准入控制器(Admission)


name (string, required)

    admission名称

whitelist (bool, default=false)

    切换为白名单

matchers (strings)

    地址列表,支持IP,CIDR


分流器(Bypass)


name (string, required)

    bypass名称

whitelist (bool, default=false)

    切换为白名单

matchers (strings)

    地址列表,支持IP,CIDR,域名或域名通配符


域名解析器(Resolver)


name (string, required)

    名称

nameservers (list)

    域名服务列表


域名服务(Nameserver)


addr (string, required)

    域名地址

chain (string, ref)

    转发链名称,引用chains.name

prefer (string, default=ipv4)


    IP地址类型优先级


        ipv4 - IPv4优先

        ipv6 - IPv6优先


clientIP (string)

    客户端IP,设置后会开启ECS(EDNS Client Subnet)扩展功能。

ttl (duration)

    DNS缓存有效期,默认使用DNS查询返回结果中的TTL。当设置为负值,则不使用缓存。

timeout (duration)


    DNS请求超时时长


主机映射器(Hosts)


主机名-IP地址静态映射表


name (string, required)

    映射表名称

mappings (list)

    映射列表


映射列表项(mapping)


ip (string)

    IP地址

hostname (string)

    主机名

aliases (strings)

    主机别名列表


Socket参数(SockOpts)


mark (int)

    Linux Socket SO_MARK参数选项


日志(log)¶


日志配置,设置日志级别,格式和输出方式。


level (string, default=info)

    日志级别,支持的选项:trace,debug,info,warn,error,fatal。

format (string, default=json)

    日志格式,支持的格式:json,text。

output (string, default=stderr)


    日志输出方式:


        none - 丢弃日志。

        stderr - 标准错误流

        stdout - 标准输出流

        /path/to/file - 指定的文件路径


rotation.maxSize (int, default=100)

    文件存储大小,单位为MB。

rotation.maxAge (int)

    备份日志文件保存天数,默认不根据时间清理旧文件。

rotation.maxBackups (int)

    备份日志文件数量,默认保存所有文件。

rotation.localTime (bool, default=false)

    备份文件名是否使用本地时间格式。默认使用UTC时间。

rotation.compress (bool, default=false)

    备份文件是否(使用gzip)压缩。


Profiling


addr (string)

    服务地址

enabled (bool, default=false)

    是否开启


API


addr (string)

    WebAPI服务地址,设置后将开启WebAPI服务

pathPrefix (string)

    设置API路径前缀

accesslog (bool, default=false)

    开启API访问日志

auth (object)

    认证信息,如果设置了auther,此字段无效。

auther (string)

    认证器名称,引用authers.name


Metrics


addr (string)

    服务地址

path (string, default=/metrics)

    访问路径 


-----------------------------------------------------------


GO Simple Tunnel

GO语言实现的安全隧道

功能特性

多端口监听

多级转发链

多协议支持

TCP/UDP端口转发

TCP/UDP透明代理

DNS解析和代理

TUN/TAP设备

反向代理

负载均衡

路由控制

限速限流

准入控制

动态配置

插件系统

Prometheus监控指标

Web API

Web UI

Telegram讨论群:https://t.me/gogost


Google讨论组:https://groups.google.com/d/forum/go-gost


提交Issue:https://github.com/go-gost/gost/issues


旧版入口:v2.gost.run


下载安装

二进制文件

https://github.com/go-gost/gost/releases


源码编译


git clone https://github.com/go-gost/gost.git

cd gost/cmd/gost

go build

Docker


docker run --rm gogost/gost -V

Shadowsocks Android插件

xausky/ShadowsocksGostPlugin

https://github.com/xausky/ShadowsocksGostPlugin


  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。