Comment rendre un serveur Web local visible depuis Internet * sans * configurer la redirection de port sur le routeur?


12

Je développe des sites Web sur mon ordinateur portable (haut de gamme) et je travaille à partir de divers emplacements physiques.

Je voudrais éviter les tracas d'une synchronisation constante avec un serveur Web visible de l'extérieur afin que les clients puissent tester la progression du site (ou à des fins connexes). Par conséquent, j'essaie de trouver un moyen de permettre à mon ordinateur portable d'être automatiquement public visible depuis Internet, de n'importe où, même lorsque je n'ai pas accès au routeur pour configurer la redirection de port (comme dans les cafés ou depuis d'autres connexions sans fil publiques).

Je l' utilise déjà DynDNS pour faire mon choix des noms de domaine en avant vers un serveur de bureau via un routeur que je l' ai mis en place ... mais comme je le dis, je voudrais supprimer l'étape d'utilisation de ce serveur de bureau.

J'espérais que les services payants de proxy inverse (facturant des frais mensuels pour un compte) fourniraient un logiciel propriétaire de client / serveur "proxy inverse" au niveau de la socket qui pourrait être utilisé à cette fin. Je n'en trouve pas. J'utilise déjà TeamViewer et LogMeIn, fournissant des services propriétaires similaires. En fait, j'ai essayé d'utiliser LogMeIn Hamachi VPN pour rendre cela possible - en faisant en sorte que mon bureau (déjà visible sur Internet) transfère le trafic IP demandant le port 80 via le VPN à mon ordinateur portable. Cependant, il ne semble pas possible de configurer Hamachi / Windows comme ceci (mais je peux me tromper).

J'espère qu'il existe un moyen simple et robuste d'y parvenir.


Vous pouvez réellement configurer un serveur Web de base à l'aide du navigateur Web Opera (Opera unite), mais ceci n'est une solution que dans le cas d'une application HTML + JavaScript qui, je crois, ne correspond pas à vos besoins.
jakub.g

J'ai actuellement un serveur Web opérationnel - Apache (configuré dans le cadre d'une installation XAMPP pour Windows). Ce serveur Web fonctionne bien et lorsqu'il s'exécute sur mon bureau derrière un routeur permanent, il n'y a aucun problème à être visible sur Internet, car j'ai configuré la redirection de port sur mon routeur. Je souhaite trouver un moyen de rendre mon serveur Web local visible sur Internet lorsque je n'ai pas accès au routeur pour configurer la redirection de port.
Dan Nissenbaum,

Réponses:


8

Si vous avez un serveur sur lequel vous pouvez SSH et ce serveur vous permet d'écouter sur les ports concernés la ou les adresses IP publiques (qui si vous le contrôlez, ce sera - peut-être même la machine de bureau que vous décrivez si vous installez SSHd via cygwin ou similaire), vous pouvez utiliser l'option de tunneling de SSH pour attirer le trafic vers votre serveur local.

Quelque chose comme: ssh root@your.server.tld -g -R 11.22.33.44:80:127.0.0.1:80une fois connecté et authentifié, le port 80 sur 11.22.33.44 (en supposant qu'il s'agit d'une adresse publique du serveur) prendra les connexions qui seront ensuite redirigées vers votre port local 80. Vous avez besoin de l'option GatewayPorts activée sur le serveur pour écouter sur une adresse non locale de cette façon, et devez être connecté en tant que root pour écouter sur les ports inférieurs à 1024, et s'il existe déjà un service d'écoute sur le port 80, vous devez évidemment choisir quelque chose d'autre de toute façon. L'ajout de l' -Coption permettant d'activer la compression des flux via SSH est recommandé, surtout si vous connectez l'ordinateur portable via un réseau lent (peut-être coincé au milieu de nulle part avec seulement une connexion mobile GPRS disponible).

Pour utiliser ssh sous Windows, vous avez quelques options. Vous pouvez installer le port de cygwin [alors la commande que j'ai donnée ci-dessus devrait JustWork (tm)] ou utiliser un autre client. PuTTY est une option très populaire et prend en charge la tunnellisation de port à distance.

De cette façon, le serveur Web de votre machine sera toujours disponible sur la même adresse lors de la connexion, peu importe d'où vous vous connectez, il n'est donc pas nécessaire d'utiliser le DNS dynamique pour les noms conviviaux que vous pourriez souhaiter attribuer (en supposant que le serveur auquel vous vous connectez a une adresse publique fixe, bien sûr).

Plutôt que d'utiliser un serveur domestique ou de bureau pour cela, ce qui peut ralentir encore les choses à moins que vous n'ayez une bonne connexion rapide dans les deux sens, vous pouvez obtenir de meilleurs résultats en louant un petit VPS Linux quelque part (de préférence dans le même pays) juste pour Cet objectif. Vous n'avez besoin que de la plus petite des machines tant qu'il y a suffisamment de bande passante, donc cela ne coûtera que quelques dollars par mois.

En plus de SSH, vous pouvez également envisager un outil VPN tel que OpenVPN et utiliser des règles iptables simples sur le serveur pour transférer les connexions vers votre machine lorsqu'elle est connectée. Cela peut être plus efficace et moins compliqué une fois configuré, mais peut être un peu compliqué à configurer si vous ne le connaissez pas déjà et le routage en général déjà. Encore une fois, un VPS bon marché ou votre propre serveur de bureau / domestique ferait office d'extrémité serveur du VPN.


+1: J'étais sur le point de suggérer le tunneling ssh, mais vous m'avez battu et expliqué plus clairement que je ne l'aurais fait, pour démarrer.
Dave Sherohman,

Excellente réponse, merci. J'ai déjà WinSSHD (de Bitvise - un programme payant), donc je devrais pouvoir l'utiliser. Je peux essayer d'utiliser iptables pour acheminer les données (initialement en y réfléchissant, je suis devenu confus parce que je savais que les données arrivaient à l'ordinateur sur le réseau local partagé avec le routeur, mais pas sur le réseau local partagé avec le VPN - pas que cela me dérange). Quiconque souhaite publier un exemple de l'entrée iptable nécessaire qui fonctionne avec un routeur et transmet des données à un réseau VPN serait le bienvenu et apprécié!
Dan Nissenbaum

1

La tunnellisation IPV6 sur l'ordinateur portable, combinée avec un proxy ipv4 à 6 - gogo6 propose un service agréable et gratuit avec un client pour mettre à jour automatiquement dans le cadre de freenet6 -. Combinez cela avec un enregistrement AAAA et un proxy qui traduit d'ipv6 en 4 ( sixxs en exécute un public), ou pour une solution plus élégante, votre propre serveur proxy ( polipo pourrait fonctionner) qui fait la traduction en cours d'exécution sur la même adresse A

Bien configuré, cela devrait être principalement transparent, à l'exception d'une légère latence de rebondissements tant de fois.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.