A lightweight (99Kb), 100% free and open-source alternative to commercial tunneling solutions like Ngrok, Cloudflare Tunnel, and others.
V-Tunnel allows you to expose local services to the internet through secure tunnels. Perfect for development, demos, webhooks, IoT devices, and remote access scenarios.
- Lightweight: Only 99Kb, minimal dependencies
- Secure: JWT authentication and AES-256-CBC encryption
- Easy to use: Simple CLI interface
- Web Management Panel: Control your tunnels through a web interface
- Self-hostable: Run your own tunnel server
- Multi-user: Support for multiple users and tunnels
- Traffic monitoring: Track data transferred through tunnels
- No rate limits: Unlike most commercial solutions
- Persistent tunnels: Run as background services
- Cross-platform: Works on Windows, macOS, and Linux
- Background mode: Run server as a daemon process
- API Mode: Run an API server for management
npm install -g v-tunnelSet up your tunnel server:
vtunnel serverFollow the interactive setup to:
- Create an admin user
- Configure server port (default: 9012)
- Set tunnel port range (default: 51200-52200)
vtunnel client loginAfter logging in, the management panel is automatically activated at http://localhost:9011.
vtunnel client createFollow the prompts to create a tunnel with:
- Tunnel name
- Description (optional)
- Local service address (default: localhost)
- Local service port
vtunnel client startYour local service is now accessible through the tunnel!
After logging in, a web management panel is automatically activated at:
http://localhost:9011
The management panel provides advanced features:
- Adding new tunnels
- Examining tunnel details
- Starting and stopping tunnels
- Deleting tunnels
- Viewing detailed statistics
| Command | Description |
|---|---|
vtunnel client login |
Log in to the tunnel server (automatically activates web panel) |
vtunnel client logout |
Log out from the tunnel server |
vtunnel client create |
Define a new tunnel |
vtunnel client list |
List all tunnels |
vtunnel client start |
Start a tunnel |
vtunnel client stop |
Stop a running tunnel |
vtunnel client status |
Show status of tunnels |
vtunnel client details |
Show details of a tunnel |
vtunnel client delete |
Delete a tunnel |
vtunnel client password |
Change your password |
vtunnel client api start |
Start the API server for management |
vtunnel client api stop |
Stop the API server |
vtunnel client --help |
Show help information |
| Command | Description |
|---|---|
vtunnel server |
Start the tunnel server |
vtunnel server background start |
Start the tunnel server in background mode |
vtunnel server background stop |
Stop the background tunnel server |
vtunnel server background status |
Check status of the background server process |
vtunnel server --port=9012 |
Specify control server port |
vtunnel server --range-start=51200 |
Set tunnel port range start |
vtunnel server --range-end=52200 |
Set tunnel port range end |
vtunnel server --stats |
Display server stats periodically |
vtunnel server --help |
Show help information |
V-Tunnel uses a client-server architecture:
- Server Component: Hosts the tunnel endpoints and routes traffic
- Client Component: Connects to the server and forwards traffic to local services
- Management Panel: Web interface for controlling tunnels (automatically activated after login)
- API Server: Provides programmatic access to tunnel management
When a tunnel is established:
- The server allocates a port for the tunnel
- The client connects to the server and registers the tunnel
- External traffic to the server's allocated port is forwarded to the client
- The client forwards traffic to the local service
You can run V-Tunnel server as a background service:
# Start the server in background mode
vtunnel server background start
# Check if the server is running
vtunnel server background status
# Stop the background server
vtunnel server background stopWhen running in background mode:
- Server logs are saved to
.vtunnel-server/vtunnel.log - Error logs are saved to
.vtunnel-server/vtunnel-error.log - Process information is stored in
.vtunnel-server/bg.json
You can start and stop the API server for programmatic management:
# Start the API server
vtunnel client api start
# Stop the API server
vtunnel client api stopClient configuration is stored in .vtunnel-client/ directory:
auth.json: Stores authentication informationtunnels.json: Stores tunnel configurations
Server configuration is stored in .vtunnel-server/ directory:
config.json: Stores server configurationvtunnel.db: SQLite database for users and tunnelsbg.json: Background process information (PID and status)vtunnel.log: Server logs when running in background modevtunnel-error.log: Error logs when running in background mode
| Feature | V-Tunnel | Ngrok | Cloudflare Tunnel | LocalTunnel |
|---|---|---|---|---|
| Price | Free | Freemium | Freemium | Free |
| Open Source | ✅ | ❌ | ❌ | ✅ |
| Self-hosted | ✅ | ❌ | ❌ | ✅ |
| Web UI | ✅ | ✅ | ✅ | ❌ |
| API Access | ✅ | ✅ | ✅ | ❌ |
| Custom domains | ✅ | ✅ | ❌ | |
| Multiple tunnels | ✅ | ✅ | ||
| Persistent tunnels | ✅ | ✅ | ❌ | |
| Background mode | ✅ | ✅ | ✅ | ❌ |
| Traffic metrics | ✅ | ✅ | ✅ | ❌ |
| Size | 99Kb | ~15MB | ~10MB | ~5MB |
- Always use strong passwords
- Restrict access to your tunnel server
- Consider running behind a reverse proxy for TLS termination
- Set up firewall rules to restrict access to the tunnel server
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
Cengiz AKCAN - me@cengizakcan.com
V-Tunnel is not affiliated with any of the commercial tunnel providers mentioned.
Ngrok, Cloudflare Tunnel ve diğer ticari tünel çözümlerine alternatif olarak hafif (99Kb), %100 ücretsiz ve açık kaynaklı bir çözüm.
- Hafif: Sadece 99Kb, minimum bağımlılıklar
- Güvenli: JWT kimlik doğrulama ve AES-256-CBC şifreleme
- Kullanımı kolay: Basit komut satırı arayüzü
- Web Yönetim Paneli: Tünellerinizi web arayüzü üzerinden kontrol edin
- Kendi sunucunuzda çalıştırabilme: Kendi tünel sunucunuzu işletin
- Çoklu kullanıcı: Birden fazla kullanıcı ve tünel desteği
- Trafik izleme: Tünellerden aktarılan verileri takip etme
- Limit yok: Çoğu ticari çözümün aksine
- Kalıcı tüneller: Arka plan hizmetleri olarak çalıştırma
- Çapraz platform: Windows, macOS ve Linux'ta çalışır
- Arkaplan modu: Sunucuyu daemon süreci olarak çalıştırma
- API Modu: Yönetim için API sunucusu çalıştırma
npm install -g v-tunnelTünel sunucunuzu kurun:
vtunnel serverEtkileşimli kurulumu takip ederek:
- Bir yönetici kullanıcısı oluşturun
- Sunucu portunu yapılandırın (varsayılan: 9012)
- Tünel port aralığını ayarlayın (varsayılan: 51200-52200)
vtunnel client loginGiriş yaptıktan sonra, yönetim paneli otomatik olarak http://localhost:9011 adresinde aktif olur.
vtunnel client createAşağıdaki bilgileri girerek bir tünel oluşturun:
- Tünel adı
- Açıklama (isteğe bağlı)
- Yerel servis adresi (varsayılan: localhost)
- Yerel servis portu
vtunnel client startYerel servisiniz artık tünel üzerinden erişilebilir!
Giriş yaptıktan sonra, web yönetim paneli otomatik olarak şu adreste aktif olur:
http://localhost:9011
Yönetim paneli gelişmiş özellikler sunar:
- Yeni tüneller ekleme
- Tünel detaylarını inceleme
- Tünelleri başlatma ve durdurma
- Tünelleri silme
- Detaylı istatistikleri görüntüleme
| Komut | Açıklama |
|---|---|
vtunnel client login |
Tünel sunucusuna giriş yap (otomatik olarak web panelini aktifleştirir) |
vtunnel client logout |
Tünel sunucusundan çıkış yap |
vtunnel client create |
Yeni bir tünel tanımla |
vtunnel client list |
Tüm tünelleri listele |
vtunnel client start |
Bir tünel başlat |
vtunnel client stop |
Çalışan bir tüneli durdur |
vtunnel client status |
Tünellerin durumunu göster |
vtunnel client details |
Bir tünelin detaylarını göster |
vtunnel client delete |
Bir tüneli sil |
vtunnel client password |
Şifrenizi değiştirin |
vtunnel client api start |
Yönetim için API sunucusunu başlat |
vtunnel client api stop |
API sunucusunu durdur |
vtunnel client --help |
Yardım bilgisini göster |
| Komut | Açıklama |
|---|---|
vtunnel server |
Tünel sunucusunu başlat |
vtunnel server background start |
Tünel sunucusunu arkaplanda başlat |
vtunnel server background stop |
Arkaplanda çalışan tünel sunucusunu durdur |
vtunnel server background status |
Arkaplanda çalışan sunucu sürecinin durumunu kontrol et |
vtunnel server --port=9012 |
Kontrol sunucusu portunu belirt |
vtunnel server --range-start=51200 |
Tünel port aralığı başlangıcını ayarla |
vtunnel server --range-end=52200 |
Tünel port aralığı sonunu ayarla |
vtunnel server --stats |
Sunucu istatistiklerini periyodik olarak göster |
vtunnel server --help |
Yardım bilgisini göster |
V-Tunnel istemci-sunucu mimarisi kullanır:
- Sunucu Bileşeni: Tünel uç noktalarını barındırır ve trafiği yönlendirir
- İstemci Bileşeni: Sunucuya bağlanır ve trafiği yerel servislere yönlendirir
- Yönetim Paneli: Tünelleri kontrol etmek için web arayüzü (giriş yapıldıktan sonra otomatik aktif olur)
- API Sunucusu: Tünel yönetimi için programatik erişim sağlar
Bir tünel kurulduğunda:
- Sunucu tünel için bir port tahsis eder
- İstemci sunucuya bağlanır ve tüneli kaydeder
- Sunucunun tahsis edilen portuna gelen dış trafik istemciye yönlendirilir
- İstemci trafiği yerel servise yönlendirir
V-Tunnel sunucusunu bir arkaplan servisi olarak çalıştırabilirsiniz:
# Sunucuyu arkaplanda başlat
vtunnel server background start
# Sunucunun çalışıp çalışmadığını kontrol et
vtunnel server background status
# Arkaplan sunucusunu durdur
vtunnel server background stopArkaplan modunda çalışırken:
- Sunucu logları
.vtunnel-server/vtunnel.logdosyasına kaydedilir - Hata logları
.vtunnel-server/vtunnel-error.logdosyasına kaydedilir - İşlem bilgileri
.vtunnel-server/bg.jsondosyasında saklanır
Programatik yönetim için API sunucusunu başlatabilir ve durdurabilirsiniz:
# API sunucusunu başlat
vtunnel client api start
# API sunucusunu durdur
vtunnel client api stopİstemci yapılandırması .vtunnel-client/ dizininde saklanır:
auth.json: Kimlik doğrulama bilgilerini saklartunnels.json: Tünel yapılandırmalarını saklar
Sunucu yapılandırması .vtunnel-server/ dizininde saklanır:
config.json: Sunucu yapılandırmasını saklarvtunnel.db: Kullanıcılar ve tüneller için SQLite veritabanıbg.json: Arkaplan işlem bilgisi (PID ve durum)vtunnel.log: Arkaplanda çalışırken sunucu loglarıvtunnel-error.log: Arkaplanda çalışırken hata logları
| Özellik | V-Tunnel | Ngrok | Cloudflare Tunnel | LocalTunnel |
|---|---|---|---|---|
| Fiyat | Ücretsiz | Freemium | Freemium | Ücretsiz |
| Açık Kaynak | ✅ | ❌ | ❌ | ✅ |
| Kendi sunucunuzda | ✅ | ❌ | ❌ | ✅ |
| Web Arayüzü | ✅ | ✅ | ✅ | ❌ |
| API Erişimi | ✅ | ✅ | ✅ | ❌ |
| Özel alan adları | ✅ | ✅ | ❌ | |
| Çoklu tüneller | ✅ | ✅ | ||
| Kalıcı tüneller | ✅ | ✅ | ❌ | |
| Arkaplan modu | ✅ | ✅ | ✅ | ❌ |
| Trafik metrikleri | ✅ | ✅ | ✅ | ❌ |
| Boyut | 99Kb | ~15MB | ~10MB | ~5MB |
- Her zaman güçlü şifreler kullanın
- Tünel sunucunuza erişimi kısıtlayın
- TLS sonlandırma için bir ters proxy arkasında çalıştırmayı düşünün
- Tünel sunucusuna erişimi kısıtlamak için güvenlik duvarı kuralları ayarlayın
MIT
Katkılar memnuniyetle karşılanır! Lütfen bir Pull Request göndermeye çekinmeyin.
Cengiz AKCAN - me@cengizakcan.com
V-Tunnel, bahsedilen ticari tünel sağlayıcılarından herhangi biriyle ilişkili değildir.