LIPTunnel is a fast, lightweight, self-hosted tunneling system that exposes your local server to the internet using your own VPS + domain.
No subscriptions.
No limits.
No tracking.
Just a simple Node.js tunnel that YOU control.
Created by Lasisi Ibrahim Pelumi (Full-Stack Engineer).
Run multiple tunnels with a single command!
Before:
# Need 3 terminal windows
liptunnel http 3000 --server yourdomain.com
liptunnel http 8080 --server yourdomain.com
liptunnel http 5000 --server yourdomain.comNow:
# Just one command!
liptunnel http 3000,8080,5000 --multi --server yourdomain.comOutput:
Multi-Tunnel Mode: Active
Forwarding 1: http://tunnel1-abc.yourdomain.com β http://localhost:3000
Forwarding 2: http://tunnel2-def.yourdomain.com β http://localhost:8080
Forwarding 3: http://tunnel3-ghi.yourdomain.com β http://localhost:5000
Perfect for:
- π§ Microservices development
- π Full-stack projects (frontend + backend)
- π Webhook testing (API + webhook receiver)
- π± Mobile app development
liptunnel/
ββ bin/
β ββ liptunnel.js # CLI client (runs on user machine)
ββ server/
β ββ server.js # Tunnel server (runs on VPS)
ββ docs/
β ββ architecture.md
β ββ multi-tunnel.md
ββ assets/
β ββ liptunnel-banner.gif
β ββ liptunnel-demo.png
β ββ server-pm2.png
ββ package.json
ββ README.md
ββ LICENSE- π₯ Expose any local port over HTTP
- π Generates public URLs like:
http://abcd12.yourdomain.com - π NEW: Multi-tunnel support - run multiple ports simultaneously
- π― NEW:
--multiflag for numbered forwarding display - π° Works with ANY VPS (even old VPN servers)
- β‘ Real-time request forwarding
- π₯ Local dashboard:
http://127.0.0.1:4040 - π No third-party services (no Ngrok, no Cloudflare Tunnels)
- π» Works on Windows, macOS, Linux
- π Zero configuration required
- π§© Full open-source control
- β Fully backward compatible
Below is an actual output of LIPTunnel running live:
This shows:
β Tunnel status
β Forwarding URL
β Live request logs
β Dashboard URL
β Version + region
β Successful POST requests
- You run the tunnel server on your VPS.
- You run the LIPTunnel client on your computer:
liptunnel http 5000 --server yourdomain.com-
The client opens a WebSocket connection to your VPS.
-
Your VPS assigns a random subdomain, e.g.:
http://u8smnt.yourdomain.com- Incoming HTTP requests are forwarded directly to your local machine.
User β yourdomain.com β LIPTunnel VPS β WebSocket β your computer β localhost:5000- Node.js 18+
- A domain you control
- A VPS (1 CPU / 512MB RAM is enough β even old servers work)
- Port 80 available (or use Nginx reverse proxy)
- Clone the project
git clone https://github.com/ibrahimpelumi6142/liptunnel.git
cd liptunnel
npm install-
Configure your domain (Optional)
Edit
bin/liptunnel.jsline 50:
let serverHost = "your-actual-domain.com"; // Replace with your domainOr use the --server flag when running (see usage below).
npm run start:server*.yourdomain.com A <your-vps-ip>On your local machine:
liptunnel http 5000 --server yourdomain.comOutput:
Status: Online
Forwarding: http://abcd12.yourdomain.com β http://localhost:5000Visit this URL from anywhere in the world β it hits your local machine.
Run multiple services at once:
liptunnel http 3000,8080,5000 --multi --server yourdomain.comOutput:
Multi-Tunnel Mode: Active
Forwarding 1: http://tunnel1-abc.yourdomain.com β http://localhost:3000
Forwarding 2: http://tunnel2-def.yourdomain.com β http://localhost:8080
Forwarding 3: http://tunnel3-ghi.yourdomain.com β http://localhost:5000Microservices Development:
liptunnel http 3000,4000,5000 --multi --server yourdomain.com
# 3000 β User Service
# 4000 β Auth Service
# 5000 β Payment ServiceFull-Stack Development:
liptunnel http 3000,8080 --multi --server yourdomain.com
# 3000 β React frontend
# 8080 β Express APIAPI + Webhook Testing:
liptunnel http 8000,8001 --multi --server yourdomain.com
# 8000 β Main API
# 8001 β Webhook receiver (Stripe, GitHub, etc.)http://127.0.0.1:4040- Recent requests
- HTTP status
- Tunnel info
- Multi-tunnel view (when using
--multi)
| Feature | LIPTunnel | Ngrok | Cloudflare Tunnel |
|---|---|---|---|
| Free | β | Limited | β |
| Unlimited tunnels | β | β | β |
| Use your own domain | β | Paid only | β |
| Self-hosted | β | β | β |
| Logs stored locally | β | β | β |
| No tracking | β | β | β |
| Identity branding | You | Ngrok | Cloudflare |
| Multi-tunnel | β | β | β |
| Setup time | 5 min | 2 min | 10 min |
- Architecture - System design and flow
- Multi-Tunnel Guide - Detailed multi-tunnel usage
- Multi-tunnel support β v1.1.0
- HTTPS support (Let's Encrypt)
- Named fixed subdomains
- Authentication tokens
- Configuration file support
- Web-based management UI
- Docker containers
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Lasisi Ibrahim Pelumi
Full-Stack Engineer β’ Automation Developer
- GitHub: @ibrahimpelumi6142
- Email: ibrahimpelumi6142@gmail.com
- YouTube: @bestspotsolution
- Website: onlinequicktools.com
- β¨ Added multi-tunnel support with comma-separated ports
- β¨ Added
--multiflag for numbered forwarding display - β¨ Enhanced dashboard for multiple tunnels
- β¨ Per-tunnel logging in multi mode
- β Fully backward compatible with v1.0.x
- π Bug fixes and improvements
- π Initial release
MIT License β free to use, modify, and distribute.
Made with β€οΈ for developers who value privacy and control


