¿Usar tablas de IP para reenviar puertos detrás de un enrutador?

¿Usar tablas de IP para reenviar puertos detrás de un enrutador?

¿Es posible utilizar tablas de IP para reenviar puertos detrás de un enrutador?

Mi configuración es la siguiente: tengo una Raspberry Pi que ejecuta un pequeño sitio web en el puerto 80 y una computadora más robusta que ejecuta un servidor Minecraft en el puerto 25565. He configurado el enrutador para recibir solicitudes de cada puerto y reenviarlas a la ubicación correcta. pero también tengo un 'sitio web' de Minecraft (con el mapa y demás) ejecutándose en el servidor de Minecraft, también en el puerto 80. También tengo myurl.com.

Mi pregunta es: usando tablas de IP, ¿puedo reenviar mc.myurl.com:80 al sitio web del servidor de Minecraft, mientras myurl.com:80 continúa yendo a Raspberry Pi? ¿Cómo configuro esto?

¿Qué pasa si elimino la Raspberry Pi de la ecuación? ¿Tiene mc.myurl.com reenviado a :81 en el mismo servidor? (¿Tendría que abrir :81 en el enrutador?)

Respuesta1

Lo que estás buscando es unproxy inverso. Apache puede jugar esorolepero te aconsejo que uses mejornginxque es más ligero.

Redirigirá el puerto 80a su Raspberry Pi y configurará Nginx para que represente las solicitudes de mc.myurl.comla siguiente manera:

server {
  listen 80;
  server_name mc.myurl.com;

  location / {
    proxy_pass  http://my.mine.craft;
  }
}

Ver Nginxdocumentaciónpara más detalles.

Respuesta2

Podrías usar el módulo de proxy inverso de Apache2. Esto redirigirá las solicitudes entrantes mediante el nombre de host del servidor mc a otro servidor http, que se encuentra dentro de su LAN. Sería una idea más sencilla que confiar en los cortafuegos.

Primero, instale el módulo:

apt-get install libapache2-mod-proxy-html

Cree 2 hosts virtuales. Uno responderá a las solicitudes de su sitio y el otro enviará el tráfico a su sitio mc.

<VirtualHost YOUR.INTERNET.IP.ADDR:80>
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://LAN.IP.YOUR.MC.SITE:PORT/
    ProxyPassReverse / http://LAN.IP.YOUR.MC.SITE:PORT/
    ServerName mc.myurl.com
</VirtualHost>

<VirtualHost YOUR.INTERNET.IP.ADDR:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/sites/my_site
  ServerName myurl.com
  ErrorLog logs/intranet-error_log
  CustomLog logs/intranet-access_log common
</VirtualHost>

Más documentos aquí:

información relacionada