Utilisation de tinyproxy sous WSL2

Si vous souhaitez pouvoir utiliser la connexion de votre machine Linux sous WSL2, par exemple pour accéder à des ressources auxquelles vous n’avez pas accès sur votre environnement principal, vous pouvez installer un proxy tout léger : tinyproxy.

Installation

apt install tinyproxy

Configuration

Elle se fait dans /etc/tinyproxy/tinyproxy.conf.

Pour la voir sans les commentaires :

cat tinyproxy.conf | egrep -v "(^#.*|^$)"

Les paramètres par défaut vont fonctionner.

Voici ma configuration :

User tinyproxy
Group tinyproxy
Port 8888
Timeout 60
DefaultErrorFile "/usr/share/tinyproxy/default.html"
StatFile "/usr/share/tinyproxy/stats.html"
LogFile "/var/log/tinyproxy/tinyproxy.log"
LogLevel Info
PidFile "/run/tinyproxy/tinyproxy.pid"
Upstream http proxy.mondomaine.fr:8080
Upstream socks4 proxy.mondomaine.fr:8080
Upstream socks5 proxy.mondomaine.fr:8080
Upstream none ".in.mondomaine.fr"
Upstream none ".in.autredomaineinterne.mondomaine.fr"
Upstream none ".autredomaine.fr"
MaxClients 200
MinSpareServers 5
MaxSpareServers 100
StartServers 10
MaxRequestsPerChild 0
ViaProxyName "tinyproxy"
DisableViaHeader Yes

Cette configuration permet de relayer toutes les connexions type http et socks4/socks5 vers un proxy « relais » (upstream) interne : proxy.mondomaine.fr sur le port 8080.

Le « upstream none » permet de « bypasser » le proxy pour certains domaines (domaines internes par exemple), dans notre cas : in.mondomaine.fr, in.autredomaineinterne.mondomaine.fr, autredomaine.fr.

Le « DisableViaHeader » évite de modifier les headers entre le client et le serveur final, cela permet donc d’avoir un proxy « transparent ».

Si vous souhaitez limiter les accès à votre proxy en filtrant les IP, vous pouvez utiliser la directive « Allow » :

Allow 127.0.0.1
Allow ::1
Allow 172.31.0.0/16

Votre tinyproxy sera alors accessible sur le port 8888. Pour trouver l’IP de votre machine WSL2 (qui change à chaque redémarrage), vous pouvez utiliser la commande sous batch :

wsl hostname -I

Configuration sur votre navigateur

On va utiliser le plugin : Proxy Switcher.

Pour le configurer, il suffit de mettre l’adresse IP de votre machine sous WSL2 (à récupérer via la commande wsl hostname -I) et le port souhaité (8888 dans notre exemple) :

Configuration sous WinSCP

Il suffit d’aller dans « Avancé » :

Puis indiquer le proxy (adresse IP de wsl2 que l’on récupère via la commande wsl hostname -I) dans la zone « Connexion » :

Autres fonctionnalités

Tinyproxy peut faire office de reverse proxy ou peut permettre de bloquer l’accès à certains sites (option « Filter »).

En cas de lenteur

En cas de lenteur, vérifiez bien votre fichier /etc/resolv.conf. Les serveurs DNS notamment doivent être par ordre de priorité, ceux qui répondent en premier. A adapter en fonction de votre connexion, si votre machine sous WSL2 est en VPN, il faudra alors mettre d’abord les DNS du VPN en question.

nameserver 192.168.1.254
#nameserver 8.8.8.8
search in.mondomaine.fr