Repository navigation
Overview
ssh2proxy is a Go-based CLI application designed to facilitate proxying and network tunneling through SSH connections. It provides a robust, modular system for managing complex proxy operations, network traffic handling, and operational monitoring.
Core Components
- CLI (
cmd/ssh2proxy): Main entry point for the application, handling CLI commands and flags. - SSH Client (
internal/sshclient): Manages SSH connections, including keep-alive, monitoring, automatic reconnections, and channel management. - Proxy Logic (
internal/proxy): Implements SOCKS and HTTP proxy servers to route traffic. - TUN Integration (
internal/tun): Integratestun2socksfor network-level traffic encapsulation, with support for embedding external binaries. - Metrics & Limits (
internal/metrics,internal/limits): Monitors network performance, resource usage (CPU/Memory), connection counts, and rate limiting to ensure stability. - Updater (
internal/updater): Provides a self-update mechanism via GitHub releases, supporting cross-platform versioning.
Build & Infrastructure
- Makefile: Automates the build process with cross-compilation support for Linux, macOS, and Windows (AMD64/ARM64).
- Dependencies: Uses standard Go modules; includes
tun2socksas a key external dependency. - Automation: Includes scripts for readme updates and artifact checksum generation.
Status
The project is architecturally modular and actively maintained, focusing on stability, observability, and robust connectivity management for SSH-based tunneling.