Skip to content

GreyhavenHQ/greyproxy

Repository files navigation

Greyproxy

A managed network proxy with a built-in web dashboard, rule engine, and REST API. Greyproxy wraps powerful multi-protocol tunneling capabilities with an intuitive management layer for controlling and monitoring network traffic.

This software is meant to be used with greywall, a deny-by-default sandbox that wraps commands with filesystem and network isolation.


Dashboard
image
Pending Requests

Rules

Logs

Features

  • Web Dashboard: Real-time overview of proxy traffic, pending requests, and rule management, all served from a single binary
  • Rule Engine: Define allow/deny rules with pattern matching on container, destination, and port
  • Pending Requests: Review and approve/deny network requests awaiting a policy decision
  • Multi-Protocol Proxy: HTTP, SOCKS5, and DNS proxies with forwarding chain support
  • DNS Caching: Built-in DNS resolution and caching with hostname enrichment on requests
  • REST API: Full HTTP API for automation and integration
  • Real-Time Updates: WebSocket-based live updates on the dashboard
  • Single Binary: Web UI, fonts, icons, and assets are all embedded, no separate frontend to deploy

Quick Start

Homebrew (macOS)

brew tap greyhavenhq/tap
brew install greyproxy

Build from Source

git clone https://github.com/greyhavenhq/greyproxy.git
cd greyproxy
go build ./cmd/greyproxy

Install

Install the binary to ~/.local/bin/ and register it as a systemd user service:

./greyproxy install

This copies the binary, registers a systemd user service, and starts it automatically. The dashboard will be available at http://localhost:43080.

To remove everything:

greyproxy uninstall

Run in Foreground

To run the server directly without installing as a service:

greyproxy serve

Or with a custom configuration file:

greyproxy serve -C greyproxy.yml

Service Management

Once installed, manage the service with:

greyproxy service status
greyproxy service start
greyproxy service stop
greyproxy service restart

Configuration

Greyproxy ships with a sensible default configuration embedded in the binary. To customize, pass a YAML config file with -C. See greyproxy.yml for a full example.

greyproxy:
  addr: ":43080"        # Dashboard and API
  db: "./greyproxy.db"  # SQLite database

services:
  - name: http-proxy
    addr: ":43051"
    handler:
      type: http
    listener:
      type: tcp

  - name: socks5-proxy
    addr: ":43052"
    handler:
      type: socks5
    listener:
      type: tcp

Default Ports

Service Port
Dashboard/API 43080
HTTP Proxy 43051
SOCKS5 Proxy 43052
DNS Proxy 43053

Acknowledgments

Greyproxy is a fork of GOST (GO Simple Tunnel) by ginuerzh. GOST is an excellent and feature-rich tunnel and proxy toolkit written in Go, and its solid foundation made this project possible. We are grateful to ginuerzh and all GOST contributors for their work and for releasing it under the MIT license.

The core tunneling, protocol handling, and proxy infrastructure in Greyproxy originates from GOST v3. For documentation on the underlying proxy and tunnel capabilities, refer to the GOST documentation.

License

This project is licensed under the MIT License, the same license as the original GOST project.

Copyright (c) 2026 The Greyproxy Authors. Original copyright (c) 2016 ginuerzh.

Packages

 
 
 

Contributors

Languages