logo
tt's Note
  • 运维
    • 数据库
    • linux
    • vpn
    • 日志
    • 中间件
    • 服务
    • 监控
    • shell
    • windows
    • 语言
    • 云服务
    • 其他
  • 开发
    • 工具
  • 软件
    • 浏览器
    • 多端
    • win
    • mac
    • 网站
  • 项目
    • 效率工具
    • 兴趣
  • 脚本
    • jenkins
    vpn概览
    WireGuard
    gost
    ipsec-vpn-server
    v2raya(linux连接魔法)
    微软云VPN搭建
    上一页WireGuard下一页ipsec-vpn-server

    #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 部署

    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
    
    # 如果通了,就可以杀掉进程换成autossh
    autossh -M 0 -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