Un tunnel, dans le contexte de réseaux informatiques, est une encapsulation de données d'un protocole réseau dans un autre, situé dans la même couche du modèle en couches, ou dans une couche de niveau supérieur.
Par exemple, pour faire passer le protocole IPv6 dans l'Internet actuel (qui est presque entièrement en IPv4) on va créer un tunnel entre deux machines IPv4 ; ce tunnel, pour le protocole IPv6, semblera un simple lien point-à-point (un logiciel comme traceroute ne verra donc pas le tunnel).
En sécurité, on crée souvent des tunnels chiffrés, par exemple comme le fait SSH. Les données peuvent alors y circuler sans craindre d'être écoutées.
Les tunnels peuvent être utilisés pour créer des réseaux privés virtuels (VPN).
Le tunnel HTTP est le cas particulier de faire passer une connexion interdite par un pare-feu (SSH par exemple) dans un protocole HTTP presque toujours autorisé. C'est particulièrement utile quand le pare-feu ne bloque pas simplement les ports associés (22 pour SSH par exemple), mais analyse aussi les protocoles utilisés.