大家都懂的代理工具

声明

本站分享的工具均来源于网络,仅供研究和学习之用,如将其用于其他用途,由使用者自行承担全部法律及连带责任,本站及工具作者概不负责。

工具简介

GOST,全名 Go Simple Tunnel,是一款基于 Go 语言开发的安全隧道工具。在 GOST 中,代理节点可以独立处理请求,也可以将请求转发至其他一个或多个代理节点,从而构建多层代理链,实现灵活的代理服务和流量转发。

功能特性

GOST 提供了多样化的代理和转发功能,涵盖了常见代理协议,并支持丰富的代理模式和网络功能:

  1. 多端口监听:支持多端口配置,灵活提供服务。
  2. 代理链转发:允许配置多级转发代理(即代理链),实现复杂的流量分流。
  3. 多种代理协议:支持标准 HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5 等代理协议。
  4. 探测防御:Web 代理具备防探测功能,增强隐私性和安全性。
  5. TLS 加密:SOCKS5 代理支持 TLS 协商加密。
  6. 隧道模式:支持多种隧道类型。
  7. UDP over TCP:可将 UDP 流量封装于 TCP 流量中传输。
  8. 端口转发:支持本地/远程 TCP/UDP 端口转发。
  9. 透明代理:支持 TCP/UDP 透明代理。
  10. Shadowsocks 支持:兼容 Shadowsocks (TCP/UDP) 协议。
  11. SNI 代理:支持 SNI(服务器名称指示)代理。
  12. 权限控制:提供访问权限控制功能。
  13. 负载均衡:支持自动负载均衡,分配流量至不同节点。
  14. 路由控制:支持复杂的路由策略。
  15. DNS 解析与代理:支持 DNS 解析和代理功能。
  16. TUN/TAP 设备支持:支持 TUN/TAP 设备,以便创建虚拟网络接口。

安装和下载

二进制文件

可在 GOST GitHub Releases 下载最新版本的二进制文件。

Docker 安装

若使用 Docker,可使用如下命令快速启动 GOST:

1
docker run --rm ginuerzh/gost -V

快速使用指南

1. 基本 HTTP/SOCKS5 代理配置

选择一台可以访问外网的境外服务器(假设 IP 为 a.b.c.d),在其上启动一个监听在 1080 端口的 HTTP/SOCKS5 代理服务:

1
gost -L :1080

2. 使用 Warp 模式访问特定服务(如 ChatGPT)

若需访问特定服务(如 ChatGPT),可以通过 Warp 网络访问。以下为 Docker 配置示例:

  1. warp 文件夹中创建 docker-compose.yml 文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    version: '3'

    services:
    warp:
    image: caomingjun/warp
    container_name: warp
    ports:
    - '1080:1080'
    restart: always
    environment:
    - WARP_SLEEP=2
    cap_add:
    - NET_ADMIN
    sysctls:
    - net.ipv6.conf.all.disable_ipv6=0
    - net.ipv4.conf.all.src_valid_mark=1
    volumes:
    - ./data:/var/lib/cloudflare-warp
  2. 启动 Warp 容器:

    1
    docker-compose up -d
  3. 将本地端口 1088 转发至 Warp 容器的 1080 端口,并启用加密服务,确保服务对外提供加密代理访问:

    1
    2
    3
    curl --socks5 127.0.0.1:1080 https://cloudflare.com/cdn-cgi/trace # 测试 Cloudflare 访问
    nohup ./gost -L=socks5://user:passwd@:1088 -F=socks5://127.0.0.1:1080 > gost.log& # 启动 GOST 转发
    iptables -t filter -I INPUT -p tcp --dport 1088 -j ACCEPT -m comment --comment gost # 允许 1088 端口流量

为了更加方便,我将上面的两个服务写到了同一个docker-compose.yml文件中,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
version: '3'

services:
warp:
image: caomingjun/warp
container_name: warp
ports:
- '1080:1080'
restart: always
environment:
- WARP_SLEEP=2
cap_add:
- NET_ADMIN
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv4.conf.all.src_valid_mark=1
volumes:
- ./data:/var/lib/cloudflare-warp
gost:
image: ginuerzh/gost
container_name: gost
depends_on:
- warp
ports:
- '1088:1088'
restart: always
command: -L=socks5://user:passwd@:1088 -F=socks5://127.0.0.1:1080
ports:
- '1088:1088'
restart: always

