你的位置:首页 > 互联网IT
gost,gost3,gost-v3,gost3配置文件教材,http代理,socks5代理,转发端口,shadowsocks代理,SS代理,负载均衡,中转服务,端口映射,gost3命令教材
系统: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,gost3,gost-v3版本-配置文件文章
https://www.zhuguodong.com/?id=771
gost,gost3,gost-v3版本-命令文章
https://www.zhuguodong.com/?id=767
同类型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
启动参数:-c
Windows:start "" "gost.exe" -C gost.yaml
linux:gost -C gost.yaml
说明:.yaml配置文件不能有空行,或者不必要的空格,不然会运行不成功
启动参数:-c
Windows:start "" "gost.exe" -C gost.json
linux:gost -C gost.json
程序gost与文件同一目录下,说明:.json与.yaml配置文件格式(这个文件格式配置不能出现空格),教材就用.json格式演示
配置.json与.yaml格式可相互转换的
输出yaml格式配置
gost -L http://:8080 -O yaml
输出json格式配置
gost -L http://:8080 -O json
将json格式配置转成yaml格式
gost -C gost.json -O yaml
gost -C gost.yaml -O json
-----------------------------------------------------------
快速开始
零配置
GOST可以通过命令行参数直接开启一个或多个服务,无需额外的配置文件。
代理模式¶
开启一个或多个代理服务,并可以设置转发链进行转发。
开启一个HTTP代理服务¶
命令行
gost -L http://:8080
配置文件
services:
- name: service-0
addr: ":8080"
handler:
type: http
listener:
type: tcp
启动一个监听在8080端口的HTTP代理服务。
开启多个代理服务¶
命令行
gost -L http://:8080 -L socks5://:1080
配置文件
services:
- name: service-0
addr: ":8080"
handler:
type: http
listener:
type: tcp
- name: service-1
addr: ":1080"
handler:
type: socks5
listener:
type: tcp
启动两个服务,一个监听在8080端口的HTTP代理服务,和一个监听在1080端口的SOCKS5代理服务。
使用转发¶
命令行
gost -L http://:8080 -F http://192.168.1.1:8080
配置文件
services:
- name: service-0
addr: ":8080"
handler:
type: http
chain: chain-0
listener:
type: tcp
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: 192.168.1.1:8080
connector:
type: http
dialer:
type: tcp
监听在8080端口的HTTP代理服务,使用192.168.1.1:8080做为上级代理进行转发。
使用多级转发(转发链)¶
命令行
gost -L :8080 -F http://192.168.1.1:8080 -F socks5://192.168.1.2:1080
配置文件
services:
- name: service-0
addr: ":8080"
handler:
type: auto
chain: chain-0
listener:
type: tcp
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: 192.168.1.1:8080
connector:
type: http
dialer:
type: tcp
- name: hop-1
nodes:
- name: node-0
addr: 192.168.1.2:1080
connector:
type: socks5
dialer:
type: tcp
GOST按照-F设置的顺序将请求最终转发给192.168.1.2:1080处理。
转发模式¶
TCP本地端口转发¶
命令行
gost -L tcp://:8080/192.168.1.1:80
配置文件
services:
- name: service-0
addr: :8080
handler:
type: tcp
listener:
type: tcp
forwarder:
nodes:
- name: target-0
addr: 192.168.1.1:80
将本地的TCP端口8080映射到192.168.1.1的80端口,所有到本地8080端口的数据会被转发到192.168.1.1:80。
UDP本地端口转发¶
命令行
gost -L udp://:10053/192.168.1.1:53
配置文件
services:
- name: service-0
addr: :10053
handler:
type: udp
listener:
type: udp
forwarder:
nodes:
- name: target-0
addr: 192.168.1.1:53
将本地的UDP端口10053映射到192.168.1.1的53端口,所有到本地10053端口的数据会被转发到192.168.1.1:53。
TCP本地端口转发(转发链)¶
命令行
gost -L=tcp://:8080/192.168.1.1:80 -F socks5://192.168.1.2:1080
配置文件
services:
- name: service-0
addr: :8080
handler:
type: tcp
chain: chain-0
listener:
type: tcp
forwarder:
nodes:
- name: target-0
addr: 192.168.1.1:80
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: 192.168.1.2:1080
connector:
type: socks5
dialer:
type: tcp
将本地的TCP端口8080通过转发链映射到192.168.1.1的80端口。
TCP远程端口转发¶
命令行
gost -L=rtcp://:2222/:22 -F socks5://192.168.1.2:1080
配置文件
services:
- name: service-0
addr: :2222
handler:
type: rtcp
listener:
type: rtcp
chain: chain-0
forwarder:
nodes:
- name: target-0
addr: :22
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: 192.168.1.2:1080
connector:
type: socks5
dialer:
type: tcp
在192.168.1.2上开启并监听TCP端口2222,并将192.168.1.2上的2222端口映射到本地TCP端口22,所有到192.168.1.2:2222的数据会被转发到本地端口22。
UDP远程端口转发¶
命令行
gost -L=rudp://:10053/:53 -F socks5://192.168.1.2:1080
配置文件
services:
- name: service-0
addr: :10053
handler:
type: rudp
listener:
type: rudp
chain: chain-0
forwarder:
nodes:
- name: target-0
addr: :53
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: 192.168.1.2:1080
connector:
type: socks5
dialer:
type: tcp
在192.168.1.2上开启并监听UDP端口10053,并将192.168.1.2上的10053端口映射到本地UDP端口53,所有到192.168.1.2:10053的数据会被转发到本地端口53。
-----------------------------------------------------------
配置概述
建议
在使用配置文件前,建议先了解一下GOST中的一些基本概念和架构,对于理解配置文件会有很大帮助。
可以随时在命令行模式下使用-O输出当前配置。
默认配置文件
如果-C和-L参数都未指定,GOST会在以下位置寻找gost.yml或gost.json文件:当前工作目录,/etc/gost/,$HOME/gost/。如果存在则使用此文件作为配置文件。
GOST运行方式有两种:命令行直接运行,和通过配置文件运行。命令行方式可以满足大多数使用需求,例如简单的启动一个代理或转发服务。如果需要更加详细的配置,可以采用配置文件方式,配置文件支持yaml或json格式。
详细的配置说明请参考:
命令行参数说明
配置文件说明
命令行模式与配置文件之间存在一个转换关系,例如:
gost -L http://gost:gost@localhost:8080?foo=bar -F socks5+tls://gost:gost@192.168.1.1:8080?bar=baz
对应的配置文件:
yaml格式:
services:
- name: service-0
addr: "localhost:8080"
handler:
type: http
chain: chain-0
auth:
username: gost
password: gost
metadata:
foo: bar
listener:
type: tcp
metadata:
foo: bar
chains:
- name: chain-0
hops:
- name: hop-0
nodes:
- name: node-0
addr: 192.168.1.1:8080
connector:
type: socks5
auth:
username: gost
password: gost
metadata:
bar: baz
dialer:
type: tls
metadata:
bar: baz
json格式:
{
"services": [
{
"name": "service-0",
"addr": "localhost:8080",
"handler": {
"type": "http",
"chain": "chain-0",
"auth": {
"username": "gost",
"password": "gost"
},
"metadata": {
"foo": "bar"
}
},
"listener": {
"type": "tcp",
"metadata": {
"foo": "bar"
}
}
}
],
"chains": [
{
"name": "chain-0",
"hops": [
{
"name": "hop-0",
"nodes": [
{
"name": "node-0",
"addr": "192.168.1.1:8080",
"connector": {
"type": "socks5",
"auth": {
"username": "gost",
"password": "gost"
},
"metadata": {
"bar": "baz"
}
},
"dialer": {
"type": "tls",
"metadata": {
"bar": "baz"
}
}
}
]
}
]
}
]
}
所有-L参数会按顺序转换为services列表,每个service会自动生成名称name属性。
scheme部分会被解析为handler和listener,例如http会被转换为http处理器和tcp监听器。
地址localhost:8080部分对应service的addr属性。
认证信息gost:gost部分被转换为handler.auth属性。
参数选项部分foo=bar被转换为handler.metadata和listener.metadata
如果存在转发链,则使用handler.chain属性引用此转发链(通过name属性)。
如果有-F参数,则在chains列表中生成一条转发链,一个-F对应转发链的hops列表中的一项,-F参数按顺序转换为对应hop中的node。
scheme部分会被解析为connector和dialer,例如socks5+tls被转换为socks5连接器和tls拨号器。
地址192.168.1.1:8080部分对应node的addr属性。
认证信息gost:gost部分被转换为connector.auth属性。
参数选项部分foo=bar被转换为connector.metadata和dialer.metadata
系统服务¶
GOST支持以系统服务的方式运行
Windows¶
通过Windows的sc命令可以创建一个Windows服务:
sc create gost binpath= "C:\gost.exe -L :8080" start= auto
Linux¶
通过Systemd来管理GOST进程
新建/etc/systemd/system/gost.service脚本:
[Unit]
Description=GO Simple Tunnel
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/gost -L=:8080
Restart=always
[Install]
WantedBy=multi-user.target
设置为开机启动
systemctl enable gost
启动服务
systemctl start gost
-----------------------------------------------------------
常见问题¶
GOST v3和v2版本有何区别?¶
GOST的每一个大版本都是在上一个版本基础之上进行架构的重大调整,v3版本也不例外。 在尽量保证使用上的兼容性的情况下,v3版本基于v2版做了完全的重构,使得整个架构更加的清晰合理,易于扩展,为后续的开发打下基础。
GOST v3为什么独立出来了?¶
GOST v3版本是一次重大的升级,除了功能和用法上的相似外,完全可以认为是一个全新的应用。v2版本功能也已经成熟,为了不对之前的版本造成影响,也为了不受之前版本的影响,独立出来是比较好的选择。
GOST v2和v3版本可以混用吗?¶
根据具体使用的协议而定,一些标准成熟的协议例如TLS,HTTP,SOCKS5等是相互兼容的,但部分协议(例如QUIC,HTTP/3等)无法保证兼容性。
GOST支持定制开发吗?¶
不支持。
GOST会商业化收费吗?¶
没有这方面的打算。GOST是一款开源软件,所有源代码均公开,任何人都可以自由使用和修改。
我该如何支持该项目?¶
您的使用和意见反馈就是对项目最大的支持!
如果您还想请开发者喝杯咖啡可以通过以下渠道(喝茶就免了)
-----------------------------------------------------------
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
发表评论: