Gost是一款简单易用的安全隧道工具,既能作为正反向代理使用、也可以用于端口转发用途,目前已迭代至Gost v3版本、虽尚未正式发布、但已可提前尝鲜。本文记录下通过Gost搭建http/socks协议代理的方式,比较其它的代理搭建脚本通用性更强、部署更简单,由于属于明文代理、不建议直接在大陆用于科学上网,其它网络环境另说。
Gost项目地址:https://github.com/ginuerzh/gost
Gost v3项目地址: https://github.com/go-gost/gost
Gost官方文档:https://gost.run/
安装Gost
1、在Linux服务器中下载解压Gost压缩包,本文基于Gost v2演示,根据需要修改版本;
##AMD架构
wget https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-amd64-2.11.5.gz
tar -zxvf gost-linux-amd64-2.11.5.gz
mv gost-linux-amd64/gost /usr/bin/gost
chmod +x /usr/bin/gost
##ARM架构
wget https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-armv7-2.11.5.gz
tar -zxvf gost-linux-armv7-2.11.5.gz
mv gost-linux-armv7/gost /usr/bin/gost
chmod +x /usr/bin/gost
##Gost v3安装脚本
bash <(curl -fsSL https://github.com/go-gost/gost/raw/master/install.sh)
2、Gost支持通过命令行运行、也支持json配置文件运行,这里演示在命令行启动一条代理,http或socks代理根据需求选择;
## 无需认证(修改端口号即可)
gost -L http://:8080
gost -L socks://:1080
## 开启认证(其中的 “账号” “密码” “端口” 自行修改)
gost -L http://账号:密码@:端口
gost -L socks://账号:密码@:端口
## 开启socks的UDP中转功能
gost -L socks://账号:密码@:端口?udp=true
3、命令行启动的方式在关闭SSH窗口时会导致代理失效,可以采用 nohup
挂载至后台运行;
##挂载启动、重启服务器失效,再次运行即可恢复
nohup gost -L socks://账号:密码@:端口?udp=true > /dev/null 2>&1 &
##关闭挂载的gost进程
kill -9 $(ps aux | grep "gost" | sed '/grep/d' | awk '{print $2}')
4、nohub命令在服务器重启后会失效,也可以做成系统服务运行,命令行输入 nano /etc/systemd/system/gost.service
,写入以下内容并替换其中的代理参数;
[Unit]
Description=gost
After=syslog.target
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/usr/bin/
ExecStart=/usr/bin/gost -L socks://账号:密码@:端口?udp=true
[Install]
WantedBy=multi-user.target
5、启动Gost并添加开机自启
systemctl start gost
systemctl enable gost