你的位置:首页 > 互联网IT
gost,gost3,gost-v3,http代理,socks5代理,转发端口,shadowsocks代理,SS代理,负载均衡,中转服务,端口映射
系统:Windows/linux
软件:gost v3.0
功能:http代理,socks5代理,转发端口,shadowsocks代理,SS代理,负载均衡,中转服务,端口映射
项目地址: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
-----------------------------------------------------------
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
发表评论: