用gost搭建反向代理,实现内网穿透

Gost是一个强大的隧道工具,能实现类似FRP的反向连接功能。本文介绍了如何通过Gost进行远程端口映射,将内网服务暴露到公网,例如将HostB的SSH服务通过HostA和Server的配合映射到公网。方法包括使用socks5和relay协议,但注意Gost的单连接模式在高并发下可能表现不佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gost 是一个非常优秀的代理(proxy)和隧道(tunnel)工具, 支持多种形式的端口映射。

与FRP类似,它也可以实现反向连接的内网穿透。

不过与FRP相比,gost使用更为简单,性能非常稳定。支持N多种传输协议,现在网上介绍gost的文章并不多,gost本身是一个强大的网络工具,做内网穿透简直是小case。

本文介绍采用远程端口映射方式的内网映射, 就是所谓的rtcp。

远程端口映射的意思就是,将本地端的一个服务的端口p(tcp/udp)映射到远程公网主机的端口p1上, 用户通过访问远程的端口P来访问本地的这个服务端口p。

一个典型的内网穿透的场景如下图所示:

server用VPS实现,可以提供公网访问。

host A和host B处于内网中,没有公网IP地址,要想让外部的人员可以访问内网中的host B上的ssh服务( :22端口),在host A上通过gost 将host B的22端口映射到远程 server上的2222端口上。

当然此处也可以不要hostB,将22映射到本机hostA的22端口,也是可以的。

 下面我们来看具体的做法:

gost 采用gost 的v3版本来做。

下载地址: Releases · go-gost/gost · GitHub

采用如下的命令:

# server
./gost -L socks5://:5555?bind=true


# host A
./gost -L rtcp://:2222/hostB_IP:22   -F socks5://server_IP:5555

其他用户此时可以用  ssh root@server_IP  -p2222 命令,访问hostB的ssh服务。

当然也可以不指定hostB_IP,则默认是访问本机的22端口,如下所示。

# host A
./gost -L rtcp://:2222/:22   -F socks5://server_IP:5555

此处用的是TCP的端口映射,与具体应用层的协议无关。所以各种基于tcp的协议都是支持的。比如http,rmtp。

gost的官方文档位于:

SOCKSv4/v5 - GOSTicon-default.png?t=O83Ahttps://gost.run/tutorials/protocols/socks/

此处用的是socks5协议进行传输,用relay协议也是可以的。relay协议是gost自己实现的类socks5协议,专门用于端口映射。

Relay - GOSTicon-default.png?t=O83Ahttps://gost.run/tutorials/protocols/relay/

# server
./gost -L relay://:5555?bind=true

# host A
./gost -L rtcp://:2222/hostB_IP:22   -F relay://server_IP:5555

当然高级的用法是relay结合其他协议,比如kcp。

kcp采用UDP协议,在一些丢包率高的场景下可以大大提高链路的数据传输带宽。

# server
./gost -L relay+kcp://:5555?bind=true

# host A
./gost -L rtcp://:2222/hostB_IP:22   -F relay+kcp://server_IP:5555

kcp在此处是作为数据通道,承载上层的relay协议,具体的代理功能由relay协议实现。

gost可选的数据传输协议包括以下这么多种,比如用tls可以进行加密,kcp可以加速。

数据通道用于承载代理或转发协议数据,目前支持的数据通道协议有:

  • tcp - 原始TCP协议
  • mtcp - Multiplex TCP 多路复用功能的TCP
  • udp - 原始UDP协议
  • tls - TLS协议
  • dtls - DTLS协议
  • mtls - Multiplex TLS,在TLS上增加多路复用功能
  • ws - Websocket
  • mws - Multiplex Websocket,在Websocket上增加多路复用功能
  • wss - Websocket Secure,基于TLS加密的Websocket
  • mwss - Multiplex Websocket Secure,在基于TLS加密的Websocket上增加多路复用功能
  • h2 - HTTP2协议
  • h2c - HTTP2 Cleartext
  • grpc - gRPC协议
  • pht - Plain HTTP Tunnel
  • sshsshd - SSH协议
  • kcp - 基于UDP的KCP协议
  • quic - 基于UDP的QUIC协议
  • h3 - HTTP3协议,基于PHT协议构建数据通道
  • wt - HTTP/3 WebTransport模式
  • ohttp - HTTP Obfuscation
  • otls - TLS Obfuscation
  • icmpicmp6 - ICMP和ICMPv6协议
  • ftcp - Fake TCP

与FRP相比,是不是更加的简单,根本不需要写什么配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路边闲人2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值