HamstersTunnel is a flexible tunneling service that allows clients to configure and manage network services with different protocols (HTTP, TCP, UDP). It provides an API to manage and create service configurations for tunneling, enabling dynamic mapping of local services to public ports on a remote server.
✅ Reverse Proxy for TCP connections
🔄 Planned support for UDP and HTTP
🛠️ Built-in Service Management for dynamic port mapping
⚡ Fast and lightweight, ideal for tunneling and proxying
🔒 Security-focused, designed with service isolation
✅ TCP Reverse Proxy (Base version)
🔄 UDP Support (In Progress)
🔄 HTTP Proxy Support (Planned)
📖 Documentation & Examples
🚀 Performance Optimizations
Clone the repository:
git clone https://github.com/typegaro/HamstersTunnel.git
cd HamstersTunnelUse make for easy management:
# Run the server
test
make server
# Run tests
make test
# Build the server
make build-server
# Clean build files
make cleanTo run HamstersTunnel using Docker, follow these steps:
-
Build the Docker image:
First, ensure you've built the Docker image using the following command:docker build -t HamstersTunnel . -
Run the Docker container:
You can run the Docker container and map the internal port (8080) to an external port on your host using thedocker runcommand:docker run -p 8080:8080 HamstersTunnel
This will start the server inside the container and expose the internal port
8080to the external port8080on your host. You can access the service by navigating tohttp://localhost:8080in your browser. -
Custom port mapping:
If you want to use a different external port, you can modify the command like so:docker run -p <external-port>:8080 HamstersTunnel
Replace
<external-port>with the desired port on your host (e.g.,9000:8080).
Contributions are welcome! Feel free to open issues and PRs.