Ho creato la mia piattaforma di tunneling
Ho passato tre giorni a rifinire una web app sul mio laptop. Sembrava perfetta. Poi ho provato a testarla sul mio telefono. Tutto è andato in crash.
Lo sviluppo locale diventa complicato quando serve un secondo dispositivo. Condividere un IP locale fallisce a causa di firewall e problemi con i certificati HTTPS.
Ho provato Ngrok. Funziona, ma il piano gratuito interrompe le connessioni. Anche gli URL hanno un aspetto terribile. Stringhe casuali come a1b2-34-56.ngrok-free.app sono poco professionali da condividere con clienti o team.
Volevo un tunnel con URL puliti e leggibili. Così ho costruito il mio.
Ho combinato un tunnel personalizzato con un abbreviatore di URL. Ho aggiunto l'IA per creare slug intelligenti e ho integrato protezioni di sicurezza.
Lo stack tecnologico: • Tunnel / Proxy: Django Channels, Daphne, WebSockets, Python & Node.js CLI • Frontend: Next.js, TailwindCSS, Shadcn/UI • Backend: Django 5, Graphene GraphQL • Database: PostgreSQL (Neon) • Auth: JWT, bcrypt • AI: Google Gemini • Security: MaxMind GeoLite2, Google Safe Browsing API
Come funziona:
- Tunneling WebSocket bidirezionale. Un agente CLI locale si connette a un server Django per inoltrare le richieste HTTP.
- Protezione dalle race condition. Utilizzo le espressioni F() di Django per aggiornamenti atomici, mantenendo le analisi accurate.
- Telemetria non bloccante. Le ricerche di posizione e sistema operativo vengono eseguite in thread in background per mantenere bassa la latenza.
- Slug tramite IA. Gemini legge l'URL di destinazione per creare uno slug significativo invece di un testo casuale.
- Sicurezza proattiva. Blocco i range di IP privati ed eseguo controlli con Google Safe Browsing prima di salvare qualsiasi link.
Il backend e la logica di tunneling sono stabili. Il frontend è ancora in fase di sviluppo.
Al momento sto studiando per gli esami all'IITM. Ho messo in pausa le nuove funzionalità per concentrarmi sui miei studi. Invece di lasciare il codice fermo, lo sto aprendo per una revisione.
Ho bisogno del vostro feedback su alcune cose:
- Latenza: Come posso mantenere i reindirizzamenti sotto i 10ms su larga scala?
- Sicurezza: Qual è il modo migliore per rafforzare la mitigazione SSRF?
- Scalabilità: Dovrei usare WebSockets o TCP per tunnel a lunga durata?
- Osservabilità: Quali metriche dovrei monitorare per la salute del tunnel?
Se avete esperienza con proxy worker o system design, per favore condividete le vostre opinioni.
Analisi completa del system design: [Link] Codebase: [Link]
Come gestite il test dei permessi mobile durante lo sviluppo locale? Utilizzate tunnel di terze parti o strumenti personalizzati?
Fonte: https://dev.to/zallu/my-ngrok-urls-got-so-ugly-i-built-my-own-tunneling-platform-instead-59d
