gost
buyfakett
gost
gost-server
二进制文件安装
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 部署
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