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原理学习

下一篇:指针(基础)

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...