Deblan blog

[Astuce] Contourner un bridage HTTP comme celui de Free

...et pas que d'ailleurs.

Si vous avez besoin de contourner un bridage quelconque sur un accès HTTP alors plusieurs dispositifs existent. Dans cet article, deux outils seront présentés et vous verrez qu'ils sont simples à mettre en place.

Avant toute chose, sachez que vous êtes responsable de vos actes, donc évitez de faire ça n'importe où, ça pourrait vous causer des ennuis :)

La première solution pourra être mise en place si vous possédez un serveur Linux. Il s'agit d'installer un proxy HTTP accessible uniquement en local et auquel vous serez connecté via une connexion SSH.

J'ai choisi de travailler avec privoxy et le serveur est sous Debian.

1. Installation de privoxy
$ su -
# aptitude update
# aptitude install privoxy
# aptitude clean

On va vérifier qu'il est en fonctionnement avec lsof. Sachez que privoxy écoute par défaut sur le port 8118.

# lsof -i :8118
COMMAND  PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
privoxy 9064 privoxy    4u  IPv4 1544903      0t0  TCP localhost:8118 (LISTEN)

Si lsof ne retourne rien, vérifiez que le port est ouvert sur votre firewall et relancez le serveur :

# service privoxy restart
2. Ouverture de la connexion coté client

On va ouvrir une connexion SSH vers le serveur et créer un tunnel. Quand votre client effectuera une connexion TCP sur votre machine locale (port 8118), la requête sera transmise au serveur privoxy et ce dernier fonctionnera comme un relais.

2.1. Vous êtes sur Linux, BSD ou bien sur Mac

Dans un terminal :

$ ssh -NL 8118:localhost:8118 votre_serveur -l votre_login

Une fois la ligne de commande entrée, laissez le terminal ouvert.

2.2. Vous êtes sur Windows

Il faudra passer par un client comme Putty. Si vous utilisez Putty, suivez le tutorial suivant. Indiquez simplement "8118" à la place de "8887" et "6667".

3. Configuration du navigateur internet

La dernière étape consiste à configurer votre navigateur internet. Pour ce faire, rendez-vous dans la gestion du proxy et paramétrer le serveur localhost et le port 8118. Voici un exemple avec Firefox :

Proxy Firefox

Sachez qu'avec cette méthode, tout est chiffré entre vous et le serveur proxy. Elle est intéressante pour traverser un réseau susceptible de vous surveiller. L'ensemble des accès vers le web passera par ce proxy sauf si vous indiquez des exceptions (noms de domaines). Comme le trafic est chiffré, vous aurez nécessairement une perte de débit plus ou moins importante suivant votre machine, le serveur et le débit entre


La méthode suivante est intéressante dans le cas de Free. En effet, il n'est pas nécessaire de passer tout le temps dans le proxy mais seulement sur certaines pages. On va donc utilisez un service en ligne (autre type de proxy). J'ai choisi de travailler avec Proxfree car il a le mérite d'être gratuit et de faire le taf qu'on lui demande.

Vous avez maintenant deux solutions : vous rendre sur Proxfree et rentrer manuellement les informations ou bien automatiser tout cela.

De mon coté, je suis un flemmard et je n'ai pas envie de le faire manuellement. Mon objectif ici sera d'accéder à Youtube et contourner les restrictions de débit de Free (mon FAI).

1. Préparer votre navigateur

Pour continuer la manipulation, vous devrez installer le plugin Greasemonkey. Il est disponible pour Firefox, Chrome et un mec a même fait un plugin pour Internet Explorer. Pour rappel, Greasemonkey permet d'exécuter des scripts javascript sur les pages de son choix.

2. Configurer Greasemonkey

Note : Greasemonkey vous demandera quel éditeur de texte vous utilisez.

Une fois Greasemonkey installé, ajoutez-lui un nouveau script. Plusieurs paramètres vous seront demandés : indiquez "proxy_free" comme nom et comme namespace puis incluez les URL suivantes : http://www.proxfree.com/?proxy_it et http*://*youtube.*/watch*. Vous pourrez ajouter d'autres URL si vous le désirez. La seule obligatoire est http://www.proxfree.com/?proxy_it.

Une fois ces paramètres définis, il faudra placer le code suivant :

// ==UserScript==
// @name        proxy_free
// @namespace   proxy_free
// @include     http*://*youtube.*/watch*
// @include     http://www.proxfree.com/?proxy_it
// @version     1
// ==/UserScript==


if((document.location.href).toString().indexOf('proxy_it') === -1) 
{
	GM_setValue('get', document.location.href);
	GM_setValue('main_submission', 'PROXFREE');
	GM_setValue('pfserverDropdown', 'http://eu.proxfree.com/request.php?do=go');
	GM_setValue('allowCookies', 'on');
	GM_setValue('removeTitle', 'on');
	GM_setValue('pfipDropdown', 'FR-Rou');
	GM_setValue('removeScripts', 'on');
	GM_setValue('removeObjects', 'on');
	GM_setValue('noReferer', 'on');
	GM_setValue('noUseragent', 'on');

	var proxy = document.createElement('div');
	proxy.innerHTML = '<div style="position: fixed; top: 100px; left: 0; background: red; padding: 5px"><button id="proxy_it" onclick="document.location.href = \'http://www.proxfree.com/?proxy_it\'">PROXY</button></div>';
	document.body.appendChild(proxy);
}
else
{
	var form = document.getElementsByTagName('form')[0];
	var form_html = '';
	var fields = ['get', 'main_submission', 'pfserverDropdown', 'allowCookies', 'removeTitle', 'pfipDropdown', 'removeScripts', 'removeObjects', 'noReferer', 'noUseragent'];

	for(i in fields) {
		form_html += '<input type="hidden" name="'+fields[i]+'" value="'+GM_getValue(fields[i])+'" />';	
	}

	form.innerHTML = form_html;
	form.submit();
}
3. Tester que tout fonctionne

