Skip to content
On this page

又一私有化部署内网穿透的终极解决方案?GOSTC

对对对,你没看错,前几天还在嚷嚷HP-LITE的我,又投靠GOSTC了。最近GOSTC开源了,V2版本将底层GOST切换成了FRP(所以为啥不改名FRPC? )。GOSTC在FRP完善的功能和高性能基础上,封装了配置分发系统GOSTC-ADMIN,用户不在需要折腾繁琐的FRP配置文件,将节点和客户端加入admin后,直接在admin上可视化配置即可,同时还支持了多个节点,多个客户端的统一配置。

项目地址

项目预览

首页节点配置解析配置转发配置

基础概念

admin

服务端,整个项目的配置分发系统,所有的节点、客户端连接至admin服务,以获取配置。

节点

封装了FRPS服务端和配置文件接受服务,admin下发配置时,实时更新FRPS配置。

客户端

封装了FRPC客户端和配置文件接受服务,admin下发配置时,实时更新FRPC配置。

admin服务搭建

yaml
# docker-compose.yaml
services:
  admin:
    image: sianhh/gostc-admin:latest
    restart: always
    network_mode: host # 服务端根据情况配置网络情况,默认端口8080,可以修改配置文件更改
    container_name: gostc-admin
    volumes:
      - ./data:/app/data
    command:
      - -d # 开发者模式,用于将日志输出到控制台
      - --log-level # 日志级别
      - info

节点搭建

常规节点

yaml
# docker-compose.yaml
services:
  node:
    image: sianhh/gostc:latest
    restart: always
    network_mode: host
    container_name: gostc-node
    command:
      - --tls=true
      - -addr
      - [admin服务的地址]
      - -s
      - -key
      - "[admin服务中创建节点后的密钥]"

注意替换admin服务地址与节点密钥,如果admin服务不是https,则--tls=false

允许自定义域名的节点

yaml
# docker-compose.yaml
services:
  node:
    image: sianhh/gostc:latest
    restart: always
    network_mode: host
    container_name: gostc-node
    command:
      - --tls=true
      - -addr
      - [admin服务的地址]
      - -s
      - -key
      - "[admin服务中创建节点后的密钥]"
      - --proxy-base-url
      - "http://127.0.0.1:8080"
  proxy:
    image: sianhh/gostc-proxy:latest
    restart: always
    network_mode: host 
    container_name: gostc-proxy
    volumes:
      - ./data:/app/data # 数据目录,包含配置文件,日志文件
    command:
      - -d # 开发者模式,用于将日志输出到控制台
      - --log-level # 日志级别
      - info

注意替换admin服务地址与节点密钥,如果admin服务不是https,则--tls=false。 --proxy-base-url属性中的端口需要和proxy配置的api-addr端口一致,默认为8080。

客户端搭建

yaml
# docker-compose.yaml
services:
  client:
    image: sianhh/gostc:latest
    restart: always
    network_mode: host
    container_name: gostc
    command:
      - --tls=true
      - -addr
      - [admin服务的地址]
      - -key
      - "[admin服务中创建客户端后的密钥]"

注意替换admin服务地址与客户端密钥,如果admin服务不是https,则--tls=false。

上次更新于: