Je peux utiliser mon ordinateur à la maison A pour se connecter par SSH à un serveur B où l'accès au réseau externe est bloqué. En d'autres termes, toutes les demandes à Internet à partir de B jeter une erreur: réseau est injoignable . Puis-je rediriger toutes ces demandes de passer par l'ordinateur A qui a un accès illimité à Internet?
Serveur B est un serveur qui accueille l'un de mon site. Je veux télécharger des fichiers afin d'installer certains logiciels. Mais la connexion est bloquée. J'ai pu transférer des fichiers, mais il a été compliqué parce que les versions logicielles sont différentes sur A et B , de sorte que les dépendances où il est différent et il a fallu différents fichiers A et B .
J'ai cherché sur Internet et il semble que j'ai besoin d'un tunnel inversé. Mais je n'ai trouvé que des solutions où n port est redirigé . Mais ce n'est pas ce que je dois que je ne veux pas B accès à A = mais à l'Internet.
Vous pouvez exécuter un proxy sur ordinateur A pour lequel l'ordinateur B connecterait ensuite pour accéder à Internet via un ordinateur A.
Quelque chose comme ça
+----------+ +-----------+
| |+----SSH+-->| |
| A | | B |
|+--------+| | |
Internet <-++-+PROXY<++<SSH Tunnel--+ |
|+--------+| | |
+----------+ +-----------+
Installez un proxy comme un calmar sur A qui écoute sur le port 3128, puis vous pouvez SSH au serveur avec ceci -
[.____] ssh -L 3128:127.0.0.1:3128 user@B
Qui permettra à B d'accéder à Internet via un
Il suffit d'ajouter quelques étapes plus claires à @Lawrence et aux réponses de @ Spirail.
Faites la configuration comme suit:
Configuration sur l'hôte A:
yum install squid
http_access deny all
puis ajouter http_access allow all
dans /etc/squid/squid.conf/etc/squid/squid.conf
comme suit:refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
cache_peer 10.140.78.130 parent 8080 0 no-query default
never_direct allow all
Configuration sur l'hôte B:
export http_proxy=http://127.0.0.1:3129
export https_proxy=http://127.0.0.1:3129
source /etc/environment
Maintenant, notre configuration est complète.
Création de tunnel SSH avec transfert de port distant
Exécutez la commande SSH suivante de l'hôte A
[.____] ssh -R 3129:localhost:3128 user@HostB
Si vous voulez faire un tunnel SSH persistant, vous pouvez utiliser Autossh comme suit:
[.____] autossh -M 20000 -f -NT -R 3129:localhost:3128 user@HostB
[.____] Pour au-dessus de la commande Autossh de travailler, vous devriez avoir la configuration des clés SSH d'Hosta à Hostb
Vérification d'Internet:
wget https://google.com
Schéma de flux de trafic : -
La réponse de @Lawrence était suffisamment bonne pour que je puisse tout faire tomber. Mais voici les étapes les plus détaillées que j'ai utilisées.
J'ai utilisé ceci pour utiliser mes ordinateurs portables 4G dongle pour parcourir Internet sur un PI de framboise avec une connexion de ligne fixe à un routeur WiFi.
Si votre hôte est un Mac: Installez Squidman http://squidman.net/squidman/
(Pas seulement un calmar générique, j'ai eu trop de problèmes avec la construction) Les paramètres par défaut semblaient assez bon pour moi.
connectez-vous à 4G Connectez-vous au WiFi - Configurez une adresse IP statique sur votre WiFi et supprimez l'adresse de la passerelle (sauf si vous faites des choses avancées), vous obtenez deux itinéraires par défaut et son très gênant. - Assurez-vous que votre routeur WiFi n'utilise pas la même plage de 192.168.x.y (configurez un "X" différent dans ce cas)
ssh -R 8080:localhost:8080 pi@<ip address of the pi or target machine>
Sur le PI
export http_proxy=http://localhost:8080
avec Visudo Ajoutez le texte:
Defaults env_keep = "http_proxy https_proxy ftp_proxy"
Maintenant, wget fonctionnera et aussi, Sudo apt-obtenez-vous afin que vous puissiez installer des packages.
Si vous voulez aussi bien que c'est ici: https://stackoverflow.com/questions/128035/how-do--pull-from-a-git-repository-fth-an-http-proxy Englisons