web-dev-qa-db-fra.com

Transfert de port d'un hôte à un autre à l'aide du port 80, mais cela ne fonctionne pas

J'ai installé le serveur Ubuntu dans une boîte virtuelle (11.04), puis j'ai configuré Apache.

À l'intérieur du réglage de la boîte virtuelle, j'ai effectué une redirection de port du port 80 (hôte) à 80 (invité), j'ouvre mon navigateur Web sur mon hôte et je vais à http: // localhost NE PAS FAIRE fonctionne, mais si je vais à http: // localhost: 108 , cela fonctionne, mais je n'ai pas fait de transfert de port de 1080 à 80, je n'ai pas de 1080 dans ma configuration, ce que je veux savoir c'est pourquoi il fait ça?

Je sais que le port 80 ne fonctionnera pas tant que je n'aurai pas lancé la virtualbox en tant que root, mais ce que je ne sais pas, c'est pourquoi cela transforme-t-il le port 80 à 1080 quand cela ne pourrait tout simplement pas fonctionner ... y a-t-il quelque chose dans la virtualbox qui voit quand ce n'est pas la racine et qui transforme l'adresse en dessous de 1024 en quelque chose d'autre?

5
user1115057

Le le manuel de VirtualBox dit :

Transfert des ports hôtes <1024 impossible:

Sur les hôtes Unix (Linux, Solaris, Mac OS X, par exemple), il n’est pas possible de se connecter aux ports inférieurs à 1024 à partir d’applications non exécutées par root. Par conséquent, si vous essayez de configurer un tel transfert de port, le VM refusera de démarrer.

J'imagine que c'est la raison pour laquelle le port 80 a été correctement transféré lorsque l'hôte a été exécuté en tant qu'utilisateur root. Quoi qu'il en soit, je ne suis pas sûr de savoir pourquoi le port change automatiquement de 80 à 1080.

12
gauthampdas

Il existe une section Nice expliquant la redirection de port avec NAT sur Virtualbox ici:

http://www.virtualbox.org/manual/ch06.html#natforward

Je ne suis pas sûr de savoir pourquoi vous voyez le comportement que vous êtes, pouvez-vous publier votre configuration?

L’autre solution (potentielle) consiste à utiliser un réseau ponté. Personnellement, je trouve que la mise en réseau pontée est plus facile à configurer. Si j’ai besoin d’un pare-feu, je le configure à partir de l’invité. Vous pouvez facilement limiter le port 80 à votre hôte ou votre réseau local avec ufw.

Sudo ufw enable
Sudo ufw default deny
# change "192.168.0.10" to your Host
Sudo ufw allow proto tcp from 192.168.0.10 to any port 22
# Or for you LAN
Sudo ufw allow proto tcp from 192.168.0.0/24 to any port 80

Vous pouvez remplacer "any" par votre adresse IP si vous le souhaitez.

2
Panther

Je suis capable de transférer les ports en exécutant VirtualBox en tant que root. Cette restriction n’est qu’un problème de système d’exploitation, pas vraiment quelque chose avec VirtualBox lui-même.

Ouvrez simplement VirtualBox avec Sudo:

Sudo /path/to/VirtualBox

Ensuite, le système d’exploitation vous permettra d’utiliser des ports inférieurs à 1024, ce que vous devez bien entendu faire de manière responsable :)

0
syvex