A lightweight and efficient SSH reverse proxy tool implemented in Go, featuring a beautiful Terminal User Interface (TUI).
- Modern and responsive terminal interface
- SSH session management
- Real-time connection status monitoring
- User-friendly interface for managing SSH connections
- SSH reverse proxy functionality
- Multiple concurrent SSH connections support
- TCP port forwarding
- Secure session management
- Built-in logging system
- Clone the repository:
git clone https://github.com/youkale/echogy.git
cd echogy
- Install dependencies:
go mod download
- Configure your settings in
config.json
:
{
"addr": ":443",
"ssh_addr": ":22",
"domain": "your-domain.com",
"idle_timeout": 300,
"key": "YOUR_SSH_KEY"
}
- Build and run:
make build
./echogy
.
├── cmd/ # Command line tools
├── logger/ # Logging framework
├── tui/ # Terminal User Interface components
├── pprof/ # Performance profiling
├── echogy.go # Core SSH implementation
├── conn.go # Connection management
├── facade.go # Facade pattern implementation
├── forward.go # Port forwarding logic
└── util.go # Utility functions
- SSH Server: Handles SSH connections and session management
- Forward Proxy: Manages TCP port forwarding
- TUI: Provides an interactive terminal interface
- Logger: Structured logging with multiple output formats
ssh-keygen -b 2048 -f echogy_rsa
# Copy the private key content to config.json
# DNS A records
A your-domain.com YOUR_SERVER_IP
A *.your-domain.com YOUR_SERVER_IP
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the BSD License - see the LICENSE file for details.