gost

buyfakett

gost

gost-server

开源地址open in new window

文档地址open in new window

二进制文件安装
mkdir gost_tmp/ && \
cd gost_tmp/ && \
wget https://github.com/buyfakett/centos7_initialization/releases/download/v1.2.3/gost.tar.gz && \
tar zxvf gost.tar.gz && \
mv -f gost /usr/local/bin/gost && \
cd .. && \
rm -rf gost_tmp/

一、socks5代理

搭建在线路好的机器上, 可以用于连接海外服务器

#!/bin/bash

docker rm -f gost-socks5
docker run -d \
--restart=always \
--net host \
--name gost-socks5 \
gogost/gost \
-L socks5://user:password@:1080

二、ssh 代理

TIP

下面的都是B为国内云, C为海外云

代理结构

内网(A)--ssh--公网(B)--ssh--公网(C)

服务端 gost 部署

socks5代理

B、C服务器生成隧道用户

useradd -m tunnel-user && echo 'password' | passwd tunnel-user --stdin && chsh -s /bin/false tunnel-user

A服务器公私钥生成

ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa

B、C服务器导入公钥

mkdir -p /home/tunnel-user/.ssh/ && chown -R tunnel-user:tunnel-user /home/tunnel-user/.ssh/ && chmod 700 /home/tunnel-user/.ssh/
cat << EOF >> /home/tunnel-user/.ssh/authorized_keys
此处A服务器/root/.ssh/id_rsa.pub文件内容
EOF
chmod 0600 /home/tunnel-user/.ssh/authorized_keys

打通隧道

ssh -NfL *:1090:127.0.0.1:1090 -J tunnel-user@B tunnel-user@C
# 如需要有两层中转
ssh -NfL *:1080:127.0.0.1:1080 -J tunnel-user@B,tunnel-user@D tunnel-user@C

在A ssh 添加存活检测

# 添加完后重启 sshd 服务
echo "ClientAliveInterval 60" >> /etc/ssh/sshd_config && systemctl restart sshd

本地 socks5 地址

# socks5 带密码
socks5://user:password@A:1080
# socks5 不带密码
socks5://A:1090

三、gost 代理

代理结构

内网(A)--relay+tls--公网(B)--relay+tls--公网(C)

落地机(C)(翻墙机)

把过来的加密流量转发到socks5中

#!/bin/bash

docker rm -f gost-server

docker run -d \
--restart=always \
--net host \
--name gost-server \
gogost/gost \
-L relay+tls://:2500/:1080 \
-L relay+tls://:2600/:1090 \
-L socks5://user:password@:1090 \
-L socks5://:1080

中转机(B)[可选]

#!/bin/bash

docker rm -f gost-proxy

docker run -d \
--restart=always \
--net host \
--name gost-proxy \
gogost/gost \
-L relay+tls://:12500/xx.xx.xx.xx:2500

TIP

也可以直接在这里把加密socks5当成连接的地址

#!/bin/bash

docker rm -f gost-client

docker run -d \
--restart=always \
--net host \
--name gost-client \
gogost/gost \
-L tcp://:10800 \
-F relay+tls://xx.xx.xx.xx:2600

起飞机(A)

把socks5的流量加密转发到[中转机]落地机

#!/bin/bash

docker rm -f gost-client

docker run -d \
--restart=always \
--net host \
--name gost-client \
gogost/gost \
-L tcp://:1090 \
-F relay+tls://xx.xx.xx.xx:12500 \
-F relay+tls://xx.xx.xx.xx:2500
Last Updated 8/29/2024, 5:32:28 AM