La dernière étape consiste à tester que Greasmonkey et le script fonctionnent bien. Pour ce faire, rendez-vous sur une page de visualisation de vidéo Youtube. Vous devriez voir une bouton rouge très moche tout à gauche de votre page. Cliquez dessus et attendez un instant. Ce script va automatiquement configurer Proxfree et vous rediriger (derrière le service) sur Youtube.

Enjoy :)


  • Mathieu
    • ,
    • A merci mec,
      J'ai essayé pas mal de solution mais rien de bien concluant pour matter des vidéos Youtube dans des conditions correctes (parce que bon, 240p merci bien).
      Je viens de tester la méthode Greasmonkey et ça marche nickel, à moi le 720p à nouveau !
  • Respawner
    • ,
    • Perso j'ai monté un tunnel vpn (openvpn FTW!) entre mon routeur maison et mon serveur OVH, quelques routes bien placées et hop on profite du super tuyau entre Google et OVH.
  • ®om
    • ,
    • Je n'ai pas bien compris pourquoi tu utilises privoxy si c'est pour y accéder par un tunnel SSH. Autant créer directement un proxy socks avec SSH :
      <pre>ssh -CND1234 server</pre>
      Ensuite, dans Firefox, au lieu de renseigner la ligne HTTP, tu renseignes la ligne SOCKS avec <code>localhost</code> et <code>1234</code>.
  • Simon
    • ,
    • J'utilise le tunnel pour accéder à d'autres services, en modifiant le port d'entrée et celui de sortie. C'est donc par habitude que j'utilise cette méthode :)
  • ®om
    • ,
    • L'avantage de l'option -D (redirection de port dynamique), c'est que tu n'as pas à le reconfigurer pour chaque service (rediriger port par port).

      Après, il faut que le service que tu utilises supporte les proxies SOCKS. Si ce n'est pas le cas, il suffit de le lancer avec tsocks, qui s'occupera de faire les redirections.
  • Simon
    • ,
    • Je ferai des tests. merci pour l'astuce !
  • zeromonkey
    • ,
    • bonjour, je n'ai rien compris concernant la partie où il faut placer le code. J'ai cherché à le coller dans Greasemonkey mais je ne sais pas où ? Et c'est quoi l'extension du script ? Merci
  • james
    • ,
    • salut Simon,
      J'ai essayé le script mais le bouton tout moche ^^ n'apparait pas et je crois qu'il manque un '.' avant youtube dans le script .

      Merci en tout cas ;)
  • james
    • ,
    • **Pardon j'ai oublié de précisez que j'ai utilisé l'étape greasemonkey.
  • james
    • ,
    • Désolé simon pour le "spam"
      Cette fois ci j'ai bien le bouton mais j'ai une page blanche stipulant que la page est non trouvé :(
  • Simon
    • ,
    • Visiblement c'est un problème que tout le monde doit avoir maintenant ôÔ J'ai droit au même message. C'est peut-être un problème temporaire. Wait and see.
  • Ohax
    • ,
    • Salut l'ami Simon,

      Je ne connaissait pas ce proxy, mais quel est son principal intérêt selon toi par rapport à TinyProxy ?
  • Simon
    • ,
    • Je ne sais pas. J'ai installé ce proxy il y a une bonne année et je ne me rappel pas avoir fais de recherches pour déterminer s'il était plus mauvais ou meilleurs qu'un autre. Ça pourrait être intéressant de le tester (moi, TinyProxy).
  • james
    • ,
    • Bonjour simon ,
      c'est bon tout est rentré dans l'ordre ^^ je voulais te remercier pour cet astuce ,dommage que ce ne soit pas vue par plus de monde alors que beaucoup de gens sont touchés par ce probléme , bref je partage ton site autant que je le peux .:)
      bonne continuation
  • JP
    • ,
    • Un grand merci pour ce tuto !
      J'ai déjà trouvé comment faire sur mon téléphone android, restait plus qu'à trouver pour mon PC. voila chose faite.
  • JP
    • ,
    • PS : Y a moyen de rajouter ça pour google map, voire google en général?
      Il me semble que le bridage youtube de free est aussi présent pour google.
  • gsirom
    • ,
    • Bonjour,

      merci pour l'astuce avec greasemonkey, c'est juste une tuerie de pouvoir enfin regarder youtube en 1080 :D

      par contre, cela marcherai aussi pour deezer afin de contourner les indisponibilités d'artistes suivant le pays?

      je n'ai qu'a rajouter cette adresse dans le script: http://www.deezer.com/* ???
  • Simon
    • ,
    • Salut :) En principe ça devrait fonctionner. Le problème que tu vas rencontrer seront les limites du proxy : dans le cas de freproxy, il va réécrire un certain nombre d'url vers des images, des javascripts, etc. pour tout passe derrière eux. Si il y a des choses manquantes (du flash ou un javascript par exemple), tu vas peut-être avoir un site web qui ne fonctionne pas comme tu l'attends.
  • spider1163
    • ,
    • Merci pour le script !
      Il fonctionne encore malgré les mises à jour de Youtube.
      A la ligne 17 j'aurai laissé la valeur à "default" afin d'exploiter le serveur recommandé, celui de Roubaix étant généralement surchargé

Ajouter un commentaire

Vous pouvez utiliser du markdown.Afficher l'aide.