使用GOST搭建一个简单的端口转发(Linux&Windows)
不使用rinetd ,也可以使用GOST,rinetd更加小,C语言,直接编译执行。 GOST复杂功能,支持各种代理。
介绍
Gost是一个功能多样且实用的安全隧道工具,使用的是go语言编写
GitHub项目:
https://github.com/ginuerzh/gost
Gost文档:
https://docs.ginuerzh.xyz/gost
Gost搭建Socks5:
https://sunpma.com/862.html
特性
- 多端口监听
- 可设置转发代理,支持多级转发(代理链)
- 支持标准HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5代理协议
- Web代理支持探测防御
- 支持多种隧道类型
- SOCKS5代理支持TLS协商加密
- Tunnel UDP over TCP
- TCP/UDP透明代理
- 本地/远程TCP/UDP端口转发
- 支持Shadowsocks(TCP/UDP)协议
- 支持SNI代理
- 权限控制
- 负载均衡
- 路由控制
- DNS解析和代理
- TUN/TAP设备
Linux安装
- x86
wget "https://github.com/ginuerzh/gost/releases/download/v2.8.1/gost_2.8.1_linux_amd64.tar.gz"
tar -zxvf gost_2.8.1_linux_amd64.tar.gz
mv gost_2.8.1_linux_amd64/gost /usr/bin/gost
chmod +x /usr/bin/gost
- ARM(比如甲骨文ARM机型)
wget "https://github.com/ginuerzh/gost/releases/download/v2.8.1/gost_2.8.1_linux_arm.tar.gz"
tar -zxvf gost_2.8.1_linux_arm.tar.gz
mv gost_2.8.1_linux_arm/gost /usr/bin/gost
chmod +x /usr/bin/gost
TCP转发
gost -L=tcp://:本地使用端口/远程服务IP:远程服务端口
UDP转发
gost -L=udp://:本地使用端口/远程服务IP:远程服务端口
权协议转发(TCP+UDP)
gost -L=:本地使用端口/远程服务IP:远程服务端口
小飞机转发
gost -L=:本地使用端口 -F=ss://加密方式:密码@远程服务IP:远程服务端口?nodelay=true
示例:使用A服务器的8888端口转发IP为114.114.114.114的B服务器的9999端口(TCP+UDP)
gost -L=
:8888/114.114.114.114:9999
创建命令后我们就可以连接到A服务器的8888端口,从而使用B服务器的9999端口;
如果服务器使用了宝塔面板需要在面板安全设置中放行对应的端口;
如果测试后没有问题,就可以使用nohup命令将转发设置挂载到后台持续运行;
nohup命令重启后会失效,开机后再次挂载即可重新使用
挂载后台
nohup gost -L=:本地使用端口/远程服务IP:远程服务端口 > /dev/null 2>&1 &
关闭挂载
kill -9 $(ps aux | grep "gost" | sed '/grep/d' | awk '{print $2}')
Windows安装
首先下载需要的Windows版本程序:
https://github.com/ginuerzh/gost/releases
压缩包解压后将得到的exe后缀文件移动到C盘根目录下
然后打开系统CMD(命令提示符)输入以下命令开始运行:
# 切换到C盘根目录
cd /
# 开始转发
gost-windows-amd64.exe -L=tcp://:本地使用端口/远程服务IP:远程服务端口
# 其中gost-windows-amd64.exe为移动到C盘根目录下的程序名称,如有不同自行修改;