3. 配置中转服务器

如需境内中转服务器,选用另一台境内服务器(假设 IP 为 aa.bb.cc.dd),并监听 8080 端口以提供 HTTP/SOCKS5 代理服务,使用境外服务器 a.b.c.d:1088 作为上级代理节点进行转发:

1
./gost -L=:7080?secrets=secrets.txt -F=socks5://user:passwd@a.b.c.d:1088

secrets.txt 文件中设置用户凭证:

1
2
3
4
5
# 自动重载周期
reload 10s

# 用户名和密码
user password

用户可在浏览器安装代理插件(如 Proxy SwitchyOmega),根据以下图示配置代理,方便地进行流量转发和代理切换。
代理插件

ChatGPT 服务访问

如果需要访问 ChatGPT 服务,可下载官方 ChatGPT 应用,详细教程请参考chatgpt-app 指南

Windows全局代理配置方法

大部分情况下,可以需要在本地Windows开启全局代理配置,并且增加一些白名单,某些域名不走代理,这种情况需要在控制面板 → Internet选项 → 连接 → 局域网设置里面去配置,需要配置一个代理地址,白名单配置到例外里,在”例外”列表中添加需直连的域名/IP段,这里的代理地址可以使用本地的代理127.0.0.1:8080,因为中转服务器的地址需要密码才能连接,所以本地再起一个中转代理,中转代理通过密码去连接中转服务器,这一切都可以通过脚本来实现,写好脚本后,后续一键开启,一键关闭即可,其实也挺方便的。

代理配置
代理白名单
一键开启本地中转代理和全局代理,一键关闭本地中转代理和全局代理的脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@echo off
chcp 65001 > nul
title GOST Proxy Launcher
color 0A

:: 1) 启用代理
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
/v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
/v ProxyServer /t REG_SZ /d "127.0.0.1:8080" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
/v ProxyOverride /t REG_SZ /d "<local>;127.0.0.1;192.168.*;10.*;*.zijieapi.com;*.baidu.com;*.baidupcs.com;*.qq.com;*.sogou.com;*.taobao.com;*.tmall.com;*.alicdn.com;*.aliyun.com;*.alipay.com;*.qq.com;*.tencent.com;*.qpic.cn;*.wechat.com;*.bytedance.com;*.douyin.com;*.toutiao.com;*.pstatp.com;*.jd.com;*.jdstatic.com;*.bcebos.com;*.dnspod.cn;*.qiniu.com;*.qbox.me;*.trae.com.cn;*.amemv.com" /f

echo [INFO] Proxy has been ENABLED.

:: 2) 启动 GOST 在后台
echo [INFO] Starting GOST proxy...
start /b gost.exe -L http://:8080 -F socks5://user:passwd@aa.bb.cc.dd:7080
if errorlevel 1 (
echo [ERROR] GOST failed to start (Error Code: %errorlevel%)
pause
goto :CLEANUP
)

echo [INFO] GOST started. Press any key to stop...
pause >nul

:CLEANUP
echo [INFO] Closing GOST proxy...
:: 3) 结束 GOST 进程(如需更精确,可用 taskkill /PID xxx)
taskkill /f /im gost.exe >nul 2>&1

:: 4) 关闭代理
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" ^
/v ProxyEnable /t REG_DWORD /d 0 /f

echo [INFO] Proxy has been DISABLED.
echo [INFO] Exit.
exit /b

如果需要关闭全局代理,在脚本运行页面按回车键就退出了,当然这里面用到了gost.exe,所以需要提前下载好gost.exe,并且把gost.exe放在脚本所在的目录下,否则脚本运行起来会报错的。当前脚本放到gost目录下,双击运行即可,也可以将该脚本做成快捷方式放到桌面,后续开启和关闭代理就挺方便的了。
快捷方式


声明

本站所分享的工具仅限于学习与研究使用,若用于其他用途,请使用者自行承担所有相关法律责任。