web-dev-qa-db-fra.com

Donnez un accès au serveur à Internet, via Client Connexion par SSH

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.

18
A.L

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

8
Lawrence

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:

  1. Installez le calmars de serveur proxy sur l'hôte A. Par défaut, les calmars écoutent sur le port 3128.
    [.____] yum install squid
  2. Commentaire le http_access deny all puis ajouter http_access allow all dans /etc/squid/squid.conf
  3. Si l'hôte a elle-même utilise un proxy dire 10.140.78.130:8080 pour se connecter à Internet, ajoutez également ce proxy à /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:

  1. Ajoutez les entrées suivantes à/etc/environnement
export http_proxy=http://127.0.0.1:3129
export https_proxy=http://127.0.0.1:3129
  1. source /etc/environment

Maintenant, notre configuration est complète.

Création de tunnel SSH avec transfert de port distant

  1. 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

  2. Cela permettra à l'hôte B d'accéder à Internet via l'hôte A.

Vérification d'Internet:

  1. Exécutez la commande suivante de l'hôte B
    [.____] wget https://google.com

Schéma de flux de trafic : -enter image description here

11
Dhiru

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

5
SpiRail