使用GOST搭建一个简单的端口转发(Linux&Windows)

介绍

Gost是一个功能多样且实用的安全隧道工具,使用的是go语言编写
GitHub项目:https://github.com/ginuerzh/gost
文档https://v2.gost.run

特性

  • 多端口监听
  • 可设置转发代理,支持多级转发(代理链)
  • 支持标准HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5代理协议
  • Web代理支持探测防御
  • 支持多种隧道类型
  • SOCKS5代理支持TLS协商加密
  • Tunnel UDP over TCP
  • TCP/UDP透明代理
  • 本地/远程TCP/UDP端口转发
  • 支持Shadowsocks(TCP/UDP)协议
  • 支持SNI代理
  • 权限控制
  • 负载均衡
  • 路由控制
  • DNS解析和代理
  • TUN/TAP设备

安装

AMD64

wget -O gost.gz https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-amd64-2.11.5.gz

gzip gost.gz -d

mv gost /usr/bin/gost

chmod +x /usr/bin/gost

ARM

wget -O gost.gz https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-armv7-2.11.5.gz

gzip gost.gz -d

mv gost /usr/bin/gost

chmod +x /usr/bin/gost

查看版本

gost -V

使用

SOCKS5 不加密

gost -L=socks5://:本地端口

SOCKS5 加密

gost -L socks5://用户:密码@:本地端口

TCP 转发

gost -L=tcp://:本地使用端口/远程服务IP:远程服务端口

UDP 转发

gost -L=udp://:本地使用端口/远程服务IP:远程服务端口

全协议转发(TCP+UDP)

gost -L=:本地使用端口/远程服务IP:远程服务端口

小飞机转发

gost -L=:本地使用端口 -F=ss://加密方式:密码@远程服务IP:远程服务端口?nodelay=true

自建转发

// 自建
gost -L=ss://AEAD_CHACHA20_POLY1305:密码@:本地端口

// 转发
gost -L=:转发端口 -F=ss://AEAD_CHACHA20_POLY1305:密码@127.0.0.1:本地端口?nodelay=true

参数说明:nodelay - true/false(默认值为false)。默认情况下ss协议会等待客户端的请求数据,当收到请求数据后会把协议头部信息与请求数据一起发给服务端。当此参数设为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盘根目录下的程序名称,如有不同自行修改;

iptables 一键脚本

如果不想使用GOST,也可以选择使用iptables来转发,这里推荐一个233大佬的端口转发一键脚本;
安装

wget -N --no-check-certificate https://raw.githubusercontent.com/sunpma/doubi/master/iptables-pf.sh && chmod +x iptables-pf.sh && bash iptables-pf.sh

管理

./iptables-pf.sh
 iptables 端口转发一键管理脚本 [v1.1.1]
  
 0. 升级脚本
————————————
 1. 安装 iptables
 2. 清空 iptables 端口转发
————————————
 3. 查看 iptables 端口转发
 4. 添加 iptables 端口转发
 5. 删除 iptables 端口转发
————————————
注意:初次使用前请请务必执行 1. 安装 iptables(不仅仅是安装)

 请输入数字 [0-5]:

添加转发时依次输入落地端IP、落地端口、本地端口、本地内网IP、转发类型;
注意:填写本机IP时是填写本地内网IP地址,而非外网IP地址,查看本地内网IP地址可以使用ifconfig命令;
sshot-1.png

最后修改:2024 年 10 月 25 日

发表评论

3 条评论

  1. Jason

    大佬,你这iterm的模板和色彩可以分享下吗?

  2. 怎么添加多个用户名 密码?

  3. prajna

    可以使用这个软件在win10上转发twitch的1935端口进行代理直播推流吗?