simple

command module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2022 License: GPL-3.0 Imports: 22 Imported by: 0

README

Simple

Build GPL Downloads

Simple是一款网络代理/VPN服务端管理平台。使用simple来轻松管理服务器上多种不同协议的服务端。

为什么

如果你只是想在服务器上随便启动一个网络代理的服务端自己用,那么你不需要simple
如果你想把你的服务器打造成一个强大的多协议多用户网络代理平台,那么你需要simple

支持的协议

  • trojan
  • shadowsocks
  • openvpn
  • ikev2
  • WireGuard
  • V2ray

功能

  • 创建、删除、查询VPN客户端配置
  • 配置数据持久化
  • 用户级限速
  • 容器化部署
  • 使用grpc api管理
  • 使用http api管理
  • 使用命令行工具(spctl)管理
  • 使用grpc+protobuf与VPN对接,可自由插拔不同VPN
  • prometheus数据指标采集
  • 使用dashboard管理

Show me

create get grafana

安装

Simple使用多服务模块化设计,需要数个服务同时运行,传统部署方式会略麻烦,推荐使用docker部署。

安装docker和docker-compose

安装docker 安装docker-compose

下载docker-compose定义文件
wget https://github.com/fregie/simple/releases/download/v1.0.2/simple-docker-compose.tar.gz
tar -xzf simple-docker-compose.tar.gz
cd docker
修改配置

启动服务前需要修改部分配置

config.yaml

simple的配置文件,需要将host字段修改为服务器的公网ip或域名

trojan-go/server.json (不使用trojan无需修改)

trojan-go服务端的配置文件。
trojan-go文档

trojan-go/simple.fregie.cn.crt & simple.fregie.cn.key (不使用trojan无需修改)

trojan使用的证书,根据你服务器的域名修改

启动服务
docker-compose up -d
安装命令行管理工具spctl
wget https://github.com/fregie/simple/releases/download/v1.0.2/spctl
chmod +x spctl

spctl会读取$HOME目录下的.spctl文件作为配置文件

echo 'grpcAddr: 127.0.0.1:4433' > $HOME/.spctl

使用

配置spctl

配置文件$HOME/.spctl.

# simple服务的grpc地址
grpcAddr: 127.0.0.1:4433
session

session是simple的基本单位,含义为一个vpn的客户端会话,可以理解为一个客户端可用的配置。

查看可用协议
$ spctl get protos
Support protos:
• trojan
• ss
创建
$ spctl create session --proto ss --type url --name ss-01        
 SUCCESS  Create success!
ID:            ss-50001-3R0v02B1tU1J1qXzDCFBhSwiX
Name:          ss-01
Proto:         ss
Config type:   URL
Config:
ss://YWVzLTEyOC1nY206M1IwdjAyQjF0VTFKMXFYekBzaW1wbGUuZnJlZ2llLmNuOjUwMDAx
查看全部
$ spctl get sessions                                     
Name      | ID                                 | proto  | config type
ss-02     | ss-50000-TJ6WoD93G795H2bMA1L5umcUs | ss     | URL        
trojan-01 | trojan-3c2230a6-4tQL30I5nt0Oyl4UK3 | trojan | URL        
ss-01     | ss-50001-3R0v02B1tU1J1qXzDCFBhSwiX | ss     | URL        
查看特定session
$ spctl get session ss-01 --conf
ID:            ss-50001-3R0v02B1tU1J1qXzDCFBhSwiX
Name:          ss-01
Proto:         ss
Config type:   URL
Option:
    Upload rate limit:   0 mbps
    Download rate limit: 0 mbps
Config:
ss://YWVzLTEyOC1nY206M1IwdjAyQjF0VTFKMXFYekBzaW1wbGUuZnJlZ2llLmNuOjUwMDAx
删除
$ spctl delete session ss-01                              
 SUCCESS  Delete ss-01

配置

Simple

config.yaml

grpc_addr: "0.0.0.0:4433"                    # grpc服务的监听地址
grpc_gateway_addr: "0.0.0.0:4443"            # grpc_gateway的监听地址(http接口)
prom_addr: "0.0.0.0:4442"                    # export prometheus数据的http监听地址
host: simple.fregie.cn                       # 服务器host,ip或者域名,用于通知session该服务器的外网ip或域名
sqlite: /root/simple/docker/simple/simple.db # sqlite存储数据的路径,用于数据持久化
services:                                    # 接入服务的vpn服务端适配器的地址
  - "127.0.0.1:10003"

对接prometheus

simple支持通过prometheus采集指标,并通过grafana展示。
在配置文件中增加:

prom_addr: "0.0.0.0:4442"

simple会使用这个地址作为export的http addr,在prometheus配置文件中的scrape_configs下增加对这个地址指标的采集即可采集到数据:

- job_name: simple
  scrape_interval: 10s
  static_configs:
  - targets:
    - your_server:4442

在grafana中import该dashboard: 14879 https://grafana.com/grafana/dashboards/14879

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
adapter
proto
api
Package api is a reverse proxy.
Package api is a reverse proxy.
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL