
Para un servidor centos que aloja algunas máquinas virtuales LAMP (usando VirtualBox), tengo una única IP externa. Me gustaría poder utilizar esta IP externa de host único para abordar las máquinas virtuales. Como reenviar puertos a máquinas específicas desde el exterior:
2.2.2.2 > external IP [WAN]
10.0.0.1 > host IP (tiger) [LAN]
10.0.0.2 > virtual client #1 (zebra)
10.0.0.3 > virtual client #1 (mouse)
por lo que la IP externa se reenvía a través del enrutador a la IP del host (tigre), luego buscará el puerto y la enviará a zebra o mouse. Es posible que ambos clientes virtuales (deberían) no utilizar los mismos puertos para Apache, etc.
Preferiblemente, la solución de enrutamiento se realizará en el host, ya que no tengo acceso al enrutador en sí (pero puedo solicitar configuraciones específicas si el administrador puede realizarlas).
Espero ser claro.
Respuesta1
Si simplemente desea enrutar diferentes puertos en 2.2.2.2 a diferentes máquinas virtuales, puede hacerlo coniptables. Ver elGuía de CentOSpara más detalles, incluyendocómo hacer que las reglas sean persistentes( iptables
solo cambia la configuración hasta el próximo reinicio). Para dirigir solicitudes TCP entrantes en el puerto 13080 a 10.0.0.1 en el puerto 80:
iptables -t nat -A PREROUTING -p tcp --dport 13080 -j DNAT --to 10.0.0.1:80
Si desea seleccionar la VM según el nombre de host en la solicitud HTTP, necesita un servidor HTTP que actúe como despachador. Puedes usar Apache, pero para una tarea tan rápida y sencilla,nginxes popular.