gost 常用tunnel配置示例(隧道模式)
创始人
2024-05-20 11:02:31
0

gost是用golang语言实现的一个安全隧道。地址位于:

https://github.com/ginuerzh/gost

是一个不可多得的隧道工具。

至于什么是隧道? 就是可以通过这个工具传输一些其他协议的数据。就像这个样子。

隧道有什么用呢?

可以起到一些加速的作用或者流量变换的作用。 具体就不展开了。

虽然gost带有代理功能,但是我们并不使用代理功能。这里只用它建隧道。

gost的功能特性如下:


多端口监听

多级转发链

多协议支持

TCP/UDP端口转发

TCP/UDP透明代理

DNS解析和代理

TUN/TAP设备

反向代理

负载均衡

路由控制

限速限流

准入控制

动态配置

Prometheus监控指标

Web API

Web UI

Wiki站点:https://gost.run

常用方法

gost由于非常灵活, 用起来对用户的要求还是有点高的。

不过一般掌握几个命令就可以了。

首先网络架构大概是这样的:

gost创建tunnel,在隧道中传输其他的数据。

常用的命令:

命令需要client与server配合。

下面的命令示例中的 server.com需要 在实际中换成具体的server所用的域名,直接用IP在一些情况下大概也可以。

命令示例的是对远端 80端口的通道,当然,不局限于nginx的http服务, 只要是tcp的服务,都可以用。 O(∩_∩)O哈哈~

    • tls tunnel

服务端将连接 从443转发到80口, 客户端监听本机的tcp端口80,Forward到 服务端, tunnel是经过tls加密的。 secure=false可以不对证书进行验证。

# server
gost -L tls://:443/:80# client
gost -L=tcp://:80 -F forward+tls://server.com:443?secure=false

TLS证书

GOST内置了TLS证书,如果需要使用自定义TLS证书,有两种方法:

  • 在GOST运行目录放置cert.pem(公钥)和key.pem(私钥)两个文件即可,GOST会自动加载运行目录下的cert.pem和key.pem文件。

  • 使用key和cert参数指定证书文件路径:

gost -L="tls://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file"
    • kcp tunnel

客户端连接到服务端,形成kcp tunnel, 本地访问80端口与远端80相同。

由于kcp 采用的是udp协议,并且kcp有一些加速的功能,这种方式可以对连接进行加速。

国际线路上kcp速度可以,就是不太持久。(哈哈)

# server,  nginx listen on 80 
gost -L kcp://:9000/:80# client
gost -L tcp://127.0.0.1:80  -F forward+kcp://server.com:9000

如果需要修改kcp隧道的参数,可以在后面用c=xxx这样的形式带上配置文件。

client是需要跟服务端一样的。

# server
gost -L kcp://:9000/:80?c=/path/to/config/file.json# client
gost -L tcp://127.0.0.1:80  -F "forward+kcp://server.com:9000?c=/path/to/config/file.json"

GOST中内置了一套默认的KCP配置项,默认值与xtaci/kcptun中的一致。可以通过参数c指定外部配置文件,配置文件为JSON格式:

{"key": "it's a secrect","crypt": "aes","mode": "fast","mtu" : 1350,"sndwnd": 1024,"rcvwnd": 1024,"datashard": 10,"parityshard": 3,"dscp": 0,"nocomp": false,"acknodelay": false,"nodelay": 0,"interval": 40,"resend": 0,"nc": 0,"sockbuf": 4194304,"keepalive": 10,"snmplog": "","snmpperiod": 60,"tcp": false
}

配置文件中的参数说明请参考kcptun。

3.QUIC tunnel

client本地的80端口通过tunnel通到远端主机的80端口。

中间采用的是quic协议,这个目前速度实测不是特别快。

# server./gost -L quic://:1443/:80# client
.\gost.exe -L tcp://127.0.0.1:80  -F "forward+quic://server.com:1443"

4.其他协议

HTTP2 , HTTP3(目前标准还没定下来), DTLS

等等不再一一叙述,因为命令基本都是类似的。

详情可以查看gost的官方网站。 https://gost.run/tutorials/protocols/overview/

上一篇:pinia原理学习

下一篇:指针(基础)

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...