J'ai récemment "acheté" un VPS que je veux utiliser comme proxy pour pouvoir utiliser certains sites et des choses que je ne peux pas atteindre en Allemagne.
Étant donné que j'étais encore trop paresseux pour configurer Squid et OpenVPN (ce que je pense actuellement nécessaire), j'utilise le tunnelage ssh.
Maintenant, après quelques semaines, je me suis demandé si le tunnel ssh ne convenait pas, ou - et c'est ma question - s'il y a des mises en garde / contras / inconvénients que je dois avoir à l'esprit?
ssh
proxy
ssh-tunneling
Nils Riedemann
la source
la source
Réponses:
Le problème de performances survient lorsque vous tunnelisez TCP sur TCP car vous avez deux couches effectuant des corrections adaptatives (démarrage lent, évitement de l'encombrement, retransmission rapide, voir RFC2001 ).
Pas bien conscients les uns des autres, ils éprouveront de grandes difficultés si vous avez une perte sur la connexion externe.
Cette page décrit le phénomène en détail.
Éditer:
Plutôt que de s'en tenir au problème TCP sur TCP, jetez un œil à sshuttle qui l'empêche.
Jetez un œil à la section intitulée " Théorie du fonctionnement " pour encore plus de détails sur cette situation.
la source
tun/tap
tunneling qui se traduit par tcp-over-tcp. SOCKSv5 ne souffre pas des mêmes problèmes mais ne fonctionne pas de manière transparente avec toutes les applications (alors que tun / tap est juste une autre interface réseau afin qu'il puisse être géré de manière transparente).Une chose à laquelle je peux penser est la performance. Mais cela dépend vraiment du genre de choses que vous tunnelez.
la source
Normalement, j'ai constaté que la latence augmente, mais le débit est correct (90%) de la normale avec la tunnellisation SSH. Assurez-vous de définir
ServerAliveInterval
pour éviter les déconnexions et enveloppez-le dans un script pour continuer à redémarrer le tunnel en cas d'échec.Le principal inconvénient est qu'il s'agit d'un tunnel de port par TCP, sauf si vous utilisez SOCKS. SOCKS est bien, mais la latence semble augmenter encore plus avec elle, et bien sûr, tous les clients ne prennent pas en charge SOCKS.
Vous devrez peut-être exécuter
GatewayPorts
sur le client ou le serveur SSH pour permettre aux autres de se connecter via votre tunnel. Sur le serveur, cela nécessite un accès root à sshd_config.La principale mise en garde concernant les performances (comme d'autres le notent) est que les connexions non fiables ne conviennent probablement pas bien avec cette approche, car les algorithmes de TCP ne réagissent pas bien sous l'encapsulation.
Cela dit, SSH semble "faire la bonne chose" la plupart du temps.
la source