Легковесный HTTP/HTTPS reverse proxy с поддержкой SOCKS5 и HTTP(S) прокси, переписывания заголовков и CORS.
Lightweight HTTP/HTTPS reverse proxy with SOCKS5 and HTTP(S) proxy support, header rewriting and CORS.
┌─────────────────────────────────────────┐
│ Proxy Pool │
│ ┌───────┐ ┌───────┐ ┌───────┐ │
│ │Proxy 1│ │Proxy 2│ │Proxy 3│ ... │
│ │ OK │ │ OK │ │TIMEOUT│ │
│ └───┬───┘ └───┬───┘ └───────┘ │
│ │ │ │
│ └────┬────┘ │
│ │ Health Check (5 min) │
┌────────┐ ┌─────────────┐ │ ▼ │
│ Client │────▶│ SockStream │──────┼──▶ Round-Robin / Random │
└────────┘ │ │ │ │ │
│ - CORS │ │ │ Retry on timeout │
│ - ACL │ │ ▼ │
│ - Headers │ │ ┌─────────────┐ │
│ - TLS/ACME │ │ │ Target Host │ │
└─────────────┘ │ └─────────────┘ │
└─────────────────────────────────────────┘
Основные возможности:
| Функция | Описание |
|---|---|
| Proxy Pool | Пул прокси с автоматической ротацией (round-robin / random) |
| Health Check | Проверка доступности прокси каждые 5 минут |
| Auto Retry | При таймауте автоматический переход на следующий прокси |
| Header Rewrite | Перезапись Host, Origin, Referer для совместимости с целевым сервером |
| Access Control | Фильтрация по IP (allow/block списки, IPv4/IPv6) |
| TLS | Поддержка сертификатов и автоматический ACME (Let's Encrypt) |
Key features:
| Feature | Description |
|---|---|
| Proxy Pool | Pool of proxies with automatic rotation (round-robin / random) |
| Health Check | Proxy availability check every 5 minutes |
| Auto Retry | Automatic failover to next proxy on timeout |
| Header Rewrite | Rewrite Host, Origin, Referer for target server compatibility |
| Access Control | IP filtering (allow/block lists, IPv4/IPv6) |
| TLS | Certificate support and automatic ACME (Let's Encrypt) |
docker pull ghcr.io/foxzi/sockstream:latest
docker run -p 8080:8080 ghcr.io/foxzi/sockstream -target https://example.comwget https://github.com/foxzi/SockStream/releases/download/v0.1.7/sockstream_0.1.7_amd64.deb
sudo dpkg -i sockstream_0.1.7_amd64.deb
sudo systemctl enable --now sockstreamwget https://github.com/foxzi/SockStream/releases/download/v0.1.7/sockstream-0.1.7-1.x86_64.rpm
sudo rpm -i sockstream-0.1.7-1.x86_64.rpm
sudo systemctl enable --now sockstreamСкачайте бинарник для вашей платформы со страницы релизов.
Download binary for your platform from releases page.
go build ./cmd/sockstream
./sockstream -config config.example.yaml./sockstream -target https://example.comСтатус / Health check: GET /healthz возвращает 200 ok.
Поддерживаются YAML/TOML файл, переменные окружения (SOCKSTREAM_*) и CLI-флаги.
Пример config.example.yaml:
listen: 0.0.0.0:8080
host_name: example.com
target: https://target.com
proxy:
type: socks5
address: 127.0.0.1:1080
# auth:
# username: user
# password: pass
cors:
allowed_origins:
- "*"
access:
allow:
- 0.0.0.0/0
headers:
rewrite_host: true
rewrite_origin: true
rewrite_referer: true
add:
- "X-Forwarded-Proto: https"
delete:
- X-Forwarded-ForКлючевые переменные окружения:
SOCKSTREAM_LISTEN,SOCKSTREAM_TARGET,SOCKSTREAM_HOST_NAMESOCKSTREAM_PROXY_TYPE,SOCKSTREAM_PROXY_ADDRESS,SOCKSTREAM_PROXY_USERNAME,SOCKSTREAM_PROXY_PASSWORDSOCKSTREAM_ALLOW_IPS,SOCKSTREAM_BLOCK_IPS(список CIDR через запятую)SOCKSTREAM_CORS_ORIGINS,SOCKSTREAM_ADD_HEADERS(key=value,key2=value2)SOCKSTREAM_TLS_CERT_FILE,SOCKSTREAM_TLS_KEY_FILE,SOCKSTREAM_ACME_DOMAIN,SOCKSTREAM_ACME_EMAIL,SOCKSTREAM_ACME_CACHE_DIR
docker build -t sockstream .
docker run -p 8080:8080 sockstream -target https://example.org- HTTP/HTTPS сервер с CORS, логированием и ACL по IP
- Проксирование HTTP/WebSocket к целевому хосту с перепиской Host/Origin/Referer и добавлением заголовков
- Исходящие соединения через SOCKS5 или HTTP(S) прокси
- TLS: ручные сертификаты или ACME/Let's Encrypt (HTTP-01)
- Один бинарник без внешних зависимостей времени выполнения