MENU

服务器折腾 | 使用GOST实现简单的端口转发

简介

GO语言实现的安全隧道

特性

官网查看

安装

先在这里查看最新的版本,截止本文发布时间,最新版为v3.0.0-rc8,接下来,将以这个版本来进行接下来的步骤

#查看服务器架构
uname -a

amd64 (目前大部分服务器)

#下载文件
wget https://github.com/go-gost/gost/releases/download/v3.0.0-rc8/gost_3.0.0-rc8_linux_amd64.tar.gz
#解压文件
tar -zxvf gost_3.0.0-rc8_linux_amd64.tar.gz
#修改文件位置
mv gost_3.0.0-rc8_linux_amd64/gost /usr/bin/gost
#赋予执行权限
chmod +x /usr/bin/gost

arm

wget https://github.com/go-gost/gost/releases/download/v3.0.0-rc8/gost_3.0.0-rc8_linux_arm64.tar.gz
tar -zxvf gost_3.0.0-rc8_linux_arm64.tar.gz
mv gost_3.0.0-rc8_linux_arm64/gost /usr/bin/gost
chmod +x /usr/bin/gost

有些情况下,可能服务器会出现奇怪的网络问题,我们可以先把压缩文件下载下来解压之后,将里面的程序通过WINSCP等软件来上传至服务器的 /usr/bin/ 目录,再通过下面的命令赋予相应的权限

chmod +x /usr/bin/gost

使用方法

设置需要的转发方式

以下内容是根据我本人需要用到的内容来写的,如需更高级的使用,可以查看官方文档
在使用IPV6地址时候,需要将IP地址两端使用中括号[]包裹
TCP转发

 gost -L=tcp://:本地端口/目标IP:目标端口

UDP转发

 gost -L=udp://:本地端口/目标IP:目标端口

TCP+UDP同时转发

 gost -L=:本地端口/目标IP:目标端口

使用样例

#TCP+UDP同时转发
gost -L ://:2222/1.1.1.1:22

我们这里假设目标端口22目标服务器(IP为1.1.1.1)的ssh端口(并不推荐这样做,安全性不够高),这条命令将本地服务器IP:2222映射到目标服务器IP:22,也就是所有到本地服务器的2222端口的数据会被转发到目标服务器的22端口,这样我们就可以通过本地服务器IP:2222连接到目标服务器的ssh上

设置后台运行

测试正常的情况下可以通过nohup命令来将服务运行在后台,但在重启之后将会断开
挂载

#TCP+UDP同时转发
nohup gost -L=:本地端口/目标IP:目标端口 > /dev/null 2>&1 &

关闭

kill -9 $(ps aux | grep "gost" | sed '/grep/d' | awk '{print $2}')
本文作者:P3ter
本文标题:《服务器折腾 | 使用GOST实现简单的端口转发》
本文链接:https://p3ter.me/posts/gost_port_forwarding.html
版权声明:本博客文章均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!

最后编辑于: 2024 年 01 月 15 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码
添加新评论

验证码:

已有 2 条评论
  1. 变相反代?

    1. @Teacher Du我用来转发流量用的